8
0
mirror of https://github.com/FirebirdSQL/firebird.git synced 2025-01-22 20:43:02 +01:00
firebird-mirror/builds/posix/make.rules
2024-04-18 22:04:22 -03:00

162 lines
4.7 KiB
Plaintext

#
# The contents of this file are subject to the Mozilla Public
# License Version 1.1 (the "License"); you may not use this file
# except in compliance with the License. You may obtain a copy of
# the License at http://www.mozilla.org/MPL/
# Alternatively, the contents of this file may be used under the
# terms of the GNU General Public License Version 2 or later (the
# "GPL"), in which case the provisions of the GPL are applicable
# instead of those above. You may obtain a copy of the Licence at
# http://www.gnu.org/copyleft/gpl.html
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# Relevant for more details.
#
# This file was created by members of the firebird development team.
# All individual contributions remain the Copyright (C) of those
# individuals. Contributors to this file are either listed here or
# can be obtained from a CVS history command.
#
# All rights reserved.
#
# Created by: Mark O'Donohue <mark.odonohue@ludwig.edu.au>
#
# Contributor(s):
#
#
#
#____________________________________________________________________________
# Please don't use compiler/platform specific flags here - nmcc 02-Nov-2002
WFLAGS =-I$(SRC_ROOT)/include/gen -I$(SRC_ROOT)/include $(CPPFLAGS) $(LTCSOURCE)
ifneq ($(SYSTEM_BOOST_FLG),Y)
WFLAGS += -I$(ROOT)/extern/boost
endif
WFLAGS += -I$(LIBCDS_INC) -D$(LIBCDS_DEF)
ifeq ($(TOMMATH_BUILD_FLG),Y)
WFLAGS += -I$(TOMMATH_INC)
endif
ifeq ($(TOMCRYPT_BUILD_FLG),Y)
WFLAGS += -I$(TOMCRYPT_INC)
endif
ifeq ($(RE2_BUILD_FLG),Y)
WFLAGS += -I$(ROOT)/extern/re2
endif
ifeq ($(ABSEIL_BUILD_FLG),Y)
WFLAGS += -I$(ROOT)/extern/int128
endif
ifeq ($(LSB_FLG),Y)
WFLAGS += -DLSB_BUILD
endif
ifeq ($(TARGET),Release)
WFLAGS += $(PROD_FLAGS)
else
WFLAGS += $(DEV_FLAGS) -DDEV_BUILD
endif
WCFLAGS = $(WFLAGS) $(CFLAGS) $(AC_CFLAGS) $(GLOB_OPTIONS)
WCXXFLAGS = $(WFLAGS) $(PLUSPLUS_FLAGS) $(PLATFORM_PLUSPLUS_FLAGS) $(CXXFLAGS) $(AC_CXXFLAGS) $(GLOB_OPTIONS)
WLDFLAGS = $(LDFLAGS) $(AC_LDFLAGS)
ifneq ($(PLATFORM),DARWIN)
WLDFLAGS += -static-libstdc++
endif
# Here we have definitions for using the preprocessor.
# The GPRE_FLAGS is overwritten in Makefile.in.jrd Makefile.in.gpre and
# since they do something extra to allow the boot build to work.
#
# One other point is that sometimes a failure in compile with gpre does not
# result in an error being generated. The generated source file still
# compiles and throws the make off the path.
#
# This bit of code is part of unfinished bit to let make determine if
# gpre gpre_static or gpre_boot should be used based on which ones exist.
#
# testgpre = $(shell if [ -f $(GPRE) ]; then; echo $(GPRE); else; echo ""; fi)
#test1:
# $(ECHO) $(testgpre)
GPRE_FLAGS= -m -z -n
JRD_GPRE_FLAGS = -n -z -gds_cxx -ids
OBJECT_GPRE_FLAGS = -m -z -n -ocxx
.SUFFIXES: .c .e .epp .cpp
.e.c:
$(GPRE_CURRENT) $(GPRE_FLAGS) $< $@
$(OBJ)/jrd/%.cpp: $(SRC_ROOT)/jrd/%.epp
$(GPRE_CURRENT) $(JRD_GPRE_FLAGS) $(firstword $<) $@
$(OBJ)/isql/%.cpp: $(SRC_ROOT)/isql/%.epp
$(GPRE_CURRENT) $(OBJECT_GPRE_FLAGS) $< $@
$(OBJ)/burp/%.cpp: $(SRC_ROOT)/burp/%.epp
$(GPRE_CURRENT) $(OBJECT_GPRE_FLAGS) $< $@
$(OBJ)/%.cpp: $(SRC_ROOT)/%.epp
$(GPRE_CURRENT) $(GPRE_FLAGS) $(firstword $<) $@
.SUFFIXES: .lo .o .cpp .c .cc
%.o: %.c
$(CC) $(WCFLAGS) -c $(firstword $<) -o $@
%.o: %.cc
$(CXX) $(WCFLAGS) -c $(firstword $<) -o $@
$(OBJ)/%.o: $(SRC_ROOT)/%.c
$(CC) $(WCFLAGS) -c $(firstword $<) -o $@
@sed $(INLINE_EDIT_SED) -e "1,2s/:/: \$$(wildcard/" -e "\$$s/\(.*\)/\\1)/" $(patsubst %.o,%.d,$@)
$(OBJ)/%.o: $(SRC_ROOT)/%.m
$(CC) $(WCFLAGS) -c $(firstword $<) -o $@
@sed $(INLINE_EDIT_SED) -e "1,2s/:/: \$$(wildcard/" -e "\$$s/\(.*\)/\\1)/" $(patsubst %.o,%.d,$@)
$(OBJ)/%.o: $(OBJ)/%.cpp
$(CXX) $(WCXXFLAGS) -c $(firstword $<) -o $@
@sed $(INLINE_EDIT_SED) -e "1,2s/:/: \$$(wildcard/" -e "\$$s/\(.*\)/\\1)/" $(patsubst %.o,%.d,$@)
$(OBJ)/%.o: $(SRC_ROOT)/%.cpp
$(CXX) $(WCXXFLAGS) -c $(firstword $<) -o $@
@sed $(INLINE_EDIT_SED) -e "1,2s/:/: \$$(wildcard/" -e "\$$s/\(.*\)/\\1)/" $(patsubst %.o,%.d,$@)
$(OBJ)/%.o: $(ROOT)/%.cpp
$(CXX) $(WCFLAGS) -c $(firstword $<) -o $@
@sed $(INLINE_EDIT_SED) -e "1,2s/:/: \$$(wildcard/" -e "\$$s/\(.*\)/\\1)/" $(patsubst %.o,%.d,$@)
.SUFFIXES: .epp .e
# Rules for making resource files
$(GEN_ROOT)/%.res: $(SRC_ROOT)/%.rc
windres --output-format=coff --include-dir=$(<D) $< $@
# Rule for making gbak files when cross-compiling
.SUFFIXES: .gbak .fdb
$(GEN_ROOT)/$(TARGET)/%.gbak: $(GEN_ROOT)/Native/%.fdb
$(RUN_GBAK) -b $(firstword $<) $(firstword $@)
$(GEN_ROOT)/%.gbak: $(GEN_ROOT)/%.fdb
$(RUN_GBAK) -b $(firstword $<) $(firstword $@)