mirror of
https://github.com/gnustep/tools-make.git
synced 2025-06-01 17:52:07 +00:00
Implemented support for C++ files; define OBJ_FILES_TO_LINK so that other
makefiles can use it when they link rather than attempting to list all object files to list manually (btw that fixes omissions in those makefiles) git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/tools/make/trunk@10907 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
5017d65097
commit
ff1f202333
1 changed files with 38 additions and 1 deletions
39
rules.make
39
rules.make
|
@ -211,6 +211,9 @@ ALL_CFLAGS = $(INTERNAL_CFLAGS) $(ADDITIONAL_CFLAGS) \
|
|||
$(GNUSTEP_LOCAL_HEADERS_FLAG) $(GNUSTEP_NETWORK_HEADERS_FLAG) \
|
||||
-I$(GNUSTEP_SYSTEM_HEADERS)
|
||||
|
||||
# if you need, you can define ADDITIONAL_CCFLAGS to add C++ specific flags
|
||||
ALL_CCFLAGS = $(ADDITIONAL_CCFLAGS) $(AUXILIARY_CCFLAGS)
|
||||
|
||||
INTERNAL_CLASSPATHFLAGS = -classpath ./$(subst ::,:,:$(strip $(ADDITIONAL_CLASSPATH)):)$(CLASSPATH)
|
||||
|
||||
ALL_JAVACFLAGS = $(INTERNAL_CLASSPATHFLAGS) $(ADDITIONAL_JAVACFLAGS) \
|
||||
|
@ -255,7 +258,7 @@ endif
|
|||
# General rules
|
||||
VPATH = .
|
||||
|
||||
.SUFFIXES: .m .c .psw .java .h
|
||||
.SUFFIXES: .m .c .psw .java .h .cpp .cxx .C .cc .cp
|
||||
|
||||
.PRECIOUS: %.c %.h $(GNUSTEP_OBJ_DIR)/%${OEXT}
|
||||
|
||||
|
@ -265,6 +268,21 @@ $(GNUSTEP_OBJ_DIR)/%${OEXT} : %.c
|
|||
$(GNUSTEP_OBJ_DIR)/%${OEXT} : %.m
|
||||
$(CC) $< -c $(ALL_CPPFLAGS) $(ALL_OBJCFLAGS) -o $@
|
||||
|
||||
$(GNUSTEP_OBJ_DIR)/%${OEXT} : %.C
|
||||
$(CC) $< -c $(ALL_CPPFLAGS) $(ALL_CFLAGS) $(ALL_CCFLAGS) -o $@
|
||||
|
||||
$(GNUSTEP_OBJ_DIR)/%${OEXT} : %.cc
|
||||
$(CC) $< -c $(ALL_CPPFLAGS) $(ALL_CFLAGS) $(ALL_CCFLAGS) -o $@
|
||||
|
||||
$(GNUSTEP_OBJ_DIR)/%${OEXT} : %.cpp
|
||||
$(CC) $< -c $(ALL_CPPFLAGS) $(ALL_CFLAGS) $(ALL_CCFLAGS) -o $@
|
||||
|
||||
$(GNUSTEP_OBJ_DIR)/%${OEXT} : %.cxx
|
||||
$(CC) $< -c $(ALL_CPPFLAGS) $(ALL_CFLAGS) $(ALL_CCFLAGS) -o $@
|
||||
|
||||
$(GNUSTEP_OBJ_DIR)/%${OEXT} : %.cp
|
||||
$(CC) $< -c $(ALL_CPPFLAGS) $(ALL_CFLAGS) $(ALL_CCFLAGS) -o $@
|
||||
|
||||
%.class : %.java
|
||||
$(JAVAC) $(ALL_JAVACFLAGS) $<
|
||||
|
||||
|
@ -336,6 +354,7 @@ $(MAKE) -f $(MAKEFILE_NAME) --no-print-directory --no-keep-going \
|
|||
_SUBPROJECTS="$($(basename $(basename $*))_SUBPROJECTS)" \
|
||||
OBJC_FILES="$($(basename $(basename $*))_OBJC_FILES)" \
|
||||
C_FILES="$($(basename $(basename $*))_C_FILES)" \
|
||||
CC_FILES="$($(basename $(basename $*))_CC_FILES)" \
|
||||
JAVA_FILES="$($(basename $(basename $*))_JAVA_FILES)" \
|
||||
JAVA_JNI_FILES="$($(basename $(basename $*))_JAVA_JNI_FILES)" \
|
||||
OBJ_FILES="$($(basename $(basename $*))_OBJ_FILES)" \
|
||||
|
@ -470,6 +489,9 @@ fi
|
|||
# The list of C source files to be compiled
|
||||
# are in the C_FILES variable.
|
||||
#
|
||||
# The list of C++ source files to be compiled
|
||||
# are in the CC_FILES variable.
|
||||
#
|
||||
# The list of PSWRAP source files to be compiled
|
||||
# are in the PSWRAP_FILES variable.
|
||||
#
|
||||
|
@ -516,6 +538,21 @@ PSWRAP_OBJ_FILES = $(addprefix $(GNUSTEP_OBJ_DIR)/,$(PSWRAP_OBJS))
|
|||
C_OBJS = $(C_FILES:.c=${OEXT})
|
||||
C_OBJ_FILES = $(PSWRAP_OBJ_FILES) $(addprefix $(GNUSTEP_OBJ_DIR)/,$(C_OBJS))
|
||||
|
||||
# C++ files might end in .C, .cc, .cpp, .cxx, .cp so we replace multiple times
|
||||
CC_OBJS = $(patsubst %.cc,%${OEXT},\
|
||||
$(patsubst %.C,%${OEXT},\
|
||||
$(patsubst %.cp,%${OEXT},\
|
||||
$(patsubst %.cpp,%${OEXT},\
|
||||
$(patsubst %.cxx,%${OEXT},$(CC_FILES))))))
|
||||
CC_OBJ_FILES = $(addprefix $(GNUSTEP_OBJ_DIR)/,$(CC_OBJS))
|
||||
|
||||
# OBJ_FILES_TO_LINK is the set of all .o files which will be linked
|
||||
# into the result - please note that you can add to OBJ_FILES_TO_LINK
|
||||
# by defining manually some special xxx_OBJ_FILES for your
|
||||
# tool/app/whatever
|
||||
OBJ_FILES_TO_LINK = $(C_OBJ_FILES) $(OBJC_OBJ_FILES) $(CC_OBJ_FILES) \
|
||||
$(SUBPROJECT_OBJ_FILES) $(OBJ_FILES)
|
||||
|
||||
ifeq ($(WITH_DLL),yes)
|
||||
TMP_LIBS := $(LIBRARIES_DEPEND_UPON) $(BUNDLE_LIBS) $(ADDITIONAL_GUI_LIBS) $(ADDITIONAL_OBJC_LIBS) $(ADDITIONAL_LIBRARY_LIBS)
|
||||
TMP_LIBS := $(filter -l%, $(TMP_LIBS))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue