(file) Return to objects-unix.mak CVS log (file) (dir) Up to [Pegasus] / pegasus / mak

 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 w.otsuka      1.12 	$(CXX) -c -o $@ $(FLAGS) $(EXTRA_CXX_FLAGS) $(LOCAL_DEFINES) $(DEFINES) $(SYS_INCLUDES) $(INCLUDES) $*.cpp
26 kumpf         1.6  	@ $(TOUCH) $@
27                    	@ $(ECHO)
28                    else
29 mike          1.1  $(OBJ_DIR)/%.o: %.cpp $(ERROR)
30 w.otsuka      1.12 	$(CXX) -c -o $(_TMP_O) $(FLAGS) $(EXTRA_CXX_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 w.otsuka      1.12 	$(CC) -c -o $@ $(FLAGS) $(EXTRA_C_FLAGS) $(LOCAL_DEFINES) $(DEFINES) $(SYS_INCLUDES) $(INCLUDES) $*.c
40 schuur        1.10 	@ $(TOUCH) $@
41                    	@ $(ECHO)
42                    else
43                    $(OBJ_DIR)/%.o: %.c $(ERROR)
44 w.otsuka      1.12 	$(CC) -c -o $(_TMP_O) $(FLAGS) $(EXTRA_C_FLAGS) $(LOCAL_DEFINES) $(DEFINES) $(SYS_INCLUDES) $(INCLUDES) $*.c
45 schuur        1.10 	@ $(COPY) $(_TMP_O) $@
46                    	@ $(RM) $(_TMP_O)
47                    	@ $(TOUCH) $@
48                    	@ $(ECHO)
49                    endif

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2