Allow to have both file.c and file.m in the same project

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/tools/make/trunk@26798 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
Nicola Pero 2008-07-22 15:32:35 +00:00
parent fcece14876
commit e4da3e0371
3 changed files with 32 additions and 21 deletions

View file

@ -1,3 +1,14 @@
2008-07-22 Nicola Pero <nicola.pero@meta-innovation.com>
Keep better track of the original source file used to compile each
object file, so that you can have both file.c and file.m in the
same project (suggestion by David Chisnall <theraven@sucs.org>).
* rules.make: Changed rules so that they dictate how to create
for example %.m.o from %.m instead of just %.o from %.m.
* Instance/rules.make: Changed all xxx_OBJS variables so that they
retain the original extension; for example, OBJC_OBJS now contains
%.m.o instead of just %.o.
2008-07-21 Nicola Pero <nicola.pero@meta-innovation.com>
Fixed bug reported by Marko Riedel <markoriedelde@yahoo.de> where

View file

@ -194,10 +194,10 @@ SUBPROJECT_OBJ_FILES = $(foreach d, $($(GNUSTEP_INSTANCE)_SUBPROJECTS), \
$(addprefix $(GNUSTEP_BUILD_DIR)/$(d)/, $(GNUSTEP_OBJ_DIR_NAME)/$(SUBPROJECT_PRODUCT)))
endif
OBJC_OBJS = $(patsubst %.m,%$(OEXT),$($(GNUSTEP_INSTANCE)_OBJC_FILES))
OBJC_OBJS = $(patsubst %.m,%.m$(OEXT),$($(GNUSTEP_INSTANCE)_OBJC_FILES))
OBJC_OBJ_FILES = $(addprefix $(GNUSTEP_OBJ_DIR)/,$(OBJC_OBJS))
OBJCC_OBJS = $(patsubst %.mm,%$(OEXT),$($(GNUSTEP_INSTANCE)_OBJCC_FILES))
OBJCC_OBJS = $(patsubst %.mm,%.mm$(OEXT),$($(GNUSTEP_INSTANCE)_OBJCC_FILES))
OBJCC_OBJ_FILES = $(addprefix $(GNUSTEP_OBJ_DIR)/,$(OBJCC_OBJS))
JAVA_OBJS = $(patsubst %.java,%.class,$($(GNUSTEP_INSTANCE)_JAVA_FILES))
@ -208,26 +208,26 @@ JAVA_JNI_OBJ_FILES = $(JAVA_JNI_OBJS)
PSWRAP_C_FILES = $(patsubst %.psw,%.c,$($(GNUSTEP_INSTANCE)_PSWRAP_FILES))
PSWRAP_H_FILES = $(patsubst %.psw,%.h,$($(GNUSTEP_INSTANCE)_PSWRAP_FILES))
PSWRAP_OBJS = $(patsubst %.psw,%$(OEXT),$($(GNUSTEP_INSTANCE)_PSWRAP_FILES))
PSWRAP_OBJS = $(patsubst %.psw,%.c$(OEXT),$($(GNUSTEP_INSTANCE)_PSWRAP_FILES))
PSWRAP_OBJ_FILES = $(addprefix $(GNUSTEP_OBJ_DIR)/,$(PSWRAP_OBJS))
C_OBJS = $(patsubst %.c,%$(OEXT),$($(GNUSTEP_INSTANCE)_C_FILES))
C_OBJS = $(patsubst %.c,%.c$(OEXT),$($(GNUSTEP_INSTANCE)_C_FILES))
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),$($(GNUSTEP_INSTANCE)_CC_FILES))))))
CC_OBJS = $(patsubst %.cc,%.cc$(OEXT),\
$(patsubst %.C,%.C$(OEXT),\
$(patsubst %.cp,%.cp$(OEXT),\
$(patsubst %.cpp,%.cpp$(OEXT),\
$(patsubst %.cxx,%.cxx$(OEXT),$($(GNUSTEP_INSTANCE)_CC_FILES))))))
CC_OBJ_FILES = $(addprefix $(GNUSTEP_OBJ_DIR)/,$(CC_OBJS))
ifeq ($(findstring mingw32, $(GNUSTEP_TARGET_OS)), mingw32)
WINDRES_OBJS = $(patsubst %.rc,%$(OEXT),$($(GNUSTEP_INSTANCE)_WINDRES_FILES))
WINDRES_OBJS = $(patsubst %.rc,%.rc$(OEXT),$($(GNUSTEP_INSTANCE)_WINDRES_FILES))
WINDRES_OBJ_FILES = $(addprefix $(GNUSTEP_OBJ_DIR)/,$(WINDRES_OBJS))
else
ifeq ($(findstring cygwin, $(GNUSTEP_TARGET_OS)), cygwin)
WINDRES_OBJS = $(patsubst %.rc,%$(OEXT),$($(GNUSTEP_INSTANCE)_WINDRES_FILES))
WINDRES_OBJS = $(patsubst %.rc,%.rc$(OEXT),$($(GNUSTEP_INSTANCE)_WINDRES_FILES))
WINDRES_OBJ_FILES = $(addprefix $(GNUSTEP_OBJ_DIR)/,$(WINDRES_OBJS))
else
WINDRES_OBJ_FILES =

View file

@ -415,54 +415,54 @@ VPATH = .
# as well, so the following rule is simply equivalent to
# $(CC) $< -c $(ALL_CPPFLAGS) $(ALL_CFLAGS) -o $@
# and similarly all the rules below
$(GNUSTEP_OBJ_DIR)/%${OEXT} : %.c
$(GNUSTEP_OBJ_DIR)/%.c${OEXT} : %.c
$(ECHO_COMPILING)$(CC) $< -c \
$(filter-out $($<_FILE_FILTER_OUT_FLAGS),$(ALL_CPPFLAGS) \
$(ALL_CFLAGS)) \
$($<_FILE_FLAGS) -o $@$(END_ECHO)
$(GNUSTEP_OBJ_DIR)/%${OEXT} : %.m
$(GNUSTEP_OBJ_DIR)/%.m${OEXT} : %.m
$(ECHO_COMPILING)$(CC) $< -c \
$(filter-out $($<_FILE_FILTER_OUT_FLAGS),$(ALL_CPPFLAGS) \
$(ALL_OBJCFLAGS)) \
$($<_FILE_FLAGS) -o $@$(END_ECHO)
$(GNUSTEP_OBJ_DIR)/%${OEXT} : %.C
$(GNUSTEP_OBJ_DIR)/%.C${OEXT} : %.C
$(ECHO_COMPILING)$(CXX) $< -c \
$(filter-out $($<_FILE_FILTER_OUT_FLAGS),$(ALL_CPPFLAGS) \
$(ALL_CFLAGS) \
$(ALL_CCFLAGS)) \
$($<_FILE_FLAGS) -o $@$(END_ECHO)
$(GNUSTEP_OBJ_DIR)/%${OEXT} : %.cc
$(GNUSTEP_OBJ_DIR)/%.cc${OEXT} : %.cc
$(ECHO_COMPILING)$(CXX) $< -c \
$(filter-out $($<_FILE_FILTER_OUT_FLAGS),$(ALL_CPPFLAGS) \
$(ALL_CFLAGS) \
$(ALL_CCFLAGS)) \
$($<_FILE_FLAGS) -o $@$(END_ECHO)
$(GNUSTEP_OBJ_DIR)/%${OEXT} : %.cpp
$(GNUSTEP_OBJ_DIR)/%.cpp${OEXT} : %.cpp
$(ECHO_COMPILING)$(CXX) $< -c \
$(filter-out $($<_FILE_FILTER_OUT_FLAGS),$(ALL_CPPFLAGS) \
$(ALL_CFLAGS) \
$(ALL_CCFLAGS)) \
$($<_FILE_FLAGS) -o $@$(END_ECHO)
$(GNUSTEP_OBJ_DIR)/%${OEXT} : %.cxx
$(GNUSTEP_OBJ_DIR)/%.cxx${OEXT} : %.cxx
$(ECHO_COMPILING)$(CXX) $< -c \
$(filter-out $($<_FILE_FILTER_OUT_FLAGS),$(ALL_CPPFLAGS) \
$(ALL_CFLAGS) \
$(ALL_CCFLAGS)) \
$($<_FILE_FLAGS) -o $@$(END_ECHO)
$(GNUSTEP_OBJ_DIR)/%${OEXT} : %.cp
$(GNUSTEP_OBJ_DIR)/%.cp${OEXT} : %.cp
$(ECHO_COMPILING)$(CXX) $< -c \
$(filter-out $($<_FILE_FILTER_OUT_FLAGS),$(ALL_CPPFLAGS) \
$(ALL_CFLAGS) \
$(ALL_CCFLAGS)) \
$($<_FILE_FLAGS) -o $@$(END_ECHO)
$(GNUSTEP_OBJ_DIR)/%${OEXT} : %.mm
$(GNUSTEP_OBJ_DIR)/%.mm${OEXT} : %.mm
$(ECHO_COMPILING)$(CXX) $< -c \
$(filter-out $($<_FILE_FILTER_OUT_FLAGS),$(ALL_CPPFLAGS) \
$(ALL_OBJCCFLAGS)) \
@ -579,7 +579,7 @@ ifeq ($(findstring mingw32, $(GNUSTEP_TARGET_OS)), mingw32)
.SUFFIXES: .rc
# A rule to generate a .o file from the .rc file.
$(GNUSTEP_OBJ_DIR)/%${OEXT}: %.rc
$(GNUSTEP_OBJ_DIR)/%.rc${OEXT}: %.rc
$(ECHO_COMPILING)windres $< $@$(END_ECHO)
endif
@ -592,7 +592,7 @@ ifeq ($(findstring cygwin, $(GNUSTEP_TARGET_OS)), cygwin)
.SUFFIXES: .rc
# A rule to generate a .o file from the .rc file.
$(GNUSTEP_OBJ_DIR)/%${OEXT}: %.rc
$(GNUSTEP_OBJ_DIR)/%.rc${OEXT}: %.rc
$(ECHO_COMPILING)windres $< $@$(END_ECHO)
endif