diff options
author | nanbor <nanbor@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1999-10-19 05:29:57 +0000 |
---|---|---|
committer | nanbor <nanbor@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1999-10-19 05:29:57 +0000 |
commit | 45bf0856cf64fae3992caba5963ed74e17fb05dc (patch) | |
tree | aa71c2601932b5247d28a79bbe3a839df9a6e0c0 | |
parent | c22becd7f01e4133ed72164e8d4c000d9d506531 (diff) | |
download | ATCD-45bf0856cf64fae3992caba5963ed74e17fb05dc.tar.gz |
ChangeLogTag:Tue Oct 19 00:03:57 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-rw-r--r-- | ChangeLog-99b | 18 | ||||
-rw-r--r-- | include/makeinclude/rules.bin.GNU | 12 | ||||
-rw-r--r-- | include/makeinclude/rules.lib.GNU | 46 | ||||
-rw-r--r-- | include/makeinclude/rules.local.GNU | 49 | ||||
-rw-r--r-- | include/makeinclude/wrapper_macros.GNU | 28 |
5 files changed, 99 insertions, 54 deletions
diff --git a/ChangeLog-99b b/ChangeLog-99b index 3f511cd9287..3a0874fe8fe 100644 --- a/ChangeLog-99b +++ b/ChangeLog-99b @@ -1,3 +1,21 @@ +Tue Oct 19 00:03:57 1999 Nanbor Wang <nanbor@cs.wustl.edu> + + * include/makeinclude/wrapper_macros.GNU: + * include/makeinclude/rules.bin.GNU: + * include/makeinclude/rules.lib.GNU: + * include/makeinclude/rules.local.GNU: Chaged the following + settings to be platform configurable: + + OBJDIRS: Names of directories to keep obj files. Default is + '.obj' and '.shobj'. + OBJEXT: Extension name for obj files. Default is 'o'. + SOEXT: Extension name for so files. Default is 'so'. + LIBEXT: Extension name for lib files. Default is 'a'. + CC_OUTPUT_FLAG: + LINK_OUTPUT_FLAG: + SO_OUTPUT_FLAG: Flags to specify output file name for cc, linker + and so_linker. Defaults are '-o'. + Mon Oct 18 23:46:00 1999 Nanbor Wang <nanbor@cs.wustl.edu> * ace/config-freebsd-pthread.h: Undefined ACE_HAS_PENTIUM for diff --git a/include/makeinclude/rules.bin.GNU b/include/makeinclude/rules.bin.GNU index dc03ff9eaa0..1effe5512d7 100644 --- a/include/makeinclude/rules.bin.GNU +++ b/include/makeinclude/rules.bin.GNU @@ -6,16 +6,12 @@ # Requires GNU make #---------------------------------------------------------------------------- -ifndef OBJEXT - OBJEXT=o -endif # ! OBJEXT - VOBJS = \ $(subst .cpp,.$(OBJEXT),$(foreach file,$(SRC),$(VDIR)$(notdir $(file)))) ifeq ($(CHORUSLINK),true) -$(BIN): %: $(VDIR)%.o $(VOBJS) - $(LINK.cc) -o $@ $^ $(VLDLIBS) $(LDFLAGS) $(POSTLINK) +$(BIN): %: $(VDIR)%.$(OBJEXT) $(VOBJS) + $(LINK.cc) $(CC_OUTPUT_FLAG) $@ $^ $(VLDLIBS) $(LDFLAGS) $(POSTLINK) # $(MERGEDIR)/dtool/mkctors $@.xp.o > $@.ct.s # $(CXX) -c $@.ct.s # $(RM) $@.ct.s @@ -23,6 +19,6 @@ $(BIN): %: $(VDIR)%.o $(VOBJS) # $(RM) $@.xp.o # $(RM) $@.ct.o else -$(BIN): %: $(VDIR)%.o $(VOBJS) - $(LINK.cc) -o $@ $^ $(LDFLAGS) $(VLDLIBS) $(POSTLINK) +$(BIN): %: $(VDIR)%.$(OBJEXT) $(VOBJS) + $(LINK.cc) $(CC_OUTPUT_FLAG) $@ $^ $(LDFLAGS) $(VLDLIBS) $(POSTLINK) endif diff --git a/include/makeinclude/rules.lib.GNU b/include/makeinclude/rules.lib.GNU index c2384aa6c23..1e82d008c87 100644 --- a/include/makeinclude/rules.lib.GNU +++ b/include/makeinclude/rules.lib.GNU @@ -10,17 +10,9 @@ # The following targets arrange to build both unshared and shared libraries #---------------------------------------------------------------------------- -ifndef OBJEXT - OBJEXT=o -endif - -ifndef SOEXT - SOEXT=so -endif - VSHLIB = $(SHLIB:%.$(SOEXT)=%$(VAR).$(SOEXT)) ifdef SHLIBA -VSHLIBA = $(SHLIBA:%.a=%$(VAR).a) +VSHLIBA = $(SHLIBA:%.$(LIBEXT)=%$(VAR).$(LIBEXT)) endif VLOBJS = $(subst .cpp,.$(OBJEXT),$(foreach file,$(LSRC),$(VDIR)$(notdir $(file)))) @@ -28,22 +20,22 @@ VLOBJS = $(subst .cpp,.$(OBJEXT),$(foreach file,$(LSRC),$(VDIR)$(notdir $(file LSRC += $(LSRC2) ifdef PRELIB ifdef PRELIB_USES_OBJ_ONLY - VSHOBJS = $(subst .cpp,.o,$(foreach file,$(LSRC),$(VSHDIR)$(notdir $(file)))) + VSHOBJS = $(subst .cpp,.$(OBJEXT),$(foreach file,$(LSRC),$(VSHDIR)$(notdir $(file)))) else # ! PRELIB_USES_OBJ_ONLY - VSHOBJS = $(subst .cpp,.o,$(foreach file,$(LSRC),$(VSHDIR)$(notdir $(file)))) + VSHOBJS = $(subst .cpp,.$(OBJEXT),$(foreach file,$(LSRC),$(VSHDIR)$(notdir $(file)))) endif # ! PRELIB_USES_OBJ_ONLY VSHOBJS1 = $(VSHOBJS) else # ! PRELIB - VSHOBJS = $(subst .cpp,.o,$(foreach file,$(LSRC),$(VSHDIR)$(notdir $(file)))) + VSHOBJS = $(subst .cpp,.$(OBJEXT),$(foreach file,$(LSRC),$(VSHDIR)$(notdir $(file)))) VSHOBJS1 = \ - $(subst .cpp,.o,$(foreach file,$(LSRC),$(VSHDIR)$(notdir $(file)))) + $(subst .cpp,.$(OBJEXT),$(foreach file,$(LSRC),$(VSHDIR)$(notdir $(file)))) endif # ! PRELIB # Comment out for now... # $(DEFS:%=$(INSINC)/%) \ ifdef static_libs - INSTALL += $(VLIB:%.a=$(INSLIB)/%.a) + INSTALL += $(VLIB:%.$(LIBEXT)=$(INSLIB)/%.$(LIBEXT)) endif # static_libs ifdef shared_libs @@ -72,10 +64,10 @@ endif #ifdef PRELIB # $(PRELIB) #endif -# $(SOLINK.cc) -o $@ $(LDFLAGS) $(VSHDIR)*.o +# $(SOLINK.cc) $(SO_OUTPUT_FLAG) $@ $(LDFLAGS) $(VSHDIR)*.$(OBJEXT) # Uncomment the remaining lines if you want to build both *.a and *.so libraries... -VLIB = $(LIB:%.a=%$(VAR).a) +VLIB = $(LIB:%.$(LIBEXT)=%$(VAR).$(LIBEXT)) $(VLIB): $(VLOBJS) @@ -84,9 +76,9 @@ ifeq (1,$(repo)) #### With repo, link in all of the ace object files to the lib. #### This avoids multiple instantiations. We haven't found it to #### be necessary with shared libs, so just do it for static libs. - vpath %.o $(ACE_ROOT)/ace/$(VDIR) + vpath %.$(OBJEXT) $(ACE_ROOT)/ace/$(VDIR) - $(VLIB): $(ACE_ROOT)/ace/$(VDIR)*.o + $(VLIB): $(ACE_ROOT)/ace/$(VDIR)*.$(OBJEXT) endif # ! ACELIB endif # repo @@ -96,7 +88,7 @@ endif ifeq (1,$(ace_lib_prelink)) #### Attempt a link (which will fail), to add template instantiations #### to lib files, for example. - -$(LINK.cc) -o ace-templ_inst $? $(LDFLAGS) $(ACE_NUL_STDERR) + -$(LINK.cc) $(LINK_OUTPUT_FLAG) ace-templ_inst $? $(LDFLAGS) $(ACE_NUL_STDERR) endif # ace_lib_prelink $(AR) $(ARFLAGS) $@ $? ifdef TEMPINCDIR @@ -104,9 +96,9 @@ ifdef TEMPINCDIR # templates. if test -s ./$(TEMPINCDIR)/*.C; \ then \ - $(LINK.cc) -o dummy $(LDFLAGS) $(ACE_ROOT)/etc/xlc_dummy.cpp $^ $(ACE_SHLIBS) $(LIBS); \ + $(LINK.cc) $(LINK_OUTPUT_FLAG) dummy $(LDFLAGS) $(ACE_ROOT)/etc/xlc_dummy.cpp $^ $(ACE_SHLIBS) $(LIBS); \ $(RM) dummy; \ - $(AR) $(ARFLAGS) $@ tempinc/*.o; \ + $(AR) $(ARFLAGS) $@ tempinc/*.$(OBJEXT); \ fi endif -chmod a+r $@ @@ -128,7 +120,7 @@ ifdef TEMPINCDIR # templates before building the library. if test -s ./$(TEMPINCDIR)/*.C; \ then \ - $(LINK.cc) -o dummy $(LDFLAGS) $(ACE_ROOT)/etc/xlc_dummy.cpp $^ $(ACE_SHLIBS) $(LIBS); \ + $(LINK.cc) $(LINK_OUTPUT_FLAG) dummy $(LDFLAGS) $(ACE_ROOT)/etc/xlc_dummy.cpp $^ $(ACE_SHLIBS) $(LIBS); \ $(RM) dummy; \ fi endif @@ -136,19 +128,19 @@ ifdef SHLIBBUILD $(SHLIBBUILD) else ifdef TEMPINCDIR - if test -s ./$(TEMPINCDIR)/*.o; \ + if test -s ./$(TEMPINCDIR)/*.$(OBJEXT); \ then \ - $(SOLINK.cc) -o $@ $(VSHOBJS1) $(TEMPINCDIR)/*.o $(LDFLAGS) $(ACE_SHLIBS) $(LIBS); \ + $(SOLINK.cc) $(SO_OUTPUT_FLAG) $@ $(VSHOBJS1) $(TEMPINCDIR)/*.$(OBJEXT) $(LDFLAGS) $(ACE_SHLIBS) $(LIBS); \ else \ - $(SOLINK.cc) -o $@ $(VSHOBJS1) $(LDFLAGS) $(ACE_SHLIBS) $(LIBS); \ + $(SOLINK.cc) $(SO_OUTPUT_FLAG) $@ $(VSHOBJS1) $(LDFLAGS) $(ACE_SHLIBS) $(LIBS); \ fi else ifeq (1,$(ace_lib_prelink)) #### Attempt a link (which will fail), to add template instantiations #### to lib files, for example. - -$(LINK.cc) -o ace-templ_inst $(VSHOBJS1) $(LDFLAGS) $(ACE_NUL_STDERR) + -$(LINK.cc) $(LINK_OUTPUT_FLAG) ace-templ_inst $(VSHOBJS1) $(LDFLAGS) $(ACE_NUL_STDERR) endif # ace_lib_prelink - $(SOLINK.cc) -o $@ $(VSHOBJS1) $(LDFLAGS) $(ACE_SHLIBS) $(LIBS) + $(SOLINK.cc) $(SO_OUTPUT_FLAG) $@ $(VSHOBJS1) $(LDFLAGS) $(ACE_SHLIBS) $(LIBS) endif -chmod a+rx $@ endif diff --git a/include/makeinclude/rules.local.GNU b/include/makeinclude/rules.local.GNU index 87124060b72..39e9dffff0d 100644 --- a/include/makeinclude/rules.local.GNU +++ b/include/makeinclude/rules.local.GNU @@ -6,10 +6,6 @@ # Requires GNU make #---------------------------------------------------------------------------- -ifndef OBJDIRS - OBJDIRS = .obj .shobj # .obj_debug .obj_profile .obj_optimize -endif # OBJDIRS - #### TEMPLATE_REPOSITORY can be set in individual platform files #### to create template repository directories. See #### platform_sunos5_sunc++.GNU for an example. @@ -46,22 +42,32 @@ endif # TAO_ROOT # C++ related targets +ifeq ($(OS),"Windows_NT") +$(VDIR)%.obj: %.c + $(COMPILE.c) $(CC_OUTPUT_FLAG) $@ $< + ${MVCMD} + +$(VDIR)%.obj: %.cpp + $(COMPILE.cc) $(CC_OUTPUT_FLAG) $@ $< + ${MVCMD} +else $(VDIR)%.o: %.c - $(COMPILE.c) -o $@ $< + $(COMPILE.c) $(CC_OUTPUT_FLAG) $@ $< ${MVCMD} $(VDIR)%.o: %.cpp - $(COMPILE.cc) -o $@ $< + $(COMPILE.cc) $(CC_OUTPUT_FLAG) $@ $< ${MVCMD} +endif #$(VDIR)%.o: %.C -# $(COMPILE.cc) -o $@ $< +# $(COMPILE.cc) $(CC_OUTPUT_FLAG) $@ $< #$(VDIR)%.o: %.cc -# $(COMPILE.cc) -o $@ $< +# $(COMPILE.cc) $(CC_OUTPUT_FLAG) $@ $< -# If SOLINK is defined, then the .so file is built from the .o file via -# separate rules in the same directory. Otherwise, the .so and .o are +# If SOLINK is defined, then the .$(SOEXT) file is built from the .$(OBJEXT) file via +# separate rules in the same directory. Otherwise, the .$(SOEXT) and .$(OBJEXT) are # built via the same rule. SOLINK is required for the repository under # gcc. ifndef SOLINK @@ -76,11 +82,11 @@ else $(VSHDIR)%.$(SOEXT): %.cpp $(SOBUILD) endif -$(VSHDIR)%.o: %.cpp - $(COMPILE.cc) $(PIC) -o $@ $< -$(VSHDIR)%.o: %.cc - $(COMPILE.cc) $(PIC) -o $@ $< -$(VSHDIR)%.$(SOEXT): $(VSHDIR)%.o +$(VSHDIR)%.$(OBJEXT): %.cpp + $(COMPILE.cc) $(PIC) $(CC_OUTPUT_FLAG) $@ $< +$(VSHDIR)%.$(OBJEXT): %.cc + $(COMPILE.cc) $(PIC) $(CC_OUTPUT_FLAG) $@ $< +$(VSHDIR)%.$(SOEXT): $(VSHDIR)%.$(OBJEXT) $(SOLINK) endif @@ -111,7 +117,7 @@ show_uninit: install.local: $(INSTALL) deinstall.local: - $(RM) $(INSTALL) $(LIB:%.a=$(INSLIB)/%*.a) \ + $(RM) $(INSTALL) $(LIB:%.$(LIBEXT)=$(INSLIB)/%*.$(LIBEXT)) \ $(SHLIB:%.$(SOEXT)=$(INSLIB)/%*.$(SOEXT)) @@ -139,7 +145,7 @@ $(INSMAN)/man7/% \ $(INSMAN)/man8/% \ $(INSMAN)/manl/% \ $(INSMAN)/mann/% : - @if test $(shell pwd) != $(@D) -o -n "$(ACE_LDSO_Version_Number)" ; then \ + @if test $(shell pwd) != $(@D) $(CC_OUTPUT_FLAG) -n "$(ACE_LDSO_Version_Number)" ; then \ if test -s $@ ; then \ echo "$(@F) already installed" ; \ else \ @@ -164,7 +170,7 @@ endif #---------------------------------------------------------------------------- clean.local: - -$(RM) *.o *~ *.bak *.rpo *.sym lib*.*_pure_* Makefile.old core + -$(RM) *.$(OBJEXT) *~ *.bak *.rpo *.sym lib*.*_pure_* Makefile.old core -$(RM) -r $(OBJDIRS) $(TEMPINCDIR) cxx_repository ptrepository \ Templates.DB gcctemp.c gcctemp so_locations @@ -199,7 +205,7 @@ depend.local: $(MAKEFILE) $(ACE_DEPEND_SED_CMD) \ -e '/$$(ACE_ROOT)\/ace\/config[^\.]*\.h/d' \ -e "s; /[-a-zA-Z0-9_./]*\.h;;g" \ - -e "s;\([-a-zA-Z0-9._]*\)\.o:;.obj/\1.o .obj/\1.$(SOEXT) $(VSHDIR)\1.o $(VSHDIR)\1.$(SOEXT):;" \ + -e "s;\([-a-zA-Z0-9._]*\)\.$(OBJEXT):;.obj/\1.$(OBJEXT) .obj/\1.$(SOEXT) $(VSHDIR)\1.$(OBJEXT) $(VSHDIR)\1.$(SOEXT):;" \ > $(MAKEFILE).new @cat $(MAKEFILE).new >$(MAKEFILE) @$(RM) $(MAKEFILE).new @@ -223,5 +229,10 @@ rcs_info.local: build.objdirs: $(OBJDIRS) +ifeq ($(OS),"Windows_NT") +$(OBJDIRS): + if not exist $@ mkdir $@ +else $(OBJDIRS): test -d $@ || mkdir $@ +endif diff --git a/include/makeinclude/wrapper_macros.GNU b/include/makeinclude/wrapper_macros.GNU index 24692ef8156..8f33a79a073 100644 --- a/include/makeinclude/wrapper_macros.GNU +++ b/include/makeinclude/wrapper_macros.GNU @@ -221,6 +221,34 @@ ifeq ($(findstring g++,$(CXX)),g++) endif # ! ACE_HAS_GNUG_PRE_2_8 endif # g++ +ifndef OBJDIRS + OBJDIRS = .obj .shobj # .obj_debug .obj_profile .obj_optimize +endif # OBJDIRS + +ifndef OBJEXT + OBJEXT=o +endif + +ifndef SOEXT + SOEXT=so +endif + +ifndef LIBEXT + LIBEXT=a +endif + +ifndef CC_OUTPUT_FLAG + CC_OUTPUT_FLAG = -o +endif # CC_OUTPUT_FLAG + +ifndef SO_OUTPUT_FLAG + SO_OUTPUT_FLAG = -o +endif # SO_OUTPUT_FLAG + +ifndef LINK_OUTPUT_FLAG + LINK_OUTPUT_FLAG = -o +endif # LINK_OUTPUT_FLAG + #---------------------------------------------------------------------------- # make flags #---------------------------------------------------------------------------- |