diff options
Diffstat (limited to 'config/rules.mk')
-rw-r--r-- | config/rules.mk | 103 |
1 files changed, 37 insertions, 66 deletions
diff --git a/config/rules.mk b/config/rules.mk index b885c33e..2e623a75 100644 --- a/config/rules.mk +++ b/config/rules.mk @@ -61,6 +61,7 @@ include $(topsrcdir)/config/config.mk endif ifdef USE_AUTOCONF +ifdef CROSS_COMPILE ifdef INTERNAL_TOOLS CC=$(HOST_CC) CCC=$(HOST_CXX) @@ -68,6 +69,7 @@ CFLAGS=$(HOST_CFLAGS) CXXFLAGS=$(HOST_CXXFLAGS) endif endif +endif # # This makefile contains rules for building the following kinds of @@ -87,7 +89,7 @@ ifeq (,$(filter-out WINNT OS2,$(OS_ARCH))) # Win95, Win16, and OS/2 require library names conforming to the 8.3 rule. # other platforms do not. # -ifeq (,$(filter-out WIN95 WIN16 OS2,$(OS_TARGET))) +ifeq (,$(filter-out WIN95 OS2,$(OS_TARGET))) LIBRARY = $(OBJDIR)/$(LIBRARY_NAME)$(LIBRARY_VERSION)_s.$(LIB_SUFFIX) SHARED_LIBRARY = $(OBJDIR)/$(LIBRARY_NAME)$(LIBRARY_VERSION).$(DLL_SUFFIX) IMPORT_LIBRARY = $(OBJDIR)/$(LIBRARY_NAME)$(LIBRARY_VERSION).$(LIB_SUFFIX) @@ -130,24 +132,12 @@ OBJS = $(addprefix $(OBJDIR)/,$(CSRCS:.c=.$(OBJ_SUFFIX))) \ $(addprefix $(OBJDIR)/,$(ASFILES:.s=.$(OBJ_SUFFIX))) endif -ifeq ($(OS_TARGET), WIN16) - comma := , - empty := - space := $(empty) $(empty) - W16OBJS = $(subst $(space),$(comma)$(space),$(strip $(OBJS))) - W16TEMP =$(OS_LIBS) $(EXTRA_LIBS) - ifeq ($(strip $(W16TEMP)),) - W16LIBS = - else - W16LIBS = library $(subst $(space),$(comma)$(space),$(strip $(W16TEMP))) - endif - W16DEF = $(notdir $(basename $(SHARED_LIBRARY))).DEF -endif - ifeq ($(OS_ARCH), WINNT) -ifneq ($(OS_TARGET), WIN16) OBJS += $(RES) endif + +ifeq ($(MOZ_OS2_TOOLS),VACPP) +EXTRA_LIBS := $(patsubst -l%,$(DIST)/lib/%.$(LIB_SUFFIX),$(EXTRA_LIBS)) endif ALL_TRASH = $(TARGETS) $(OBJS) $(filter-out . .., $(OBJDIR)) LOGS TAGS $(GARBAGE) \ @@ -170,16 +160,14 @@ endif ################################################################################ -all:: export libs install +all:: export export:: +$(LOOP_OVER_DIRS) -libs:: - +$(LOOP_OVER_DIRS) +libs:: export -install:: - +$(LOOP_OVER_DIRS) +install:: export clean:: rm -rf $(OBJS) so_locations $(NOSUCHFILE) $(GARBAGE) @@ -193,6 +181,22 @@ realclean clobber_all:: rm -rf $(wildcard *.OBJ *.OBJD) dist $(ALL_TRASH) +$(LOOP_OVER_DIRS) +distclean:: + rm -rf $(wildcard *.OBJ *.OBJD) dist $(ALL_TRASH) $(DIST_GARBAGE) + +$(LOOP_OVER_DIRS) + +real_install:: $(RELEASE_BINS) $(RELEASE_HEADERS) $(RELEASE_LIBS) +ifdef RELEASE_BINS + $(NSINSTALL) -t -m 0755 $(RELEASE_BINS) $(DESTDIR)$(bindir) +endif +ifdef RELEASE_HEADERS + $(NSINSTALL) -t -m 0644 $(RELEASE_HEADERS) $(DESTDIR)$(includedir) +endif +ifdef RELEASE_LIBS + $(NSINSTALL) -t -m 0755 $(RELEASE_LIBS) $(DESTDIR)$(libdir) +endif + +$(LOOP_OVER_DIRS) + release:: export ifdef RELEASE_BINS @echo "Copying executable programs and scripts to release directory" @@ -263,26 +267,20 @@ else $(CC) -o $@ $(CFLAGS) $(OBJS) $(LDFLAGS) endif endif +ifdef BUILD_OPT + $(STRIP) $@ +endif $(LIBRARY): $(OBJS) @$(MAKE_OBJDIR) rm -f $@ ifeq ($(MOZ_OS2_TOOLS),VACPP) - $(AR) $(subst /,\\,$(OBJS)) $(AR_EXTRA_ARGS) + $(AR) $(subst /,\\,$(OBJS)) $(AR_FLAGS) else -ifdef USE_AUTOCONF $(AR) $(AR_FLAGS) $(OBJS) $(AR_EXTRA_ARGS) -else - $(AR) $(OBJS) $(AR_EXTRA_ARGS) -endif # USE_AUTOCONF endif $(RANLIB) $@ -ifeq ($(OS_TARGET), WIN16) -$(IMPORT_LIBRARY): $(SHARED_LIBRARY) - wlib $(OS_LIB_FLAGS) $@ +$(SHARED_LIBRARY) -endif - ifeq ($(OS_TARGET), OS2) $(IMPORT_LIBRARY): $(SHARED_LIBRARY) $(IMPLIB) $@ $(SHARED_LIBRARY).def @@ -291,9 +289,6 @@ endif $(SHARED_LIBRARY): $(OBJS) @$(MAKE_OBJDIR) rm -f $@ -ifdef USE_AUTOCONF - $(MKSHLIB) $(OBJS) $(EXTRA_LIBS) $(OS_LIBS) -else ifeq ($(OS_ARCH)$(OS_RELEASE), AIX4.1) echo "#!" > $(OBJDIR)/lib$(LIBRARY_NAME)_syms nm -B -C -g $(OBJS) \ @@ -304,25 +299,7 @@ ifeq ($(OS_ARCH)$(OS_RELEASE), AIX4.1) -bM:SRE -bnoentry $(OS_LIBS) $(EXTRA_LIBS) else # AIX 4.1 ifeq ($(OS_ARCH), WINNT) -ifeq ($(OS_TARGET), WIN16) - echo system windows dll initinstance >w16link - echo option map >>w16link - echo option oneautodata >>w16link - echo option heapsize=32K >>w16link - echo option $(OS_DLL_OPTION) >>w16link - echo debug $(DEBUGTYPE) all >>w16link - echo name $@ >>w16link - echo file >>w16link - echo $(W16OBJS) >>w16link - echo $(W16IMPORTS) >>w16link - echo $(W16LIBS) >>w16link - echo $(W16_EXPORTS) >>w16link - echo libfile libentry >>w16link - $(LINK) @w16link. - rm w16link -else # WIN16 - $(LINK_DLL) -MAP $(DLLBASE) $(OS_LIBS) $(EXTRA_LIBS) $(OBJS) -endif # WINNT + $(LINK_DLL) -MAP $(DLLBASE) $(DLL_LIBS) $(EXTRA_LIBS) $(OBJS) else ifeq ($(OS_ARCH),OS2) # append ( >> ) doesn't seem to be working under OS/2 gmake. Run through OS/2 shell instead. @@ -338,27 +315,28 @@ ifeq ($(OS_TARGET), OpenVMS) @if test ! -f $(OBJDIR)/VMSuni.opt; then \ echo "Creating universal symbol option file $(OBJDIR)/VMSuni.opt";\ create_opt_uni $(OBJS); \ - mv VMSuni.opt $(OBJDIR); \ fi - $(MKSHLIB) -o $@ $(OBJS) $(EXTRA_LIBS) $(OS_LIBS) $(OBJDIR)/VMSuni.opt + $(MKSHLIB) -o $@ $(OBJS) $(EXTRA_LIBS) $(OBJDIR)/VMSuni.opt @echo "`translate $@`" > $(@:.$(DLL_SUFFIX)=.vms) else # OpenVMS - $(MKSHLIB) -o $@ $(OBJS) $(EXTRA_LIBS) $(OS_LIBS) + $(MKSHLIB) $(OBJS) $(EXTRA_LIBS) endif # OpenVMS endif # OS2 endif # WINNT endif # AIX 4.1 -endif # USE_AUTOCONF +ifdef BUILD_OPT + $(STRIP) $@ +endif ifeq (,$(filter-out WINNT OS2,$(OS_ARCH))) $(RES): $(RESNAME) @$(MAKE_OBJDIR) ifeq ($(OS_TARGET),OS2) - $(RC) -DOS2 -r $(RESNAME) $(RES) + $(RC) -DOS2 -r $< $@ else # The resource compiler does not understand the -U option. - $(RC) $(filter-out -U%,$(DEFINES)) $(INCLUDES) -Fo$(RES) $(RESNAME) + $(RC) $(filter-out -U%,$(DEFINES)) $(INCLUDES) -Fo$@ $< endif @echo $(RES) finished endif @@ -381,14 +359,7 @@ WCCFLAGS3 = $(subst -D,-d,$(WCCFLAGS2)) $(OBJDIR)/%.$(OBJ_SUFFIX): %.c @$(MAKE_OBJDIR) ifeq ($(OS_ARCH), WINNT) -ifeq ($(OS_TARGET), WIN16) -# $(MOD_DEPTH)/config/w16opt $(WCCFLAGS3) - echo $(WCCFLAGS3) >w16wccf - $(CC) -zq -fo$(OBJDIR)\\$*.$(OBJ_SUFFIX) @w16wccf $*.c - rm w16wccf -else $(CC) -Fo$@ -c $(CFLAGS) $< -endif else ifeq ($(MOZ_OS2_TOOLS),VACPP) $(CC) -Fo$@ -c $(CFLAGS) $< |