mirror of
https://github.com/gnustep/tools-make.git
synced 2025-06-03 10:41:26 +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) \
|
$(GNUSTEP_LOCAL_HEADERS_FLAG) $(GNUSTEP_NETWORK_HEADERS_FLAG) \
|
||||||
-I$(GNUSTEP_SYSTEM_HEADERS)
|
-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)
|
INTERNAL_CLASSPATHFLAGS = -classpath ./$(subst ::,:,:$(strip $(ADDITIONAL_CLASSPATH)):)$(CLASSPATH)
|
||||||
|
|
||||||
ALL_JAVACFLAGS = $(INTERNAL_CLASSPATHFLAGS) $(ADDITIONAL_JAVACFLAGS) \
|
ALL_JAVACFLAGS = $(INTERNAL_CLASSPATHFLAGS) $(ADDITIONAL_JAVACFLAGS) \
|
||||||
|
@ -255,7 +258,7 @@ endif
|
||||||
# General rules
|
# General rules
|
||||||
VPATH = .
|
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}
|
.PRECIOUS: %.c %.h $(GNUSTEP_OBJ_DIR)/%${OEXT}
|
||||||
|
|
||||||
|
@ -265,6 +268,21 @@ $(GNUSTEP_OBJ_DIR)/%${OEXT} : %.c
|
||||||
$(GNUSTEP_OBJ_DIR)/%${OEXT} : %.m
|
$(GNUSTEP_OBJ_DIR)/%${OEXT} : %.m
|
||||||
$(CC) $< -c $(ALL_CPPFLAGS) $(ALL_OBJCFLAGS) -o $@
|
$(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
|
%.class : %.java
|
||||||
$(JAVAC) $(ALL_JAVACFLAGS) $<
|
$(JAVAC) $(ALL_JAVACFLAGS) $<
|
||||||
|
|
||||||
|
@ -336,6 +354,7 @@ $(MAKE) -f $(MAKEFILE_NAME) --no-print-directory --no-keep-going \
|
||||||
_SUBPROJECTS="$($(basename $(basename $*))_SUBPROJECTS)" \
|
_SUBPROJECTS="$($(basename $(basename $*))_SUBPROJECTS)" \
|
||||||
OBJC_FILES="$($(basename $(basename $*))_OBJC_FILES)" \
|
OBJC_FILES="$($(basename $(basename $*))_OBJC_FILES)" \
|
||||||
C_FILES="$($(basename $(basename $*))_C_FILES)" \
|
C_FILES="$($(basename $(basename $*))_C_FILES)" \
|
||||||
|
CC_FILES="$($(basename $(basename $*))_CC_FILES)" \
|
||||||
JAVA_FILES="$($(basename $(basename $*))_JAVA_FILES)" \
|
JAVA_FILES="$($(basename $(basename $*))_JAVA_FILES)" \
|
||||||
JAVA_JNI_FILES="$($(basename $(basename $*))_JAVA_JNI_FILES)" \
|
JAVA_JNI_FILES="$($(basename $(basename $*))_JAVA_JNI_FILES)" \
|
||||||
OBJ_FILES="$($(basename $(basename $*))_OBJ_FILES)" \
|
OBJ_FILES="$($(basename $(basename $*))_OBJ_FILES)" \
|
||||||
|
@ -470,6 +489,9 @@ fi
|
||||||
# The list of C source files to be compiled
|
# The list of C source files to be compiled
|
||||||
# are in the C_FILES variable.
|
# 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
|
# The list of PSWRAP source files to be compiled
|
||||||
# are in the PSWRAP_FILES variable.
|
# 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_OBJS = $(C_FILES:.c=${OEXT})
|
||||||
C_OBJ_FILES = $(PSWRAP_OBJ_FILES) $(addprefix $(GNUSTEP_OBJ_DIR)/,$(C_OBJS))
|
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)
|
ifeq ($(WITH_DLL),yes)
|
||||||
TMP_LIBS := $(LIBRARIES_DEPEND_UPON) $(BUNDLE_LIBS) $(ADDITIONAL_GUI_LIBS) $(ADDITIONAL_OBJC_LIBS) $(ADDITIONAL_LIBRARY_LIBS)
|
TMP_LIBS := $(LIBRARIES_DEPEND_UPON) $(BUNDLE_LIBS) $(ADDITIONAL_GUI_LIBS) $(ADDITIONAL_OBJC_LIBS) $(ADDITIONAL_LIBRARY_LIBS)
|
||||||
TMP_LIBS := $(filter -l%, $(TMP_LIBS))
|
TMP_LIBS := $(filter -l%, $(TMP_LIBS))
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue