1 mike 1.1 ################################################################################
2 ##
|
3 david.dillard 1.11 ## An ugly trick is used here to overcome a bug in g++ v2.9.5. G++ fails to
|
4 mike 1.1 ## cleanup object files that are placed in directories other than the
5 ## current one (using the -o option). To overcome this bug, we use -o.tmp.o
|
6 david.dillard 1.11 ## and then move the file to the object directory. Note, this is only done for
7 ## v2.9.5 of g++.
|
8 mike 1.1 ##
9 ################################################################################
10
|
11 david.dillard 1.11 ifeq ($(findstring _GNU, $(PEGASUS_PLATFORM)), _GNU)
12 GCC_VERSION=$(word 3, $(shell $(CXX) --version))
13 ifneq ($(GCC_VERSION), 2.9.5)
14 _NO_TMP_O=yes
|
15 dan 1.7 endif
|
16 david.dillard 1.11 else
17 _NO_TMP_O=yes
|
18 dan 1.7 endif
19
|
20 david.dillard 1.11 _TMP_O = $(PEGASUS_PLATFORM).o
|
21 keith.petley 1.9
|
22 mike 1.1
|
23 dan 1.7 ifeq ($(_NO_TMP_O), yes)
|
24 kumpf 1.6 $(OBJ_DIR)/%.o: %.cpp $(ERROR)
25 $(CXX) -c -o $@ $(FLAGS) $(LOCAL_DEFINES) $(DEFINES) $(SYS_INCLUDES) $(INCLUDES) $*.cpp
26 @ $(TOUCH) $@
27 @ $(ECHO)
28 else
|
29 mike 1.1 $(OBJ_DIR)/%.o: %.cpp $(ERROR)
|
30 mike 1.3 $(CXX) -c -o $(_TMP_O) $(FLAGS) $(LOCAL_DEFINES) $(DEFINES) $(SYS_INCLUDES) $(INCLUDES) $*.cpp
|
31 mike 1.5 @ $(COPY) $(_TMP_O) $@
32 @ $(RM) $(_TMP_O)
33 @ $(TOUCH) $@
|
34 mike 1.1 @ $(ECHO)
|
35 kumpf 1.6 endif
|
36 schuur 1.10
37 ifeq ($(_NO_TMP_O), yes)
38 $(OBJ_DIR)/%.o: %.c $(ERROR)
39 $(CC) -c -o $@ $(FLAGS) $(LOCAL_DEFINES) $(DEFINES) $(SYS_INCLUDES) $(INCLUDES) $*.c
40 @ $(TOUCH) $@
41 @ $(ECHO)
42 else
43 $(OBJ_DIR)/%.o: %.c $(ERROR)
44 $(CC) -c -o $(_TMP_O) $(FLAGS) $(LOCAL_DEFINES) $(DEFINES) $(SYS_INCLUDES) $(INCLUDES) $*.c
45 @ $(COPY) $(_TMP_O) $@
46 @ $(RM) $(_TMP_O)
47 @ $(TOUCH) $@
48 @ $(ECHO)
49 endif
|