summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornanbor <nanbor@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1999-10-19 05:29:57 +0000
committernanbor <nanbor@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1999-10-19 05:29:57 +0000
commit45bf0856cf64fae3992caba5963ed74e17fb05dc (patch)
treeaa71c2601932b5247d28a79bbe3a839df9a6e0c0
parentc22becd7f01e4133ed72164e8d4c000d9d506531 (diff)
downloadATCD-45bf0856cf64fae3992caba5963ed74e17fb05dc.tar.gz
ChangeLogTag:Tue Oct 19 00:03:57 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-rw-r--r--ChangeLog-99b18
-rw-r--r--include/makeinclude/rules.bin.GNU12
-rw-r--r--include/makeinclude/rules.lib.GNU46
-rw-r--r--include/makeinclude/rules.local.GNU49
-rw-r--r--include/makeinclude/wrapper_macros.GNU28
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
#----------------------------------------------------------------------------