diff --git a/mozilla/nsprpub/config/rules.mk b/mozilla/nsprpub/config/rules.mk index 31bd759b710..4b5829c371e 100644 --- a/mozilla/nsprpub/config/rules.mk +++ b/mozilla/nsprpub/config/rules.mk @@ -81,7 +81,7 @@ endif # ifdef LIBRARY_NAME -ifeq ($(OS_ARCH), WINNT) +ifeq (,$(filter-out WINNT OS2,$(OS_ARCH))) # # Win95, Win16, and OS/2 require library names conforming to the 8.3 rule. @@ -112,7 +112,7 @@ endif endif ifndef TARGETS -ifeq ($(OS_ARCH), WINNT) +ifeq (,$(filter-out WINNT OS2,$(OS_ARCH))) TARGETS = $(LIBRARY) $(SHARED_LIBRARY) $(IMPORT_LIBRARY) else TARGETS = $(LIBRARY) $(SHARED_LIBRARY) @@ -146,11 +146,9 @@ endif ifeq ($(OS_ARCH), WINNT) ifneq ($(OS_TARGET), WIN16) -ifneq ($(OS_TARGET), OS2) OBJS += $(RES) endif endif -endif ALL_TRASH = $(TARGETS) $(OBJS) $(filter-out . .., $(OBJDIR)) LOGS TAGS $(GARBAGE) \ $(NOSUCHFILE) \ @@ -184,7 +182,7 @@ install:: +$(LOOP_OVER_DIRS) clean:: - rm -rf $(OBJS) so_locations $(NOSUCHFILE) + rm -rf $(OBJS) so_locations $(NOSUCHFILE) $(GARBAGE) +$(LOOP_OVER_DIRS) clobber:: @@ -258,14 +256,18 @@ $(PROGRAM): $(OBJS) @$(MAKE_OBJDIR) ifeq ($(OS_ARCH),WINNT) $(CC) $(OBJS) -Fe$@ -link $(LDFLAGS) $(OS_LIBS) $(EXTRA_LIBS) +else +ifeq ($(MOZ_OS2_TOOLS),VACPP) + $(CC) $(OBJS) -Fe$@ $(LDFLAGS) $(OS_LIBS) $(EXTRA_LIBS) else $(CC) -o $@ $(CFLAGS) $(OBJS) $(LDFLAGS) endif +endif $(LIBRARY): $(OBJS) @$(MAKE_OBJDIR) rm -f $@ -ifdef XP_OS2_VACPP +ifeq ($(MOZ_OS2_TOOLS),VACPP) $(AR) $(subst /,\\,$(OBJS)) $(AR_EXTRA_ARGS) else ifdef USE_AUTOCONF @@ -319,20 +321,19 @@ ifeq ($(OS_TARGET), WIN16) $(LINK) @w16link. rm w16link else # WIN16 -ifeq ($(OS_TARGET), OS2) + $(LINK_DLL) -MAP $(DLLBASE) $(OS_LIBS) $(EXTRA_LIBS) $(OBJS) +endif # WINNT +else +ifeq ($(OS_ARCH),OS2) # append ( >> ) doesn't seem to be working under OS/2 gmake. Run through OS/2 shell instead. @cmd /C "echo LIBRARY $(notdir $(basename $(SHARED_LIBRARY))) INITINSTANCE TERMINSTANCE >$@.def" @cmd /C "echo PROTMODE >>$@.def" @cmd /C "echo CODE LOADONCALL MOVEABLE DISCARDABLE >>$@.def" @cmd /C "echo DATA PRELOAD MOVEABLE MULTIPLE NONSHARED >>$@.def" @cmd /C "echo EXPORTS >>$@.def" - @cmd /C "$(FILTER) $(LIBRARY) >> $@.def" + @cmd /C "$(FILTER) $(LIBRARY) | grep -v _DLL_InitTerm >>$@.def" $(LINK_DLL) $(DLLBASE) $(OBJS) $(OS_LIBS) $(EXTRA_LIBS) $@.def -else - $(LINK_DLL) -MAP $(DLLBASE) $(OS_LIBS) $(EXTRA_LIBS) $(OBJS) -endif # OS2 -endif # WIN16 -else # WINNT +else # OS2 ifeq ($(OS_TARGET), OpenVMS) @if test ! -f $(OBJDIR)/VMSuni.opt; then \ echo "Creating universal symbol option file $(OBJDIR)/VMSuni.opt";\ @@ -344,11 +345,13 @@ ifeq ($(OS_TARGET), OpenVMS) else # OpenVMS $(MKSHLIB) -o $@ $(OBJS) $(EXTRA_LIBS) $(OS_LIBS) endif # OpenVMS +endif # OS2 endif # WINNT endif # AIX 4.1 endif # USE_AUTOCONF -ifeq ($(OS_ARCH), WINNT) + +ifeq (,$(filter-out WINNT OS2,$(OS_ARCH))) $(RES): $(RESNAME) @$(MAKE_OBJDIR) ifeq ($(OS_TARGET),OS2) @@ -363,14 +366,14 @@ endif $(OBJDIR)/%.$(OBJ_SUFFIX): %.cpp @$(MAKE_OBJDIR) ifeq ($(OS_ARCH), WINNT) -ifndef XP_OS2_EMX $(CCC) -Fo$@ -c $(CCCFLAGS) $< else - $(CCC) -o $@ -c $(CCCFLAGS) $< -endif +ifeq ($(MOZ_OS2_TOOLS),VACPP) + $(CCC) -Fo$@ -c $(CCCFLAGS) $< else $(CCC) -o $@ -c $(CCCFLAGS) $< endif +endif WCCFLAGS1 = $(subst /,\\,$(CFLAGS)) WCCFLAGS2 = $(subst -I,-i=,$(WCCFLAGS1)) @@ -384,15 +387,16 @@ ifeq ($(OS_TARGET), WIN16) $(CC) -zq -fo$(OBJDIR)\\$*.$(OBJ_SUFFIX) @w16wccf $*.c rm w16wccf else -ifndef XP_OS2_EMX + $(CC) -Fo$@ -c $(CFLAGS) $< +endif +else +ifeq ($(MOZ_OS2_TOOLS),VACPP) $(CC) -Fo$@ -c $(CFLAGS) $< else $(CC) -o $@ -c $(CFLAGS) $< endif endif -else - $(CC) -o $@ -c $(CFLAGS) $< -endif + $(OBJDIR)/%.$(OBJ_SUFFIX): %.s @$(MAKE_OBJDIR)