diff options
Diffstat (limited to 'solenv/inc')
122 files changed, 30071 insertions, 0 deletions
diff --git a/solenv/inc/_cppunit.mk b/solenv/inc/_cppunit.mk new file mode 100644 index 000000000000..85804dd41ac6 --- /dev/null +++ b/solenv/inc/_cppunit.mk @@ -0,0 +1,120 @@ +# unroll begin +# ---- create the test libraries ------------------------------------ + +.IF "$(SHL1TARGETN)"!="" +ALLTAR : test1 +test1 .PHONY : $(SHL1TARGETN) + @echo ---------------------------------------------------------- + @echo - start unit test \#1 on library $(SHL1TARGETN) + @echo ---------------------------------------------------------- + $(CPPUNITTESTER) $(SHL1TARGETN) +.ENDIF + +# unroll begin +# ---- create the test libraries ------------------------------------ + +.IF "$(SHL2TARGETN)"!="" +ALLTAR : test2 +test2 .PHONY : $(SHL2TARGETN) + @echo ---------------------------------------------------------- + @echo - start unit test \#2 on library $(SHL2TARGETN) + @echo ---------------------------------------------------------- + $(CPPUNITTESTER) $(SHL2TARGETN) +.ENDIF + +# unroll begin +# ---- create the test libraries ------------------------------------ + +.IF "$(SHL3TARGETN)"!="" +ALLTAR : test3 +test3 .PHONY : $(SHL3TARGETN) + @echo ---------------------------------------------------------- + @echo - start unit test \#3 on library $(SHL3TARGETN) + @echo ---------------------------------------------------------- + $(CPPUNITTESTER) $(SHL3TARGETN) +.ENDIF + +# unroll begin +# ---- create the test libraries ------------------------------------ + +.IF "$(SHL4TARGETN)"!="" +ALLTAR : test4 +test4 .PHONY : $(SHL4TARGETN) + @echo ---------------------------------------------------------- + @echo - start unit test \#4 on library $(SHL4TARGETN) + @echo ---------------------------------------------------------- + $(CPPUNITTESTER) $(SHL4TARGETN) +.ENDIF + +# unroll begin +# ---- create the test libraries ------------------------------------ + +.IF "$(SHL5TARGETN)"!="" +ALLTAR : test5 +test5 .PHONY : $(SHL5TARGETN) + @echo ---------------------------------------------------------- + @echo - start unit test \#5 on library $(SHL5TARGETN) + @echo ---------------------------------------------------------- + $(CPPUNITTESTER) $(SHL5TARGETN) +.ENDIF + +# unroll begin +# ---- create the test libraries ------------------------------------ + +.IF "$(SHL6TARGETN)"!="" +ALLTAR : test6 +test6 .PHONY : $(SHL6TARGETN) + @echo ---------------------------------------------------------- + @echo - start unit test \#6 on library $(SHL6TARGETN) + @echo ---------------------------------------------------------- + $(CPPUNITTESTER) $(SHL6TARGETN) +.ENDIF + +# unroll begin +# ---- create the test libraries ------------------------------------ + +.IF "$(SHL7TARGETN)"!="" +ALLTAR : test7 +test7 .PHONY : $(SHL7TARGETN) + @echo ---------------------------------------------------------- + @echo - start unit test \#7 on library $(SHL7TARGETN) + @echo ---------------------------------------------------------- + $(CPPUNITTESTER) $(SHL7TARGETN) +.ENDIF + +# unroll begin +# ---- create the test libraries ------------------------------------ + +.IF "$(SHL8TARGETN)"!="" +ALLTAR : test8 +test8 .PHONY : $(SHL8TARGETN) + @echo ---------------------------------------------------------- + @echo - start unit test \#8 on library $(SHL8TARGETN) + @echo ---------------------------------------------------------- + $(CPPUNITTESTER) $(SHL8TARGETN) +.ENDIF + +# unroll begin +# ---- create the test libraries ------------------------------------ + +.IF "$(SHL9TARGETN)"!="" +ALLTAR : test9 +test9 .PHONY : $(SHL9TARGETN) + @echo ---------------------------------------------------------- + @echo - start unit test \#9 on library $(SHL9TARGETN) + @echo ---------------------------------------------------------- + $(CPPUNITTESTER) $(SHL9TARGETN) +.ENDIF + +# unroll begin +# ---- create the test libraries ------------------------------------ + +.IF "$(SHL10TARGETN)"!="" +ALLTAR : test10 +test10 .PHONY : $(SHL10TARGETN) + @echo ---------------------------------------------------------- + @echo - start unit test \#10 on library $(SHL10TARGETN) + @echo ---------------------------------------------------------- + $(CPPUNITTESTER) $(SHL10TARGETN) +.ENDIF + diff --git a/solenv/inc/_tg_app.mk b/solenv/inc/_tg_app.mk new file mode 100644 index 000000000000..4a98fae26ed7 --- /dev/null +++ b/solenv/inc/_tg_app.mk @@ -0,0 +1,2100 @@ +# unroll begin + +.IF "$(APP1LINKTYPE)" != "" +#must be either STATIC or SHARED +APP1LINKTYPEFLAG=$(APPLINK$(APP1LINKTYPE)) +.ENDIF + +# decide how to link +.IF "$(APP1CODETYPE)"=="C" +APP1LINKER=$(LINKC) +APP1STDLIB=$(subst,CPPRUNTIME, $(STDLIB)) +APP1LINKFLAGS+=$(LINKCFLAGS) +.ELSE # "$(APP1CODETYPE)"=="C" +APP1LINKER=$(LINK) +APP1STDLIB=$(subst,CPPRUNTIME,$(STDLIBCPP) $(STDLIB)) +APP1LINKFLAGS+=$(LINKFLAGS) +.ENDIF # "$(APP1CODETYPE)"=="C" + +APP1RPATH*=OOO +LINKFLAGSRUNPATH_$(APP1RPATH)*=/ERROR:/Bad_APP1RPATH_value +.IF "$(OS)" != "MACOSX" +APP1LINKFLAGS+=$(LINKFLAGSRUNPATH_$(APP1RPATH)) +.ENDIF + +.IF "$(APP1STACK)" != "" +.IF "$(LINKFLAGSTACK)" != "" +APP1STACKN=$(LINKFLAGSTACK)$(APP1STACK) +.ENDIF +.ELSE +APP1STACKN= +.ENDIF + +.IF "$(APP1NOSAL)"=="" +.IF "$(TARGETTYPE)" == "GUI" +APP1OBJS+= $(STDOBJVCL) +.ENDIF +.ENDIF + +.IF "$(GUI)$(COM)" == "WNTGCC" +APP1RESO= +.IF "$(APP1LINKRES)" != "" || "$(APP1RES)" != "" +APP1RESO=$(MISC)/$(APP1TARGET:b)_res.o +.ENDIF +.ENDIF + +.IF "$(GUI)" == "UNX" +APP1DEPN+:=$(APP1DEPNU) +USE_APP1DEF= +.ENDIF + +.IF "$(APP1TARGETN)"!="" + +.IF "$(APP1PRODUCTNAME)"!="" +APP1PRODUCTDEF+:=-DPRODUCT_NAME=\"$(APP1PRODUCTNAME)\" +.ENDIF # "$(APP1PRODUCTNAME)"!="" + +.IF "$(linkinc)"!="" +.IF "$(GUI)"=="WNT" +.IF "$(APP1LIBS)"!="" +$(MISC)/$(APP1TARGET)_linkinc.ls .PHONY: + @@-$(RM) $@ + sed -f $(SOLARENV)/bin/chrel.sed $(foreach,i,$(APP1LIBS) $(i:s/.lib/.lin/)) >> $@ +.ENDIF #"$(APP1LIBS)"!="" +.ENDIF + +LINKINCTARGETS+=$(MISC)/$(APP1TARGETN:b)_linkinc.ls +$(APP1TARGETN) : $(LINKINCTARGETS) +.ENDIF # "$(linkinc)"!="" + +# Allow for target specific LIBSALCPPRT override +APP1LIBSALCPPRT*=$(LIBSALCPPRT) + +$(APP1TARGETN): $(APP1OBJS) $(APP1LIBS) \ + $(APP1RES) \ + $(APP1ICON) $(APP1DEPN) $(USE_APP1DEF) + @echo "Making: " $(@:f) +.IF "$(GUI)"=="UNX" +.IF "$(OS)"=="MACOSX" + @-$(RM) $(MISC)/$(@:b).list + @-$(RM) $(MISC)/$(TARGET).$(@:b)_1.cmd + @-$(RM) $(MISC)/$(@:b).strip + @echo $(STDSLO) $(APP1OBJS:s/.obj/.o/) \ + `cat /dev/null $(APP1LIBS) | sed s\#$(ROUT)\#$(OUT)\#g` | tr -s " " "\n" > $(MISC)/$(@:b).list + @/bin/echo -n $(APP1LINKER) $(APP1LINKFLAGS) $(LINKFLAGSAPP) -L$(PRJ)/$(INPATH)/lib $(SOLARLIB) -o $@ \ + $(APP1LINKTYPEFLAG) $(APP1STDLIBS) $(APP1STDLIB) $(STDLIB1) -filelist $(MISC)/$(@:b).list > $(MISC)/$(TARGET).$(@:b)_1.cmd + @$(PERL) $(SOLARENV)/bin/macosx-dylib-link-list.pl \ + `cat $(MISC)/$(TARGET).$(@:b)_1.cmd` \ + >> $(MISC)/$(TARGET).$(@:b)_1.cmd + .IF "$(VERBOSE)" == "TRUE" + @cat $(MISC)/$(TARGET).$(@:b)_1.cmd + .ENDIF + @+source $(MISC)/$(TARGET).$(@:b)_1.cmd +# Need to strip __objcInit symbol to avoid duplicate symbols when loading +# libraries at runtime + @-nm $@ | grep -v ' U ' | $(AWK) '{ print $$NF }' | grep -F -x '__objcInit' > $(MISC)/$(@:b).strip + @strip -i -R $(MISC)/$(@:b).strip -X $@ + @$(PERL) $(SOLARENV)/bin/macosx-change-install-names.pl \ + app $(APP1RPATH) $@ +.IF "$(TARGETTYPE)"=="GUI" + @echo "Making: " $(@:f).app + @macosx-create-bundle $@ +.ENDIF # "$(TARGETTYPE)"=="GUI" +.ELSE # "$(OS)"=="MACOSX" + @-$(RM) $(MISC)/$(TARGET).$(@:b)_1.cmd + @echo $(APP1LINKER) $(APP1LINKFLAGS) $(LINKFLAGSAPP) -L$(PRJ)/$(INPATH)/lib $(SOLARLIB) $(STDSLO) \ + $(APP1OBJS:s/.obj/.o/) '\' > $(MISC)/$(TARGET).$(@:b)_1.cmd + @cat $(mktmp /dev/null $(APP1LIBS)) | xargs -n 1 cat | sed s\#$(ROUT)\#$(OUT)\#g | sed 's#$$# \\#' >> $(MISC)/$(TARGET).$(@:b)_1.cmd + @echo $(APP1LINKTYPEFLAG) $(APP1LIBSALCPPRT) $(APP1STDLIBS) $(APP1STDLIB) $(STDLIB1) -o $@ >> $(MISC)/$(TARGET).$(@:b)_1.cmd + .IF "$(VERBOSE)" == "TRUE" + @cat $(MISC)/$(TARGET).$(@:b)_1.cmd + .ENDIF + @+source $(MISC)/$(TARGET).$(@:b)_1.cmd + .IF "$(VERBOSE)" == "TRUE" + .ENDIF +.ENDIF # "$(OS)"=="MACOSX" +.ENDIF +.IF "$(GUI)" == "WNT" + @@-$(MKDIR) $(@:d:d) +.IF "$(APP1LINKRES)" != "" + @@-$(RM) $(MISC)/$(APP1LINKRES:b).rc +.IF "$(APP1ICON)" != "" + @-echo 1 ICON $(EMQ)"$(APP1ICON:s/\/\\/)$(EMQ)" >> $(MISC)/$(APP1LINKRES:b).rc +.ENDIF # "$(APP1ICON)" != "" +.IF "$(APP1VERINFO)" != "" + @-echo $(EMQ)#define VERVARIANT $(BUILD) >> $(MISC)/$(APP1LINKRES:b).rc + @-echo $(EMQ)#include $(EMQ)"$(APP1VERINFO)$(EMQ)" >> $(MISC)/$(APP1LINKRES:b).rc +.ENDIF # "$(APP1VERINFO)" != "" +.IF "$(COM)" == "GCC" + $(COMMAND_ECHO)$(RC) -DWIN32 $(APP1PRODUCTDEF) -I$(SOLARRESDIR) $(INCLUDE) $(RCLINKFLAGS) -o $(MISC)/$(APP1LINKRES:b).res $(MISC)/$(APP1LINKRES:b).rc +.ELSE + $(COMMAND_ECHO)$(RC) -DWIN32 $(APP1PRODUCTDEF) -I$(SOLARRESDIR) $(INCLUDE) $(RCLINKFLAGS) $(MISC)/$(APP1LINKRES:b).rc +.ENDIF +.ENDIF # "$(APP1LINKRES)" != "" +.IF "$(COM)" == "GCC" +.IF "$(APP1LINKRES)" != "" || "$(APP1RES)" != "" + @cat $(APP1LINKRES) $(subst,/res/,/res{$(subst,$(BIN), $(@:d))} $(APP1RES)) > $(MISC)/$(@:b)_all.res + $(WINDRES) $(MISC)/$(@:b)_all.res $(APP1RESO) +.ENDIF + @echo $(LINK) $(LINKFLAGS) $(LINKFLAGSAPP) $(MINGWSSTDOBJ) -L$(PRJ)/$(INPATH)/lib $(SOLARLIB) $(STDSLO) \ + $(APP1BASEX) $(APP1STACKN) -o $@ $(APP1OBJS) \ + -Wl,-Map,$(MISC)/$(@:b).map $(STDOBJ) $(APP1RESO) \ + `$(TYPE) /dev/null $(APP1LIBS) | sed s#$(ROUT)#$(OUT)#g` \ + $(APP_LINKTYPE) $(APP1LIBSALCPPRT) \ + -Wl,--start-group $(APP1STDLIBS) -Wl,--end-group $(APP1STDLIB) \ + $(STDLIB1) $(MINGWSSTDENDOBJ) > $(MISC)/$(TARGET).$(@:b)_1.cmd +# need this comment line, else dmake somehow gets confused by the .IFs and .ENDIFs + .IF "$(VERBOSE)" == "TRUE" + @$(TYPE) $(MISC)/$(TARGET).$(@:b)_1.cmd + .ENDIF + @+source $(MISC)/$(TARGET).$(@:b)_1.cmd +.ELSE # "$(COM)" == "GCC" +.IF "$(linkinc)" == "" + $(COMMAND_ECHO)$(APP1LINKER) @$(mktmp \ + $(APP1LINKFLAGS) \ + $(LINKFLAGSAPP) $(APP1BASEX) \ + $(APP1STACKN) \ + -out:$@ \ + -map:$(MISC)/{$(subst,/,_ $(APP1TARGET)).map} \ + $(STDOBJ) \ + $(APP1LINKRES) \ + $(APP1RES) \ + $(APP1OBJS) \ + $(APP1LIBS) \ + $(APP1STDLIBS) \ + $(APP1STDLIB) $(STDLIB1) \ + ) + @-echo linking $@.manifest ... +.IF "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);1 $(FI) +.ELSE + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);1 $(FI) +.ENDIF # "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI) +.ELSE + $(COMMAND_ECHO)-$(RM) $(MISC)\$(APP1TARGET).lnk + $(COMMAND_ECHO)-$(RM) $(MISC)\$(APP1TARGET).lst + $(COMMAND_ECHO)-$(RM) $(MISC)\linkobj.lst + for %_i in ($(MISC)\*.obj) do type %_i >> $(MISC)\linkobj.lst + type $(mktmp,$(MISC)\$(APP1TARGET).lst + $(APP1LINKFLAGS) \ + $(LINKFLAGSAPP) $(APP1BASEX) \ + $(APP1STACKN) \ + -out:$@ \ + $(STDOBJ) \ + $(APP1LINKRES) \ + $(APP1RES) \ + $(APP1OBJS) \ + $(APP1LIBS) \ + $(APP1STDLIBS) \ + $(APP1STDLIB) $(STDLIB1)) + $(COMMAND_ECHO)$(SED)$(SED) -e 's/\(\.\.\\\)\{2,4\}/..\\/g' $(MISC)\$(APP1TARGETN:b)_linkobj.lst >> $(MISC)\$(APP1TARGET).lst + $(COMMAND_ECHO)$(SED)$(IFEXIST) $(MISC)/$(APP1TARGET).lst $(THEN) type $(MISC)/$(APP1TARGET).lst >> $(MISC)/$(APP1TARGET).lnk $(FI) + $(COMMAND_ECHO)$(SED)$(APP1LINKER) @$(MISC)\$(APP1TARGET).lnk +.ENDIF # "$(linkinc)" == "" +.ENDIF # "$(COM)" == "GCC" +.IF "$(APP1TARGET)" == "loader" + $(COMMAND_ECHO)$(PERL) loader.pl $@ + $(COMMAND_ECHO)$(TYPE) $(@) $(@:d)unloader.exe > $(@:d)_new.exe + $(COMMAND_ECHO)$(RM) $@ + $(COMMAND_ECHO)$(RENAME) $(@:d)_new.exe $(@:d)loader.exe +.ENDIF # "$(TARGET)" == "setup" + +.ENDIF # "$(GUI)" == "WNT" + +.ENDIF # "$(APP1TARGETN)"!="" + + +# Instruction for linking +# unroll begin + +.IF "$(APP2LINKTYPE)" != "" +#must be either STATIC or SHARED +APP2LINKTYPEFLAG=$(APPLINK$(APP2LINKTYPE)) +.ENDIF + +# decide how to link +.IF "$(APP2CODETYPE)"=="C" +APP2LINKER=$(LINKC) +APP2STDLIB=$(subst,CPPRUNTIME, $(STDLIB)) +APP2LINKFLAGS+=$(LINKCFLAGS) +.ELSE # "$(APP2CODETYPE)"=="C" +APP2LINKER=$(LINK) +APP2STDLIB=$(subst,CPPRUNTIME,$(STDLIBCPP) $(STDLIB)) +APP2LINKFLAGS+=$(LINKFLAGS) +.ENDIF # "$(APP2CODETYPE)"=="C" + +APP2RPATH*=OOO +LINKFLAGSRUNPATH_$(APP2RPATH)*=/ERROR:/Bad_APP2RPATH_value +.IF "$(OS)" != "MACOSX" +APP2LINKFLAGS+=$(LINKFLAGSRUNPATH_$(APP2RPATH)) +.ENDIF + +.IF "$(APP2STACK)" != "" +.IF "$(LINKFLAGSTACK)" != "" +APP2STACKN=$(LINKFLAGSTACK)$(APP2STACK) +.ENDIF +.ELSE +APP2STACKN= +.ENDIF + +.IF "$(APP2NOSAL)"=="" +.IF "$(TARGETTYPE)" == "GUI" +APP2OBJS+= $(STDOBJVCL) +.ENDIF +.ENDIF + +.IF "$(GUI)$(COM)" == "WNTGCC" +APP2RESO= +.IF "$(APP2LINKRES)" != "" || "$(APP2RES)" != "" +APP2RESO=$(MISC)/$(APP2TARGET:b)_res.o +.ENDIF +.ENDIF + +.IF "$(GUI)" == "UNX" +APP2DEPN+:=$(APP2DEPNU) +USE_APP2DEF= +.ENDIF + +.IF "$(APP2TARGETN)"!="" + +.IF "$(APP2PRODUCTNAME)"!="" +APP2PRODUCTDEF+:=-DPRODUCT_NAME=\"$(APP2PRODUCTNAME)\" +.ENDIF # "$(APP2PRODUCTNAME)"!="" + +.IF "$(linkinc)"!="" +.IF "$(GUI)"=="WNT" +.IF "$(APP2LIBS)"!="" +$(MISC)/$(APP2TARGET)_linkinc.ls .PHONY: + @@-$(RM) $@ + sed -f $(SOLARENV)/bin/chrel.sed $(foreach,i,$(APP2LIBS) $(i:s/.lib/.lin/)) >> $@ +.ENDIF #"$(APP2LIBS)"!="" +.ENDIF + +LINKINCTARGETS+=$(MISC)/$(APP2TARGETN:b)_linkinc.ls +$(APP2TARGETN) : $(LINKINCTARGETS) +.ENDIF # "$(linkinc)"!="" + +# Allow for target specific LIBSALCPPRT override +APP2LIBSALCPPRT*=$(LIBSALCPPRT) + +$(APP2TARGETN): $(APP2OBJS) $(APP2LIBS) \ + $(APP2RES) \ + $(APP2ICON) $(APP2DEPN) $(USE_APP2DEF) + @echo "Making: " $(@:f) +.IF "$(GUI)"=="UNX" +.IF "$(OS)"=="MACOSX" + @-$(RM) $(MISC)/$(@:b).list + @-$(RM) $(MISC)/$(TARGET).$(@:b)_2.cmd + @-$(RM) $(MISC)/$(@:b).strip + @echo $(STDSLO) $(APP2OBJS:s/.obj/.o/) \ + `cat /dev/null $(APP2LIBS) | sed s\#$(ROUT)\#$(OUT)\#g` | tr -s " " "\n" > $(MISC)/$(@:b).list + @/bin/echo -n $(APP2LINKER) $(APP2LINKFLAGS) $(LINKFLAGSAPP) -L$(PRJ)/$(INPATH)/lib $(SOLARLIB) -o $@ \ + $(APP2LINKTYPEFLAG) $(APP2STDLIBS) $(APP2STDLIB) $(STDLIB2) -filelist $(MISC)/$(@:b).list > $(MISC)/$(TARGET).$(@:b)_2.cmd + @$(PERL) $(SOLARENV)/bin/macosx-dylib-link-list.pl \ + `cat $(MISC)/$(TARGET).$(@:b)_2.cmd` \ + >> $(MISC)/$(TARGET).$(@:b)_2.cmd + .IF "$(VERBOSE)" == "TRUE" + @cat $(MISC)/$(TARGET).$(@:b)_2.cmd + .ENDIF + @+source $(MISC)/$(TARGET).$(@:b)_2.cmd +# Need to strip __objcInit symbol to avoid duplicate symbols when loading +# libraries at runtime + @-nm $@ | grep -v ' U ' | $(AWK) '{ print $$NF }' | grep -F -x '__objcInit' > $(MISC)/$(@:b).strip + @strip -i -R $(MISC)/$(@:b).strip -X $@ + @$(PERL) $(SOLARENV)/bin/macosx-change-install-names.pl \ + app $(APP2RPATH) $@ +.IF "$(TARGETTYPE)"=="GUI" + @echo "Making: " $(@:f).app + @macosx-create-bundle $@ +.ENDIF # "$(TARGETTYPE)"=="GUI" +.ELSE # "$(OS)"=="MACOSX" + @-$(RM) $(MISC)/$(TARGET).$(@:b)_2.cmd + @echo $(APP2LINKER) $(APP2LINKFLAGS) $(LINKFLAGSAPP) -L$(PRJ)/$(INPATH)/lib $(SOLARLIB) $(STDSLO) \ + $(APP2OBJS:s/.obj/.o/) '\' > $(MISC)/$(TARGET).$(@:b)_2.cmd + @cat $(mktmp /dev/null $(APP2LIBS)) | xargs -n 1 cat | sed s\#$(ROUT)\#$(OUT)\#g | sed 's#$$# \\#' >> $(MISC)/$(TARGET).$(@:b)_2.cmd + @echo $(APP2LINKTYPEFLAG) $(APP2LIBSALCPPRT) $(APP2STDLIBS) $(APP2STDLIB) $(STDLIB2) -o $@ >> $(MISC)/$(TARGET).$(@:b)_2.cmd + .IF "$(VERBOSE)" == "TRUE" + @cat $(MISC)/$(TARGET).$(@:b)_2.cmd + .ENDIF + @+source $(MISC)/$(TARGET).$(@:b)_2.cmd + .IF "$(VERBOSE)" == "TRUE" + .ENDIF +.ENDIF # "$(OS)"=="MACOSX" +.ENDIF +.IF "$(GUI)" == "WNT" + @@-$(MKDIR) $(@:d:d) +.IF "$(APP2LINKRES)" != "" + @@-$(RM) $(MISC)/$(APP2LINKRES:b).rc +.IF "$(APP2ICON)" != "" + @-echo 1 ICON $(EMQ)"$(APP2ICON:s/\/\\/)$(EMQ)" >> $(MISC)/$(APP2LINKRES:b).rc +.ENDIF # "$(APP2ICON)" != "" +.IF "$(APP2VERINFO)" != "" + @-echo $(EMQ)#define VERVARIANT $(BUILD) >> $(MISC)/$(APP2LINKRES:b).rc + @-echo $(EMQ)#include $(EMQ)"$(APP2VERINFO)$(EMQ)" >> $(MISC)/$(APP2LINKRES:b).rc +.ENDIF # "$(APP2VERINFO)" != "" +.IF "$(COM)" == "GCC" + $(COMMAND_ECHO)$(RC) -DWIN32 $(APP2PRODUCTDEF) -I$(SOLARRESDIR) $(INCLUDE) $(RCLINKFLAGS) -o $(MISC)/$(APP2LINKRES:b).res $(MISC)/$(APP2LINKRES:b).rc +.ELSE + $(COMMAND_ECHO)$(RC) -DWIN32 $(APP2PRODUCTDEF) -I$(SOLARRESDIR) $(INCLUDE) $(RCLINKFLAGS) $(MISC)/$(APP2LINKRES:b).rc +.ENDIF +.ENDIF # "$(APP2LINKRES)" != "" +.IF "$(COM)" == "GCC" +.IF "$(APP2LINKRES)" != "" || "$(APP2RES)" != "" + @cat $(APP2LINKRES) $(subst,/res/,/res{$(subst,$(BIN), $(@:d))} $(APP2RES)) > $(MISC)/$(@:b)_all.res + $(WINDRES) $(MISC)/$(@:b)_all.res $(APP2RESO) +.ENDIF + @echo $(LINK) $(LINKFLAGS) $(LINKFLAGSAPP) $(MINGWSSTDOBJ) -L$(PRJ)/$(INPATH)/lib $(SOLARLIB) $(STDSLO) \ + $(APP2BASEX) $(APP2STACKN) -o $@ $(APP2OBJS) \ + -Wl,-Map,$(MISC)/$(@:b).map $(STDOBJ) $(APP2RESO) \ + `$(TYPE) /dev/null $(APP2LIBS) | sed s#$(ROUT)#$(OUT)#g` \ + $(APP_LINKTYPE) $(APP2LIBSALCPPRT) \ + -Wl,--start-group $(APP2STDLIBS) -Wl,--end-group $(APP2STDLIB) \ + $(STDLIB2) $(MINGWSSTDENDOBJ) > $(MISC)/$(TARGET).$(@:b)_2.cmd +# need this comment line, else dmake somehow gets confused by the .IFs and .ENDIFs + .IF "$(VERBOSE)" == "TRUE" + @$(TYPE) $(MISC)/$(TARGET).$(@:b)_2.cmd + .ENDIF + @+source $(MISC)/$(TARGET).$(@:b)_2.cmd +.ELSE # "$(COM)" == "GCC" +.IF "$(linkinc)" == "" + $(COMMAND_ECHO)$(APP2LINKER) @$(mktmp \ + $(APP2LINKFLAGS) \ + $(LINKFLAGSAPP) $(APP2BASEX) \ + $(APP2STACKN) \ + -out:$@ \ + -map:$(MISC)/{$(subst,/,_ $(APP2TARGET)).map} \ + $(STDOBJ) \ + $(APP2LINKRES) \ + $(APP2RES) \ + $(APP2OBJS) \ + $(APP2LIBS) \ + $(APP2STDLIBS) \ + $(APP2STDLIB) $(STDLIB2) \ + ) + @-echo linking $@.manifest ... +.IF "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);1 $(FI) +.ELSE + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);1 $(FI) +.ENDIF # "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI) +.ELSE + $(COMMAND_ECHO)-$(RM) $(MISC)\$(APP2TARGET).lnk + $(COMMAND_ECHO)-$(RM) $(MISC)\$(APP2TARGET).lst + $(COMMAND_ECHO)-$(RM) $(MISC)\linkobj.lst + for %_i in ($(MISC)\*.obj) do type %_i >> $(MISC)\linkobj.lst + type $(mktmp,$(MISC)\$(APP2TARGET).lst + $(APP2LINKFLAGS) \ + $(LINKFLAGSAPP) $(APP2BASEX) \ + $(APP2STACKN) \ + -out:$@ \ + $(STDOBJ) \ + $(APP2LINKRES) \ + $(APP2RES) \ + $(APP2OBJS) \ + $(APP2LIBS) \ + $(APP2STDLIBS) \ + $(APP2STDLIB) $(STDLIB2)) + $(COMMAND_ECHO)$(SED)$(SED) -e 's/\(\.\.\\\)\{2,4\}/..\\/g' $(MISC)\$(APP2TARGETN:b)_linkobj.lst >> $(MISC)\$(APP2TARGET).lst + $(COMMAND_ECHO)$(SED)$(IFEXIST) $(MISC)/$(APP2TARGET).lst $(THEN) type $(MISC)/$(APP2TARGET).lst >> $(MISC)/$(APP2TARGET).lnk $(FI) + $(COMMAND_ECHO)$(SED)$(APP2LINKER) @$(MISC)\$(APP2TARGET).lnk +.ENDIF # "$(linkinc)" == "" +.ENDIF # "$(COM)" == "GCC" +.IF "$(APP2TARGET)" == "loader" + $(COMMAND_ECHO)$(PERL) loader.pl $@ + $(COMMAND_ECHO)$(TYPE) $(@) $(@:d)unloader.exe > $(@:d)_new.exe + $(COMMAND_ECHO)$(RM) $@ + $(COMMAND_ECHO)$(RENAME) $(@:d)_new.exe $(@:d)loader.exe +.ENDIF # "$(TARGET)" == "setup" + +.ENDIF # "$(GUI)" == "WNT" + +.ENDIF # "$(APP2TARGETN)"!="" + + +# Instruction for linking +# unroll begin + +.IF "$(APP3LINKTYPE)" != "" +#must be either STATIC or SHARED +APP3LINKTYPEFLAG=$(APPLINK$(APP3LINKTYPE)) +.ENDIF + +# decide how to link +.IF "$(APP3CODETYPE)"=="C" +APP3LINKER=$(LINKC) +APP3STDLIB=$(subst,CPPRUNTIME, $(STDLIB)) +APP3LINKFLAGS+=$(LINKCFLAGS) +.ELSE # "$(APP3CODETYPE)"=="C" +APP3LINKER=$(LINK) +APP3STDLIB=$(subst,CPPRUNTIME,$(STDLIBCPP) $(STDLIB)) +APP3LINKFLAGS+=$(LINKFLAGS) +.ENDIF # "$(APP3CODETYPE)"=="C" + +APP3RPATH*=OOO +LINKFLAGSRUNPATH_$(APP3RPATH)*=/ERROR:/Bad_APP3RPATH_value +.IF "$(OS)" != "MACOSX" +APP3LINKFLAGS+=$(LINKFLAGSRUNPATH_$(APP3RPATH)) +.ENDIF + +.IF "$(APP3STACK)" != "" +.IF "$(LINKFLAGSTACK)" != "" +APP3STACKN=$(LINKFLAGSTACK)$(APP3STACK) +.ENDIF +.ELSE +APP3STACKN= +.ENDIF + +.IF "$(APP3NOSAL)"=="" +.IF "$(TARGETTYPE)" == "GUI" +APP3OBJS+= $(STDOBJVCL) +.ENDIF +.ENDIF + +.IF "$(GUI)$(COM)" == "WNTGCC" +APP3RESO= +.IF "$(APP3LINKRES)" != "" || "$(APP3RES)" != "" +APP3RESO=$(MISC)/$(APP3TARGET:b)_res.o +.ENDIF +.ENDIF + +.IF "$(GUI)" == "UNX" +APP3DEPN+:=$(APP3DEPNU) +USE_APP3DEF= +.ENDIF + +.IF "$(APP3TARGETN)"!="" + +.IF "$(APP3PRODUCTNAME)"!="" +APP3PRODUCTDEF+:=-DPRODUCT_NAME=\"$(APP3PRODUCTNAME)\" +.ENDIF # "$(APP3PRODUCTNAME)"!="" + +.IF "$(linkinc)"!="" +.IF "$(GUI)"=="WNT" +.IF "$(APP3LIBS)"!="" +$(MISC)/$(APP3TARGET)_linkinc.ls .PHONY: + @@-$(RM) $@ + sed -f $(SOLARENV)/bin/chrel.sed $(foreach,i,$(APP3LIBS) $(i:s/.lib/.lin/)) >> $@ +.ENDIF #"$(APP3LIBS)"!="" +.ENDIF + +LINKINCTARGETS+=$(MISC)/$(APP3TARGETN:b)_linkinc.ls +$(APP3TARGETN) : $(LINKINCTARGETS) +.ENDIF # "$(linkinc)"!="" + +# Allow for target specific LIBSALCPPRT override +APP3LIBSALCPPRT*=$(LIBSALCPPRT) + +$(APP3TARGETN): $(APP3OBJS) $(APP3LIBS) \ + $(APP3RES) \ + $(APP3ICON) $(APP3DEPN) $(USE_APP3DEF) + @echo "Making: " $(@:f) +.IF "$(GUI)"=="UNX" +.IF "$(OS)"=="MACOSX" + @-$(RM) $(MISC)/$(@:b).list + @-$(RM) $(MISC)/$(TARGET).$(@:b)_3.cmd + @-$(RM) $(MISC)/$(@:b).strip + @echo $(STDSLO) $(APP3OBJS:s/.obj/.o/) \ + `cat /dev/null $(APP3LIBS) | sed s\#$(ROUT)\#$(OUT)\#g` | tr -s " " "\n" > $(MISC)/$(@:b).list + @/bin/echo -n $(APP3LINKER) $(APP3LINKFLAGS) $(LINKFLAGSAPP) -L$(PRJ)/$(INPATH)/lib $(SOLARLIB) -o $@ \ + $(APP3LINKTYPEFLAG) $(APP3STDLIBS) $(APP3STDLIB) $(STDLIB3) -filelist $(MISC)/$(@:b).list > $(MISC)/$(TARGET).$(@:b)_3.cmd + @$(PERL) $(SOLARENV)/bin/macosx-dylib-link-list.pl \ + `cat $(MISC)/$(TARGET).$(@:b)_3.cmd` \ + >> $(MISC)/$(TARGET).$(@:b)_3.cmd + .IF "$(VERBOSE)" == "TRUE" + @cat $(MISC)/$(TARGET).$(@:b)_3.cmd + .ENDIF + @+source $(MISC)/$(TARGET).$(@:b)_3.cmd +# Need to strip __objcInit symbol to avoid duplicate symbols when loading +# libraries at runtime + @-nm $@ | grep -v ' U ' | $(AWK) '{ print $$NF }' | grep -F -x '__objcInit' > $(MISC)/$(@:b).strip + @strip -i -R $(MISC)/$(@:b).strip -X $@ + @$(PERL) $(SOLARENV)/bin/macosx-change-install-names.pl \ + app $(APP3RPATH) $@ +.IF "$(TARGETTYPE)"=="GUI" + @echo "Making: " $(@:f).app + @macosx-create-bundle $@ +.ENDIF # "$(TARGETTYPE)"=="GUI" +.ELSE # "$(OS)"=="MACOSX" + @-$(RM) $(MISC)/$(TARGET).$(@:b)_3.cmd + @echo $(APP3LINKER) $(APP3LINKFLAGS) $(LINKFLAGSAPP) -L$(PRJ)/$(INPATH)/lib $(SOLARLIB) $(STDSLO) \ + $(APP3OBJS:s/.obj/.o/) '\' > $(MISC)/$(TARGET).$(@:b)_3.cmd + @cat $(mktmp /dev/null $(APP3LIBS)) | xargs -n 1 cat | sed s\#$(ROUT)\#$(OUT)\#g | sed 's#$$# \\#' >> $(MISC)/$(TARGET).$(@:b)_3.cmd + @echo $(APP3LINKTYPEFLAG) $(APP3LIBSALCPPRT) $(APP3STDLIBS) $(APP3STDLIB) $(STDLIB3) -o $@ >> $(MISC)/$(TARGET).$(@:b)_3.cmd + .IF "$(VERBOSE)" == "TRUE" + @cat $(MISC)/$(TARGET).$(@:b)_3.cmd + .ENDIF + @+source $(MISC)/$(TARGET).$(@:b)_3.cmd + .IF "$(VERBOSE)" == "TRUE" + .ENDIF +.ENDIF # "$(OS)"=="MACOSX" +.ENDIF +.IF "$(GUI)" == "WNT" + @@-$(MKDIR) $(@:d:d) +.IF "$(APP3LINKRES)" != "" + @@-$(RM) $(MISC)/$(APP3LINKRES:b).rc +.IF "$(APP3ICON)" != "" + @-echo 1 ICON $(EMQ)"$(APP3ICON:s/\/\\/)$(EMQ)" >> $(MISC)/$(APP3LINKRES:b).rc +.ENDIF # "$(APP3ICON)" != "" +.IF "$(APP3VERINFO)" != "" + @-echo $(EMQ)#define VERVARIANT $(BUILD) >> $(MISC)/$(APP3LINKRES:b).rc + @-echo $(EMQ)#include $(EMQ)"$(APP3VERINFO)$(EMQ)" >> $(MISC)/$(APP3LINKRES:b).rc +.ENDIF # "$(APP3VERINFO)" != "" +.IF "$(COM)" == "GCC" + $(COMMAND_ECHO)$(RC) -DWIN32 $(APP3PRODUCTDEF) -I$(SOLARRESDIR) $(INCLUDE) $(RCLINKFLAGS) -o $(MISC)/$(APP3LINKRES:b).res $(MISC)/$(APP3LINKRES:b).rc +.ELSE + $(COMMAND_ECHO)$(RC) -DWIN32 $(APP3PRODUCTDEF) -I$(SOLARRESDIR) $(INCLUDE) $(RCLINKFLAGS) $(MISC)/$(APP3LINKRES:b).rc +.ENDIF +.ENDIF # "$(APP3LINKRES)" != "" +.IF "$(COM)" == "GCC" +.IF "$(APP3LINKRES)" != "" || "$(APP3RES)" != "" + @cat $(APP3LINKRES) $(subst,/res/,/res{$(subst,$(BIN), $(@:d))} $(APP3RES)) > $(MISC)/$(@:b)_all.res + $(WINDRES) $(MISC)/$(@:b)_all.res $(APP3RESO) +.ENDIF + @echo $(LINK) $(LINKFLAGS) $(LINKFLAGSAPP) $(MINGWSSTDOBJ) -L$(PRJ)/$(INPATH)/lib $(SOLARLIB) $(STDSLO) \ + $(APP3BASEX) $(APP3STACKN) -o $@ $(APP3OBJS) \ + -Wl,-Map,$(MISC)/$(@:b).map $(STDOBJ) $(APP3RESO) \ + `$(TYPE) /dev/null $(APP3LIBS) | sed s#$(ROUT)#$(OUT)#g` \ + $(APP_LINKTYPE) $(APP3LIBSALCPPRT) \ + -Wl,--start-group $(APP3STDLIBS) -Wl,--end-group $(APP3STDLIB) \ + $(STDLIB3) $(MINGWSSTDENDOBJ) > $(MISC)/$(TARGET).$(@:b)_3.cmd +# need this comment line, else dmake somehow gets confused by the .IFs and .ENDIFs + .IF "$(VERBOSE)" == "TRUE" + @$(TYPE) $(MISC)/$(TARGET).$(@:b)_3.cmd + .ENDIF + @+source $(MISC)/$(TARGET).$(@:b)_3.cmd +.ELSE # "$(COM)" == "GCC" +.IF "$(linkinc)" == "" + $(COMMAND_ECHO)$(APP3LINKER) @$(mktmp \ + $(APP3LINKFLAGS) \ + $(LINKFLAGSAPP) $(APP3BASEX) \ + $(APP3STACKN) \ + -out:$@ \ + -map:$(MISC)/{$(subst,/,_ $(APP3TARGET)).map} \ + $(STDOBJ) \ + $(APP3LINKRES) \ + $(APP3RES) \ + $(APP3OBJS) \ + $(APP3LIBS) \ + $(APP3STDLIBS) \ + $(APP3STDLIB) $(STDLIB3) \ + ) + @-echo linking $@.manifest ... +.IF "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);1 $(FI) +.ELSE + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);1 $(FI) +.ENDIF # "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI) +.ELSE + $(COMMAND_ECHO)-$(RM) $(MISC)\$(APP3TARGET).lnk + $(COMMAND_ECHO)-$(RM) $(MISC)\$(APP3TARGET).lst + $(COMMAND_ECHO)-$(RM) $(MISC)\linkobj.lst + for %_i in ($(MISC)\*.obj) do type %_i >> $(MISC)\linkobj.lst + type $(mktmp,$(MISC)\$(APP3TARGET).lst + $(APP3LINKFLAGS) \ + $(LINKFLAGSAPP) $(APP3BASEX) \ + $(APP3STACKN) \ + -out:$@ \ + $(STDOBJ) \ + $(APP3LINKRES) \ + $(APP3RES) \ + $(APP3OBJS) \ + $(APP3LIBS) \ + $(APP3STDLIBS) \ + $(APP3STDLIB) $(STDLIB3)) + $(COMMAND_ECHO)$(SED)$(SED) -e 's/\(\.\.\\\)\{2,4\}/..\\/g' $(MISC)\$(APP3TARGETN:b)_linkobj.lst >> $(MISC)\$(APP3TARGET).lst + $(COMMAND_ECHO)$(SED)$(IFEXIST) $(MISC)/$(APP3TARGET).lst $(THEN) type $(MISC)/$(APP3TARGET).lst >> $(MISC)/$(APP3TARGET).lnk $(FI) + $(COMMAND_ECHO)$(SED)$(APP3LINKER) @$(MISC)\$(APP3TARGET).lnk +.ENDIF # "$(linkinc)" == "" +.ENDIF # "$(COM)" == "GCC" +.IF "$(APP3TARGET)" == "loader" + $(COMMAND_ECHO)$(PERL) loader.pl $@ + $(COMMAND_ECHO)$(TYPE) $(@) $(@:d)unloader.exe > $(@:d)_new.exe + $(COMMAND_ECHO)$(RM) $@ + $(COMMAND_ECHO)$(RENAME) $(@:d)_new.exe $(@:d)loader.exe +.ENDIF # "$(TARGET)" == "setup" + +.ENDIF # "$(GUI)" == "WNT" + +.ENDIF # "$(APP3TARGETN)"!="" + + +# Instruction for linking +# unroll begin + +.IF "$(APP4LINKTYPE)" != "" +#must be either STATIC or SHARED +APP4LINKTYPEFLAG=$(APPLINK$(APP4LINKTYPE)) +.ENDIF + +# decide how to link +.IF "$(APP4CODETYPE)"=="C" +APP4LINKER=$(LINKC) +APP4STDLIB=$(subst,CPPRUNTIME, $(STDLIB)) +APP4LINKFLAGS+=$(LINKCFLAGS) +.ELSE # "$(APP4CODETYPE)"=="C" +APP4LINKER=$(LINK) +APP4STDLIB=$(subst,CPPRUNTIME,$(STDLIBCPP) $(STDLIB)) +APP4LINKFLAGS+=$(LINKFLAGS) +.ENDIF # "$(APP4CODETYPE)"=="C" + +APP4RPATH*=OOO +LINKFLAGSRUNPATH_$(APP4RPATH)*=/ERROR:/Bad_APP4RPATH_value +.IF "$(OS)" != "MACOSX" +APP4LINKFLAGS+=$(LINKFLAGSRUNPATH_$(APP4RPATH)) +.ENDIF + +.IF "$(APP4STACK)" != "" +.IF "$(LINKFLAGSTACK)" != "" +APP4STACKN=$(LINKFLAGSTACK)$(APP4STACK) +.ENDIF +.ELSE +APP4STACKN= +.ENDIF + +.IF "$(APP4NOSAL)"=="" +.IF "$(TARGETTYPE)" == "GUI" +APP4OBJS+= $(STDOBJVCL) +.ENDIF +.ENDIF + +.IF "$(GUI)$(COM)" == "WNTGCC" +APP4RESO= +.IF "$(APP4LINKRES)" != "" || "$(APP4RES)" != "" +APP4RESO=$(MISC)/$(APP4TARGET:b)_res.o +.ENDIF +.ENDIF + +.IF "$(GUI)" == "UNX" +APP4DEPN+:=$(APP4DEPNU) +USE_APP4DEF= +.ENDIF + +.IF "$(APP4TARGETN)"!="" + +.IF "$(APP4PRODUCTNAME)"!="" +APP4PRODUCTDEF+:=-DPRODUCT_NAME=\"$(APP4PRODUCTNAME)\" +.ENDIF # "$(APP4PRODUCTNAME)"!="" + +.IF "$(linkinc)"!="" +.IF "$(GUI)"=="WNT" +.IF "$(APP4LIBS)"!="" +$(MISC)/$(APP4TARGET)_linkinc.ls .PHONY: + @@-$(RM) $@ + sed -f $(SOLARENV)/bin/chrel.sed $(foreach,i,$(APP4LIBS) $(i:s/.lib/.lin/)) >> $@ +.ENDIF #"$(APP4LIBS)"!="" +.ENDIF + +LINKINCTARGETS+=$(MISC)/$(APP4TARGETN:b)_linkinc.ls +$(APP4TARGETN) : $(LINKINCTARGETS) +.ENDIF # "$(linkinc)"!="" + +# Allow for target specific LIBSALCPPRT override +APP4LIBSALCPPRT*=$(LIBSALCPPRT) + +$(APP4TARGETN): $(APP4OBJS) $(APP4LIBS) \ + $(APP4RES) \ + $(APP4ICON) $(APP4DEPN) $(USE_APP4DEF) + @echo "Making: " $(@:f) +.IF "$(GUI)"=="UNX" +.IF "$(OS)"=="MACOSX" + @-$(RM) $(MISC)/$(@:b).list + @-$(RM) $(MISC)/$(TARGET).$(@:b)_4.cmd + @-$(RM) $(MISC)/$(@:b).strip + @echo $(STDSLO) $(APP4OBJS:s/.obj/.o/) \ + `cat /dev/null $(APP4LIBS) | sed s\#$(ROUT)\#$(OUT)\#g` | tr -s " " "\n" > $(MISC)/$(@:b).list + @/bin/echo -n $(APP4LINKER) $(APP4LINKFLAGS) $(LINKFLAGSAPP) -L$(PRJ)/$(INPATH)/lib $(SOLARLIB) -o $@ \ + $(APP4LINKTYPEFLAG) $(APP4STDLIBS) $(APP4STDLIB) $(STDLIB4) -filelist $(MISC)/$(@:b).list > $(MISC)/$(TARGET).$(@:b)_4.cmd + @$(PERL) $(SOLARENV)/bin/macosx-dylib-link-list.pl \ + `cat $(MISC)/$(TARGET).$(@:b)_4.cmd` \ + >> $(MISC)/$(TARGET).$(@:b)_4.cmd + .IF "$(VERBOSE)" == "TRUE" + @cat $(MISC)/$(TARGET).$(@:b)_4.cmd + .ENDIF + @+source $(MISC)/$(TARGET).$(@:b)_4.cmd +# Need to strip __objcInit symbol to avoid duplicate symbols when loading +# libraries at runtime + @-nm $@ | grep -v ' U ' | $(AWK) '{ print $$NF }' | grep -F -x '__objcInit' > $(MISC)/$(@:b).strip + @strip -i -R $(MISC)/$(@:b).strip -X $@ + @$(PERL) $(SOLARENV)/bin/macosx-change-install-names.pl \ + app $(APP4RPATH) $@ +.IF "$(TARGETTYPE)"=="GUI" + @echo "Making: " $(@:f).app + @macosx-create-bundle $@ +.ENDIF # "$(TARGETTYPE)"=="GUI" +.ELSE # "$(OS)"=="MACOSX" + @-$(RM) $(MISC)/$(TARGET).$(@:b)_4.cmd + @echo $(APP4LINKER) $(APP4LINKFLAGS) $(LINKFLAGSAPP) -L$(PRJ)/$(INPATH)/lib $(SOLARLIB) $(STDSLO) \ + $(APP4OBJS:s/.obj/.o/) '\' > $(MISC)/$(TARGET).$(@:b)_4.cmd + @cat $(mktmp /dev/null $(APP4LIBS)) | xargs -n 1 cat | sed s\#$(ROUT)\#$(OUT)\#g | sed 's#$$# \\#' >> $(MISC)/$(TARGET).$(@:b)_4.cmd + @echo $(APP4LINKTYPEFLAG) $(APP4LIBSALCPPRT) $(APP4STDLIBS) $(APP4STDLIB) $(STDLIB4) -o $@ >> $(MISC)/$(TARGET).$(@:b)_4.cmd + .IF "$(VERBOSE)" == "TRUE" + @cat $(MISC)/$(TARGET).$(@:b)_4.cmd + .ENDIF + @+source $(MISC)/$(TARGET).$(@:b)_4.cmd + .IF "$(VERBOSE)" == "TRUE" + .ENDIF +.ENDIF # "$(OS)"=="MACOSX" +.ENDIF +.IF "$(GUI)" == "WNT" + @@-$(MKDIR) $(@:d:d) +.IF "$(APP4LINKRES)" != "" + @@-$(RM) $(MISC)/$(APP4LINKRES:b).rc +.IF "$(APP4ICON)" != "" + @-echo 1 ICON $(EMQ)"$(APP4ICON:s/\/\\/)$(EMQ)" >> $(MISC)/$(APP4LINKRES:b).rc +.ENDIF # "$(APP4ICON)" != "" +.IF "$(APP4VERINFO)" != "" + @-echo $(EMQ)#define VERVARIANT $(BUILD) >> $(MISC)/$(APP4LINKRES:b).rc + @-echo $(EMQ)#include $(EMQ)"$(APP4VERINFO)$(EMQ)" >> $(MISC)/$(APP4LINKRES:b).rc +.ENDIF # "$(APP4VERINFO)" != "" +.IF "$(COM)" == "GCC" + $(COMMAND_ECHO)$(RC) -DWIN32 $(APP4PRODUCTDEF) -I$(SOLARRESDIR) $(INCLUDE) $(RCLINKFLAGS) -o $(MISC)/$(APP4LINKRES:b).res $(MISC)/$(APP4LINKRES:b).rc +.ELSE + $(COMMAND_ECHO)$(RC) -DWIN32 $(APP4PRODUCTDEF) -I$(SOLARRESDIR) $(INCLUDE) $(RCLINKFLAGS) $(MISC)/$(APP4LINKRES:b).rc +.ENDIF +.ENDIF # "$(APP4LINKRES)" != "" +.IF "$(COM)" == "GCC" +.IF "$(APP4LINKRES)" != "" || "$(APP4RES)" != "" + @cat $(APP4LINKRES) $(subst,/res/,/res{$(subst,$(BIN), $(@:d))} $(APP4RES)) > $(MISC)/$(@:b)_all.res + $(WINDRES) $(MISC)/$(@:b)_all.res $(APP4RESO) +.ENDIF + @echo $(LINK) $(LINKFLAGS) $(LINKFLAGSAPP) $(MINGWSSTDOBJ) -L$(PRJ)/$(INPATH)/lib $(SOLARLIB) $(STDSLO) \ + $(APP4BASEX) $(APP4STACKN) -o $@ $(APP4OBJS) \ + -Wl,-Map,$(MISC)/$(@:b).map $(STDOBJ) $(APP4RESO) \ + `$(TYPE) /dev/null $(APP4LIBS) | sed s#$(ROUT)#$(OUT)#g` \ + $(APP_LINKTYPE) $(APP4LIBSALCPPRT) \ + -Wl,--start-group $(APP4STDLIBS) -Wl,--end-group $(APP4STDLIB) \ + $(STDLIB4) $(MINGWSSTDENDOBJ) > $(MISC)/$(TARGET).$(@:b)_4.cmd +# need this comment line, else dmake somehow gets confused by the .IFs and .ENDIFs + .IF "$(VERBOSE)" == "TRUE" + @$(TYPE) $(MISC)/$(TARGET).$(@:b)_4.cmd + .ENDIF + @+source $(MISC)/$(TARGET).$(@:b)_4.cmd +.ELSE # "$(COM)" == "GCC" +.IF "$(linkinc)" == "" + $(COMMAND_ECHO)$(APP4LINKER) @$(mktmp \ + $(APP4LINKFLAGS) \ + $(LINKFLAGSAPP) $(APP4BASEX) \ + $(APP4STACKN) \ + -out:$@ \ + -map:$(MISC)/{$(subst,/,_ $(APP4TARGET)).map} \ + $(STDOBJ) \ + $(APP4LINKRES) \ + $(APP4RES) \ + $(APP4OBJS) \ + $(APP4LIBS) \ + $(APP4STDLIBS) \ + $(APP4STDLIB) $(STDLIB4) \ + ) + @-echo linking $@.manifest ... +.IF "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);1 $(FI) +.ELSE + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);1 $(FI) +.ENDIF # "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI) +.ELSE + $(COMMAND_ECHO)-$(RM) $(MISC)\$(APP4TARGET).lnk + $(COMMAND_ECHO)-$(RM) $(MISC)\$(APP4TARGET).lst + $(COMMAND_ECHO)-$(RM) $(MISC)\linkobj.lst + for %_i in ($(MISC)\*.obj) do type %_i >> $(MISC)\linkobj.lst + type $(mktmp,$(MISC)\$(APP4TARGET).lst + $(APP4LINKFLAGS) \ + $(LINKFLAGSAPP) $(APP4BASEX) \ + $(APP4STACKN) \ + -out:$@ \ + $(STDOBJ) \ + $(APP4LINKRES) \ + $(APP4RES) \ + $(APP4OBJS) \ + $(APP4LIBS) \ + $(APP4STDLIBS) \ + $(APP4STDLIB) $(STDLIB4)) + $(COMMAND_ECHO)$(SED)$(SED) -e 's/\(\.\.\\\)\{2,4\}/..\\/g' $(MISC)\$(APP4TARGETN:b)_linkobj.lst >> $(MISC)\$(APP4TARGET).lst + $(COMMAND_ECHO)$(SED)$(IFEXIST) $(MISC)/$(APP4TARGET).lst $(THEN) type $(MISC)/$(APP4TARGET).lst >> $(MISC)/$(APP4TARGET).lnk $(FI) + $(COMMAND_ECHO)$(SED)$(APP4LINKER) @$(MISC)\$(APP4TARGET).lnk +.ENDIF # "$(linkinc)" == "" +.ENDIF # "$(COM)" == "GCC" +.IF "$(APP4TARGET)" == "loader" + $(COMMAND_ECHO)$(PERL) loader.pl $@ + $(COMMAND_ECHO)$(TYPE) $(@) $(@:d)unloader.exe > $(@:d)_new.exe + $(COMMAND_ECHO)$(RM) $@ + $(COMMAND_ECHO)$(RENAME) $(@:d)_new.exe $(@:d)loader.exe +.ENDIF # "$(TARGET)" == "setup" + +.ENDIF # "$(GUI)" == "WNT" + +.ENDIF # "$(APP4TARGETN)"!="" + + +# Instruction for linking +# unroll begin + +.IF "$(APP5LINKTYPE)" != "" +#must be either STATIC or SHARED +APP5LINKTYPEFLAG=$(APPLINK$(APP5LINKTYPE)) +.ENDIF + +# decide how to link +.IF "$(APP5CODETYPE)"=="C" +APP5LINKER=$(LINKC) +APP5STDLIB=$(subst,CPPRUNTIME, $(STDLIB)) +APP5LINKFLAGS+=$(LINKCFLAGS) +.ELSE # "$(APP5CODETYPE)"=="C" +APP5LINKER=$(LINK) +APP5STDLIB=$(subst,CPPRUNTIME,$(STDLIBCPP) $(STDLIB)) +APP5LINKFLAGS+=$(LINKFLAGS) +.ENDIF # "$(APP5CODETYPE)"=="C" + +APP5RPATH*=OOO +LINKFLAGSRUNPATH_$(APP5RPATH)*=/ERROR:/Bad_APP5RPATH_value +.IF "$(OS)" != "MACOSX" +APP5LINKFLAGS+=$(LINKFLAGSRUNPATH_$(APP5RPATH)) +.ENDIF + +.IF "$(APP5STACK)" != "" +.IF "$(LINKFLAGSTACK)" != "" +APP5STACKN=$(LINKFLAGSTACK)$(APP5STACK) +.ENDIF +.ELSE +APP5STACKN= +.ENDIF + +.IF "$(APP5NOSAL)"=="" +.IF "$(TARGETTYPE)" == "GUI" +APP5OBJS+= $(STDOBJVCL) +.ENDIF +.ENDIF + +.IF "$(GUI)$(COM)" == "WNTGCC" +APP5RESO= +.IF "$(APP5LINKRES)" != "" || "$(APP5RES)" != "" +APP5RESO=$(MISC)/$(APP5TARGET:b)_res.o +.ENDIF +.ENDIF + +.IF "$(GUI)" == "UNX" +APP5DEPN+:=$(APP5DEPNU) +USE_APP5DEF= +.ENDIF + +.IF "$(APP5TARGETN)"!="" + +.IF "$(APP5PRODUCTNAME)"!="" +APP5PRODUCTDEF+:=-DPRODUCT_NAME=\"$(APP5PRODUCTNAME)\" +.ENDIF # "$(APP5PRODUCTNAME)"!="" + +.IF "$(linkinc)"!="" +.IF "$(GUI)"=="WNT" +.IF "$(APP5LIBS)"!="" +$(MISC)/$(APP5TARGET)_linkinc.ls .PHONY: + @@-$(RM) $@ + sed -f $(SOLARENV)/bin/chrel.sed $(foreach,i,$(APP5LIBS) $(i:s/.lib/.lin/)) >> $@ +.ENDIF #"$(APP5LIBS)"!="" +.ENDIF + +LINKINCTARGETS+=$(MISC)/$(APP5TARGETN:b)_linkinc.ls +$(APP5TARGETN) : $(LINKINCTARGETS) +.ENDIF # "$(linkinc)"!="" + +# Allow for target specific LIBSALCPPRT override +APP5LIBSALCPPRT*=$(LIBSALCPPRT) + +$(APP5TARGETN): $(APP5OBJS) $(APP5LIBS) \ + $(APP5RES) \ + $(APP5ICON) $(APP5DEPN) $(USE_APP5DEF) + @echo "Making: " $(@:f) +.IF "$(GUI)"=="UNX" +.IF "$(OS)"=="MACOSX" + @-$(RM) $(MISC)/$(@:b).list + @-$(RM) $(MISC)/$(TARGET).$(@:b)_5.cmd + @-$(RM) $(MISC)/$(@:b).strip + @echo $(STDSLO) $(APP5OBJS:s/.obj/.o/) \ + `cat /dev/null $(APP5LIBS) | sed s\#$(ROUT)\#$(OUT)\#g` | tr -s " " "\n" > $(MISC)/$(@:b).list + @/bin/echo -n $(APP5LINKER) $(APP5LINKFLAGS) $(LINKFLAGSAPP) -L$(PRJ)/$(INPATH)/lib $(SOLARLIB) -o $@ \ + $(APP5LINKTYPEFLAG) $(APP5STDLIBS) $(APP5STDLIB) $(STDLIB5) -filelist $(MISC)/$(@:b).list > $(MISC)/$(TARGET).$(@:b)_5.cmd + @$(PERL) $(SOLARENV)/bin/macosx-dylib-link-list.pl \ + `cat $(MISC)/$(TARGET).$(@:b)_5.cmd` \ + >> $(MISC)/$(TARGET).$(@:b)_5.cmd + .IF "$(VERBOSE)" == "TRUE" + @cat $(MISC)/$(TARGET).$(@:b)_5.cmd + .ENDIF + @+source $(MISC)/$(TARGET).$(@:b)_5.cmd +# Need to strip __objcInit symbol to avoid duplicate symbols when loading +# libraries at runtime + @-nm $@ | grep -v ' U ' | $(AWK) '{ print $$NF }' | grep -F -x '__objcInit' > $(MISC)/$(@:b).strip + @strip -i -R $(MISC)/$(@:b).strip -X $@ + @$(PERL) $(SOLARENV)/bin/macosx-change-install-names.pl \ + app $(APP5RPATH) $@ +.IF "$(TARGETTYPE)"=="GUI" + @echo "Making: " $(@:f).app + @macosx-create-bundle $@ +.ENDIF # "$(TARGETTYPE)"=="GUI" +.ELSE # "$(OS)"=="MACOSX" + @-$(RM) $(MISC)/$(TARGET).$(@:b)_5.cmd + @echo $(APP5LINKER) $(APP5LINKFLAGS) $(LINKFLAGSAPP) -L$(PRJ)/$(INPATH)/lib $(SOLARLIB) $(STDSLO) \ + $(APP5OBJS:s/.obj/.o/) '\' > $(MISC)/$(TARGET).$(@:b)_5.cmd + @cat $(mktmp /dev/null $(APP5LIBS)) | xargs -n 1 cat | sed s\#$(ROUT)\#$(OUT)\#g | sed 's#$$# \\#' >> $(MISC)/$(TARGET).$(@:b)_5.cmd + @echo $(APP5LINKTYPEFLAG) $(APP5LIBSALCPPRT) $(APP5STDLIBS) $(APP5STDLIB) $(STDLIB5) -o $@ >> $(MISC)/$(TARGET).$(@:b)_5.cmd + .IF "$(VERBOSE)" == "TRUE" + @cat $(MISC)/$(TARGET).$(@:b)_5.cmd + .ENDIF + @+source $(MISC)/$(TARGET).$(@:b)_5.cmd + .IF "$(VERBOSE)" == "TRUE" + .ENDIF +.ENDIF # "$(OS)"=="MACOSX" +.ENDIF +.IF "$(GUI)" == "WNT" + @@-$(MKDIR) $(@:d:d) +.IF "$(APP5LINKRES)" != "" + @@-$(RM) $(MISC)/$(APP5LINKRES:b).rc +.IF "$(APP5ICON)" != "" + @-echo 1 ICON $(EMQ)"$(APP5ICON:s/\/\\/)$(EMQ)" >> $(MISC)/$(APP5LINKRES:b).rc +.ENDIF # "$(APP5ICON)" != "" +.IF "$(APP5VERINFO)" != "" + @-echo $(EMQ)#define VERVARIANT $(BUILD) >> $(MISC)/$(APP5LINKRES:b).rc + @-echo $(EMQ)#include $(EMQ)"$(APP5VERINFO)$(EMQ)" >> $(MISC)/$(APP5LINKRES:b).rc +.ENDIF # "$(APP5VERINFO)" != "" +.IF "$(COM)" == "GCC" + $(COMMAND_ECHO)$(RC) -DWIN32 $(APP5PRODUCTDEF) -I$(SOLARRESDIR) $(INCLUDE) $(RCLINKFLAGS) -o $(MISC)/$(APP5LINKRES:b).res $(MISC)/$(APP5LINKRES:b).rc +.ELSE + $(COMMAND_ECHO)$(RC) -DWIN32 $(APP5PRODUCTDEF) -I$(SOLARRESDIR) $(INCLUDE) $(RCLINKFLAGS) $(MISC)/$(APP5LINKRES:b).rc +.ENDIF +.ENDIF # "$(APP5LINKRES)" != "" +.IF "$(COM)" == "GCC" +.IF "$(APP5LINKRES)" != "" || "$(APP5RES)" != "" + @cat $(APP5LINKRES) $(subst,/res/,/res{$(subst,$(BIN), $(@:d))} $(APP5RES)) > $(MISC)/$(@:b)_all.res + $(WINDRES) $(MISC)/$(@:b)_all.res $(APP5RESO) +.ENDIF + @echo $(LINK) $(LINKFLAGS) $(LINKFLAGSAPP) $(MINGWSSTDOBJ) -L$(PRJ)/$(INPATH)/lib $(SOLARLIB) $(STDSLO) \ + $(APP5BASEX) $(APP5STACKN) -o $@ $(APP5OBJS) \ + -Wl,-Map,$(MISC)/$(@:b).map $(STDOBJ) $(APP5RESO) \ + `$(TYPE) /dev/null $(APP5LIBS) | sed s#$(ROUT)#$(OUT)#g` \ + $(APP_LINKTYPE) $(APP5LIBSALCPPRT) \ + -Wl,--start-group $(APP5STDLIBS) -Wl,--end-group $(APP5STDLIB) \ + $(STDLIB5) $(MINGWSSTDENDOBJ) > $(MISC)/$(TARGET).$(@:b)_5.cmd +# need this comment line, else dmake somehow gets confused by the .IFs and .ENDIFs + .IF "$(VERBOSE)" == "TRUE" + @$(TYPE) $(MISC)/$(TARGET).$(@:b)_5.cmd + .ENDIF + @+source $(MISC)/$(TARGET).$(@:b)_5.cmd +.ELSE # "$(COM)" == "GCC" +.IF "$(linkinc)" == "" + $(COMMAND_ECHO)$(APP5LINKER) @$(mktmp \ + $(APP5LINKFLAGS) \ + $(LINKFLAGSAPP) $(APP5BASEX) \ + $(APP5STACKN) \ + -out:$@ \ + -map:$(MISC)/{$(subst,/,_ $(APP5TARGET)).map} \ + $(STDOBJ) \ + $(APP5LINKRES) \ + $(APP5RES) \ + $(APP5OBJS) \ + $(APP5LIBS) \ + $(APP5STDLIBS) \ + $(APP5STDLIB) $(STDLIB5) \ + ) + @-echo linking $@.manifest ... +.IF "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);1 $(FI) +.ELSE + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);1 $(FI) +.ENDIF # "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI) +.ELSE + $(COMMAND_ECHO)-$(RM) $(MISC)\$(APP5TARGET).lnk + $(COMMAND_ECHO)-$(RM) $(MISC)\$(APP5TARGET).lst + $(COMMAND_ECHO)-$(RM) $(MISC)\linkobj.lst + for %_i in ($(MISC)\*.obj) do type %_i >> $(MISC)\linkobj.lst + type $(mktmp,$(MISC)\$(APP5TARGET).lst + $(APP5LINKFLAGS) \ + $(LINKFLAGSAPP) $(APP5BASEX) \ + $(APP5STACKN) \ + -out:$@ \ + $(STDOBJ) \ + $(APP5LINKRES) \ + $(APP5RES) \ + $(APP5OBJS) \ + $(APP5LIBS) \ + $(APP5STDLIBS) \ + $(APP5STDLIB) $(STDLIB5)) + $(COMMAND_ECHO)$(SED)$(SED) -e 's/\(\.\.\\\)\{2,4\}/..\\/g' $(MISC)\$(APP5TARGETN:b)_linkobj.lst >> $(MISC)\$(APP5TARGET).lst + $(COMMAND_ECHO)$(SED)$(IFEXIST) $(MISC)/$(APP5TARGET).lst $(THEN) type $(MISC)/$(APP5TARGET).lst >> $(MISC)/$(APP5TARGET).lnk $(FI) + $(COMMAND_ECHO)$(SED)$(APP5LINKER) @$(MISC)\$(APP5TARGET).lnk +.ENDIF # "$(linkinc)" == "" +.ENDIF # "$(COM)" == "GCC" +.IF "$(APP5TARGET)" == "loader" + $(COMMAND_ECHO)$(PERL) loader.pl $@ + $(COMMAND_ECHO)$(TYPE) $(@) $(@:d)unloader.exe > $(@:d)_new.exe + $(COMMAND_ECHO)$(RM) $@ + $(COMMAND_ECHO)$(RENAME) $(@:d)_new.exe $(@:d)loader.exe +.ENDIF # "$(TARGET)" == "setup" + +.ENDIF # "$(GUI)" == "WNT" + +.ENDIF # "$(APP5TARGETN)"!="" + + +# Instruction for linking +# unroll begin + +.IF "$(APP6LINKTYPE)" != "" +#must be either STATIC or SHARED +APP6LINKTYPEFLAG=$(APPLINK$(APP6LINKTYPE)) +.ENDIF + +# decide how to link +.IF "$(APP6CODETYPE)"=="C" +APP6LINKER=$(LINKC) +APP6STDLIB=$(subst,CPPRUNTIME, $(STDLIB)) +APP6LINKFLAGS+=$(LINKCFLAGS) +.ELSE # "$(APP6CODETYPE)"=="C" +APP6LINKER=$(LINK) +APP6STDLIB=$(subst,CPPRUNTIME,$(STDLIBCPP) $(STDLIB)) +APP6LINKFLAGS+=$(LINKFLAGS) +.ENDIF # "$(APP6CODETYPE)"=="C" + +APP6RPATH*=OOO +LINKFLAGSRUNPATH_$(APP6RPATH)*=/ERROR:/Bad_APP6RPATH_value +.IF "$(OS)" != "MACOSX" +APP6LINKFLAGS+=$(LINKFLAGSRUNPATH_$(APP6RPATH)) +.ENDIF + +.IF "$(APP6STACK)" != "" +.IF "$(LINKFLAGSTACK)" != "" +APP6STACKN=$(LINKFLAGSTACK)$(APP6STACK) +.ENDIF +.ELSE +APP6STACKN= +.ENDIF + +.IF "$(APP6NOSAL)"=="" +.IF "$(TARGETTYPE)" == "GUI" +APP6OBJS+= $(STDOBJVCL) +.ENDIF +.ENDIF + +.IF "$(GUI)$(COM)" == "WNTGCC" +APP6RESO= +.IF "$(APP6LINKRES)" != "" || "$(APP6RES)" != "" +APP6RESO=$(MISC)/$(APP6TARGET:b)_res.o +.ENDIF +.ENDIF + +.IF "$(GUI)" == "UNX" +APP6DEPN+:=$(APP6DEPNU) +USE_APP6DEF= +.ENDIF + +.IF "$(APP6TARGETN)"!="" + +.IF "$(APP6PRODUCTNAME)"!="" +APP6PRODUCTDEF+:=-DPRODUCT_NAME=\"$(APP6PRODUCTNAME)\" +.ENDIF # "$(APP6PRODUCTNAME)"!="" + +.IF "$(linkinc)"!="" +.IF "$(GUI)"=="WNT" +.IF "$(APP6LIBS)"!="" +$(MISC)/$(APP6TARGET)_linkinc.ls .PHONY: + @@-$(RM) $@ + sed -f $(SOLARENV)/bin/chrel.sed $(foreach,i,$(APP6LIBS) $(i:s/.lib/.lin/)) >> $@ +.ENDIF #"$(APP6LIBS)"!="" +.ENDIF + +LINKINCTARGETS+=$(MISC)/$(APP6TARGETN:b)_linkinc.ls +$(APP6TARGETN) : $(LINKINCTARGETS) +.ENDIF # "$(linkinc)"!="" + +# Allow for target specific LIBSALCPPRT override +APP6LIBSALCPPRT*=$(LIBSALCPPRT) + +$(APP6TARGETN): $(APP6OBJS) $(APP6LIBS) \ + $(APP6RES) \ + $(APP6ICON) $(APP6DEPN) $(USE_APP6DEF) + @echo "Making: " $(@:f) +.IF "$(GUI)"=="UNX" +.IF "$(OS)"=="MACOSX" + @-$(RM) $(MISC)/$(@:b).list + @-$(RM) $(MISC)/$(TARGET).$(@:b)_6.cmd + @-$(RM) $(MISC)/$(@:b).strip + @echo $(STDSLO) $(APP6OBJS:s/.obj/.o/) \ + `cat /dev/null $(APP6LIBS) | sed s\#$(ROUT)\#$(OUT)\#g` | tr -s " " "\n" > $(MISC)/$(@:b).list + @/bin/echo -n $(APP6LINKER) $(APP6LINKFLAGS) $(LINKFLAGSAPP) -L$(PRJ)/$(INPATH)/lib $(SOLARLIB) -o $@ \ + $(APP6LINKTYPEFLAG) $(APP6STDLIBS) $(APP6STDLIB) $(STDLIB6) -filelist $(MISC)/$(@:b).list > $(MISC)/$(TARGET).$(@:b)_6.cmd + @$(PERL) $(SOLARENV)/bin/macosx-dylib-link-list.pl \ + `cat $(MISC)/$(TARGET).$(@:b)_6.cmd` \ + >> $(MISC)/$(TARGET).$(@:b)_6.cmd + .IF "$(VERBOSE)" == "TRUE" + @cat $(MISC)/$(TARGET).$(@:b)_6.cmd + .ENDIF + @+source $(MISC)/$(TARGET).$(@:b)_6.cmd +# Need to strip __objcInit symbol to avoid duplicate symbols when loading +# libraries at runtime + @-nm $@ | grep -v ' U ' | $(AWK) '{ print $$NF }' | grep -F -x '__objcInit' > $(MISC)/$(@:b).strip + @strip -i -R $(MISC)/$(@:b).strip -X $@ + @$(PERL) $(SOLARENV)/bin/macosx-change-install-names.pl \ + app $(APP6RPATH) $@ +.IF "$(TARGETTYPE)"=="GUI" + @echo "Making: " $(@:f).app + @macosx-create-bundle $@ +.ENDIF # "$(TARGETTYPE)"=="GUI" +.ELSE # "$(OS)"=="MACOSX" + @-$(RM) $(MISC)/$(TARGET).$(@:b)_6.cmd + @echo $(APP6LINKER) $(APP6LINKFLAGS) $(LINKFLAGSAPP) -L$(PRJ)/$(INPATH)/lib $(SOLARLIB) $(STDSLO) \ + $(APP6OBJS:s/.obj/.o/) '\' > $(MISC)/$(TARGET).$(@:b)_6.cmd + @cat $(mktmp /dev/null $(APP6LIBS)) | xargs -n 1 cat | sed s\#$(ROUT)\#$(OUT)\#g | sed 's#$$# \\#' >> $(MISC)/$(TARGET).$(@:b)_6.cmd + @echo $(APP6LINKTYPEFLAG) $(APP6LIBSALCPPRT) $(APP6STDLIBS) $(APP6STDLIB) $(STDLIB6) -o $@ >> $(MISC)/$(TARGET).$(@:b)_6.cmd + .IF "$(VERBOSE)" == "TRUE" + @cat $(MISC)/$(TARGET).$(@:b)_6.cmd + .ENDIF + @+source $(MISC)/$(TARGET).$(@:b)_6.cmd + .IF "$(VERBOSE)" == "TRUE" + .ENDIF +.ENDIF # "$(OS)"=="MACOSX" +.ENDIF +.IF "$(GUI)" == "WNT" + @@-$(MKDIR) $(@:d:d) +.IF "$(APP6LINKRES)" != "" + @@-$(RM) $(MISC)/$(APP6LINKRES:b).rc +.IF "$(APP6ICON)" != "" + @-echo 1 ICON $(EMQ)"$(APP6ICON:s/\/\\/)$(EMQ)" >> $(MISC)/$(APP6LINKRES:b).rc +.ENDIF # "$(APP6ICON)" != "" +.IF "$(APP6VERINFO)" != "" + @-echo $(EMQ)#define VERVARIANT $(BUILD) >> $(MISC)/$(APP6LINKRES:b).rc + @-echo $(EMQ)#include $(EMQ)"$(APP6VERINFO)$(EMQ)" >> $(MISC)/$(APP6LINKRES:b).rc +.ENDIF # "$(APP6VERINFO)" != "" +.IF "$(COM)" == "GCC" + $(COMMAND_ECHO)$(RC) -DWIN32 $(APP6PRODUCTDEF) -I$(SOLARRESDIR) $(INCLUDE) $(RCLINKFLAGS) -o $(MISC)/$(APP6LINKRES:b).res $(MISC)/$(APP6LINKRES:b).rc +.ELSE + $(COMMAND_ECHO)$(RC) -DWIN32 $(APP6PRODUCTDEF) -I$(SOLARRESDIR) $(INCLUDE) $(RCLINKFLAGS) $(MISC)/$(APP6LINKRES:b).rc +.ENDIF +.ENDIF # "$(APP6LINKRES)" != "" +.IF "$(COM)" == "GCC" +.IF "$(APP6LINKRES)" != "" || "$(APP6RES)" != "" + @cat $(APP6LINKRES) $(subst,/res/,/res{$(subst,$(BIN), $(@:d))} $(APP6RES)) > $(MISC)/$(@:b)_all.res + $(WINDRES) $(MISC)/$(@:b)_all.res $(APP6RESO) +.ENDIF + @echo $(LINK) $(LINKFLAGS) $(LINKFLAGSAPP) $(MINGWSSTDOBJ) -L$(PRJ)/$(INPATH)/lib $(SOLARLIB) $(STDSLO) \ + $(APP6BASEX) $(APP6STACKN) -o $@ $(APP6OBJS) \ + -Wl,-Map,$(MISC)/$(@:b).map $(STDOBJ) $(APP6RESO) \ + `$(TYPE) /dev/null $(APP6LIBS) | sed s#$(ROUT)#$(OUT)#g` \ + $(APP_LINKTYPE) $(APP6LIBSALCPPRT) \ + -Wl,--start-group $(APP6STDLIBS) -Wl,--end-group $(APP6STDLIB) \ + $(STDLIB6) $(MINGWSSTDENDOBJ) > $(MISC)/$(TARGET).$(@:b)_6.cmd +# need this comment line, else dmake somehow gets confused by the .IFs and .ENDIFs + .IF "$(VERBOSE)" == "TRUE" + @$(TYPE) $(MISC)/$(TARGET).$(@:b)_6.cmd + .ENDIF + @+source $(MISC)/$(TARGET).$(@:b)_6.cmd +.ELSE # "$(COM)" == "GCC" +.IF "$(linkinc)" == "" + $(COMMAND_ECHO)$(APP6LINKER) @$(mktmp \ + $(APP6LINKFLAGS) \ + $(LINKFLAGSAPP) $(APP6BASEX) \ + $(APP6STACKN) \ + -out:$@ \ + -map:$(MISC)/{$(subst,/,_ $(APP6TARGET)).map} \ + $(STDOBJ) \ + $(APP6LINKRES) \ + $(APP6RES) \ + $(APP6OBJS) \ + $(APP6LIBS) \ + $(APP6STDLIBS) \ + $(APP6STDLIB) $(STDLIB6) \ + ) + @-echo linking $@.manifest ... +.IF "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);1 $(FI) +.ELSE + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);1 $(FI) +.ENDIF # "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI) +.ELSE + $(COMMAND_ECHO)-$(RM) $(MISC)\$(APP6TARGET).lnk + $(COMMAND_ECHO)-$(RM) $(MISC)\$(APP6TARGET).lst + $(COMMAND_ECHO)-$(RM) $(MISC)\linkobj.lst + for %_i in ($(MISC)\*.obj) do type %_i >> $(MISC)\linkobj.lst + type $(mktmp,$(MISC)\$(APP6TARGET).lst + $(APP6LINKFLAGS) \ + $(LINKFLAGSAPP) $(APP6BASEX) \ + $(APP6STACKN) \ + -out:$@ \ + $(STDOBJ) \ + $(APP6LINKRES) \ + $(APP6RES) \ + $(APP6OBJS) \ + $(APP6LIBS) \ + $(APP6STDLIBS) \ + $(APP6STDLIB) $(STDLIB6)) + $(COMMAND_ECHO)$(SED)$(SED) -e 's/\(\.\.\\\)\{2,4\}/..\\/g' $(MISC)\$(APP6TARGETN:b)_linkobj.lst >> $(MISC)\$(APP6TARGET).lst + $(COMMAND_ECHO)$(SED)$(IFEXIST) $(MISC)/$(APP6TARGET).lst $(THEN) type $(MISC)/$(APP6TARGET).lst >> $(MISC)/$(APP6TARGET).lnk $(FI) + $(COMMAND_ECHO)$(SED)$(APP6LINKER) @$(MISC)\$(APP6TARGET).lnk +.ENDIF # "$(linkinc)" == "" +.ENDIF # "$(COM)" == "GCC" +.IF "$(APP6TARGET)" == "loader" + $(COMMAND_ECHO)$(PERL) loader.pl $@ + $(COMMAND_ECHO)$(TYPE) $(@) $(@:d)unloader.exe > $(@:d)_new.exe + $(COMMAND_ECHO)$(RM) $@ + $(COMMAND_ECHO)$(RENAME) $(@:d)_new.exe $(@:d)loader.exe +.ENDIF # "$(TARGET)" == "setup" + +.ENDIF # "$(GUI)" == "WNT" + +.ENDIF # "$(APP6TARGETN)"!="" + + +# Instruction for linking +# unroll begin + +.IF "$(APP7LINKTYPE)" != "" +#must be either STATIC or SHARED +APP7LINKTYPEFLAG=$(APPLINK$(APP7LINKTYPE)) +.ENDIF + +# decide how to link +.IF "$(APP7CODETYPE)"=="C" +APP7LINKER=$(LINKC) +APP7STDLIB=$(subst,CPPRUNTIME, $(STDLIB)) +APP7LINKFLAGS+=$(LINKCFLAGS) +.ELSE # "$(APP7CODETYPE)"=="C" +APP7LINKER=$(LINK) +APP7STDLIB=$(subst,CPPRUNTIME,$(STDLIBCPP) $(STDLIB)) +APP7LINKFLAGS+=$(LINKFLAGS) +.ENDIF # "$(APP7CODETYPE)"=="C" + +APP7RPATH*=OOO +LINKFLAGSRUNPATH_$(APP7RPATH)*=/ERROR:/Bad_APP7RPATH_value +.IF "$(OS)" != "MACOSX" +APP7LINKFLAGS+=$(LINKFLAGSRUNPATH_$(APP7RPATH)) +.ENDIF + +.IF "$(APP7STACK)" != "" +.IF "$(LINKFLAGSTACK)" != "" +APP7STACKN=$(LINKFLAGSTACK)$(APP7STACK) +.ENDIF +.ELSE +APP7STACKN= +.ENDIF + +.IF "$(APP7NOSAL)"=="" +.IF "$(TARGETTYPE)" == "GUI" +APP7OBJS+= $(STDOBJVCL) +.ENDIF +.ENDIF + +.IF "$(GUI)$(COM)" == "WNTGCC" +APP7RESO= +.IF "$(APP7LINKRES)" != "" || "$(APP7RES)" != "" +APP7RESO=$(MISC)/$(APP7TARGET:b)_res.o +.ENDIF +.ENDIF + +.IF "$(GUI)" == "UNX" +APP7DEPN+:=$(APP7DEPNU) +USE_APP7DEF= +.ENDIF + +.IF "$(APP7TARGETN)"!="" + +.IF "$(APP7PRODUCTNAME)"!="" +APP7PRODUCTDEF+:=-DPRODUCT_NAME=\"$(APP7PRODUCTNAME)\" +.ENDIF # "$(APP7PRODUCTNAME)"!="" + +.IF "$(linkinc)"!="" +.IF "$(GUI)"=="WNT" +.IF "$(APP7LIBS)"!="" +$(MISC)/$(APP7TARGET)_linkinc.ls .PHONY: + @@-$(RM) $@ + sed -f $(SOLARENV)/bin/chrel.sed $(foreach,i,$(APP7LIBS) $(i:s/.lib/.lin/)) >> $@ +.ENDIF #"$(APP7LIBS)"!="" +.ENDIF + +LINKINCTARGETS+=$(MISC)/$(APP7TARGETN:b)_linkinc.ls +$(APP7TARGETN) : $(LINKINCTARGETS) +.ENDIF # "$(linkinc)"!="" + +# Allow for target specific LIBSALCPPRT override +APP7LIBSALCPPRT*=$(LIBSALCPPRT) + +$(APP7TARGETN): $(APP7OBJS) $(APP7LIBS) \ + $(APP7RES) \ + $(APP7ICON) $(APP7DEPN) $(USE_APP7DEF) + @echo "Making: " $(@:f) +.IF "$(GUI)"=="UNX" +.IF "$(OS)"=="MACOSX" + @-$(RM) $(MISC)/$(@:b).list + @-$(RM) $(MISC)/$(TARGET).$(@:b)_7.cmd + @-$(RM) $(MISC)/$(@:b).strip + @echo $(STDSLO) $(APP7OBJS:s/.obj/.o/) \ + `cat /dev/null $(APP7LIBS) | sed s\#$(ROUT)\#$(OUT)\#g` | tr -s " " "\n" > $(MISC)/$(@:b).list + @/bin/echo -n $(APP7LINKER) $(APP7LINKFLAGS) $(LINKFLAGSAPP) -L$(PRJ)/$(INPATH)/lib $(SOLARLIB) -o $@ \ + $(APP7LINKTYPEFLAG) $(APP7STDLIBS) $(APP7STDLIB) $(STDLIB7) -filelist $(MISC)/$(@:b).list > $(MISC)/$(TARGET).$(@:b)_7.cmd + @$(PERL) $(SOLARENV)/bin/macosx-dylib-link-list.pl \ + `cat $(MISC)/$(TARGET).$(@:b)_7.cmd` \ + >> $(MISC)/$(TARGET).$(@:b)_7.cmd + .IF "$(VERBOSE)" == "TRUE" + @cat $(MISC)/$(TARGET).$(@:b)_7.cmd + .ENDIF + @+source $(MISC)/$(TARGET).$(@:b)_7.cmd +# Need to strip __objcInit symbol to avoid duplicate symbols when loading +# libraries at runtime + @-nm $@ | grep -v ' U ' | $(AWK) '{ print $$NF }' | grep -F -x '__objcInit' > $(MISC)/$(@:b).strip + @strip -i -R $(MISC)/$(@:b).strip -X $@ + @$(PERL) $(SOLARENV)/bin/macosx-change-install-names.pl \ + app $(APP7RPATH) $@ +.IF "$(TARGETTYPE)"=="GUI" + @echo "Making: " $(@:f).app + @macosx-create-bundle $@ +.ENDIF # "$(TARGETTYPE)"=="GUI" +.ELSE # "$(OS)"=="MACOSX" + @-$(RM) $(MISC)/$(TARGET).$(@:b)_7.cmd + @echo $(APP7LINKER) $(APP7LINKFLAGS) $(LINKFLAGSAPP) -L$(PRJ)/$(INPATH)/lib $(SOLARLIB) $(STDSLO) \ + $(APP7OBJS:s/.obj/.o/) '\' > $(MISC)/$(TARGET).$(@:b)_7.cmd + @cat $(mktmp /dev/null $(APP7LIBS)) | xargs -n 1 cat | sed s\#$(ROUT)\#$(OUT)\#g | sed 's#$$# \\#' >> $(MISC)/$(TARGET).$(@:b)_7.cmd + @echo $(APP7LINKTYPEFLAG) $(APP7LIBSALCPPRT) $(APP7STDLIBS) $(APP7STDLIB) $(STDLIB7) -o $@ >> $(MISC)/$(TARGET).$(@:b)_7.cmd + .IF "$(VERBOSE)" == "TRUE" + @cat $(MISC)/$(TARGET).$(@:b)_7.cmd + .ENDIF + @+source $(MISC)/$(TARGET).$(@:b)_7.cmd + .IF "$(VERBOSE)" == "TRUE" + .ENDIF +.ENDIF # "$(OS)"=="MACOSX" +.ENDIF +.IF "$(GUI)" == "WNT" + @@-$(MKDIR) $(@:d:d) +.IF "$(APP7LINKRES)" != "" + @@-$(RM) $(MISC)/$(APP7LINKRES:b).rc +.IF "$(APP7ICON)" != "" + @-echo 1 ICON $(EMQ)"$(APP7ICON:s/\/\\/)$(EMQ)" >> $(MISC)/$(APP7LINKRES:b).rc +.ENDIF # "$(APP7ICON)" != "" +.IF "$(APP7VERINFO)" != "" + @-echo $(EMQ)#define VERVARIANT $(BUILD) >> $(MISC)/$(APP7LINKRES:b).rc + @-echo $(EMQ)#include $(EMQ)"$(APP7VERINFO)$(EMQ)" >> $(MISC)/$(APP7LINKRES:b).rc +.ENDIF # "$(APP7VERINFO)" != "" +.IF "$(COM)" == "GCC" + $(COMMAND_ECHO)$(RC) -DWIN32 $(APP7PRODUCTDEF) -I$(SOLARRESDIR) $(INCLUDE) $(RCLINKFLAGS) -o $(MISC)/$(APP7LINKRES:b).res $(MISC)/$(APP7LINKRES:b).rc +.ELSE + $(COMMAND_ECHO)$(RC) -DWIN32 $(APP7PRODUCTDEF) -I$(SOLARRESDIR) $(INCLUDE) $(RCLINKFLAGS) $(MISC)/$(APP7LINKRES:b).rc +.ENDIF +.ENDIF # "$(APP7LINKRES)" != "" +.IF "$(COM)" == "GCC" +.IF "$(APP7LINKRES)" != "" || "$(APP7RES)" != "" + @cat $(APP7LINKRES) $(subst,/res/,/res{$(subst,$(BIN), $(@:d))} $(APP7RES)) > $(MISC)/$(@:b)_all.res + $(WINDRES) $(MISC)/$(@:b)_all.res $(APP7RESO) +.ENDIF + @echo $(LINK) $(LINKFLAGS) $(LINKFLAGSAPP) $(MINGWSSTDOBJ) -L$(PRJ)/$(INPATH)/lib $(SOLARLIB) $(STDSLO) \ + $(APP7BASEX) $(APP7STACKN) -o $@ $(APP7OBJS) \ + -Wl,-Map,$(MISC)/$(@:b).map $(STDOBJ) $(APP7RESO) \ + `$(TYPE) /dev/null $(APP7LIBS) | sed s#$(ROUT)#$(OUT)#g` \ + $(APP_LINKTYPE) $(APP7LIBSALCPPRT) \ + -Wl,--start-group $(APP7STDLIBS) -Wl,--end-group $(APP7STDLIB) \ + $(STDLIB7) $(MINGWSSTDENDOBJ) > $(MISC)/$(TARGET).$(@:b)_7.cmd +# need this comment line, else dmake somehow gets confused by the .IFs and .ENDIFs + .IF "$(VERBOSE)" == "TRUE" + @$(TYPE) $(MISC)/$(TARGET).$(@:b)_7.cmd + .ENDIF + @+source $(MISC)/$(TARGET).$(@:b)_7.cmd +.ELSE # "$(COM)" == "GCC" +.IF "$(linkinc)" == "" + $(COMMAND_ECHO)$(APP7LINKER) @$(mktmp \ + $(APP7LINKFLAGS) \ + $(LINKFLAGSAPP) $(APP7BASEX) \ + $(APP7STACKN) \ + -out:$@ \ + -map:$(MISC)/{$(subst,/,_ $(APP7TARGET)).map} \ + $(STDOBJ) \ + $(APP7LINKRES) \ + $(APP7RES) \ + $(APP7OBJS) \ + $(APP7LIBS) \ + $(APP7STDLIBS) \ + $(APP7STDLIB) $(STDLIB7) \ + ) + @-echo linking $@.manifest ... +.IF "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);1 $(FI) +.ELSE + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);1 $(FI) +.ENDIF # "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI) +.ELSE + $(COMMAND_ECHO)-$(RM) $(MISC)\$(APP7TARGET).lnk + $(COMMAND_ECHO)-$(RM) $(MISC)\$(APP7TARGET).lst + $(COMMAND_ECHO)-$(RM) $(MISC)\linkobj.lst + for %_i in ($(MISC)\*.obj) do type %_i >> $(MISC)\linkobj.lst + type $(mktmp,$(MISC)\$(APP7TARGET).lst + $(APP7LINKFLAGS) \ + $(LINKFLAGSAPP) $(APP7BASEX) \ + $(APP7STACKN) \ + -out:$@ \ + $(STDOBJ) \ + $(APP7LINKRES) \ + $(APP7RES) \ + $(APP7OBJS) \ + $(APP7LIBS) \ + $(APP7STDLIBS) \ + $(APP7STDLIB) $(STDLIB7)) + $(COMMAND_ECHO)$(SED)$(SED) -e 's/\(\.\.\\\)\{2,4\}/..\\/g' $(MISC)\$(APP7TARGETN:b)_linkobj.lst >> $(MISC)\$(APP7TARGET).lst + $(COMMAND_ECHO)$(SED)$(IFEXIST) $(MISC)/$(APP7TARGET).lst $(THEN) type $(MISC)/$(APP7TARGET).lst >> $(MISC)/$(APP7TARGET).lnk $(FI) + $(COMMAND_ECHO)$(SED)$(APP7LINKER) @$(MISC)\$(APP7TARGET).lnk +.ENDIF # "$(linkinc)" == "" +.ENDIF # "$(COM)" == "GCC" +.IF "$(APP7TARGET)" == "loader" + $(COMMAND_ECHO)$(PERL) loader.pl $@ + $(COMMAND_ECHO)$(TYPE) $(@) $(@:d)unloader.exe > $(@:d)_new.exe + $(COMMAND_ECHO)$(RM) $@ + $(COMMAND_ECHO)$(RENAME) $(@:d)_new.exe $(@:d)loader.exe +.ENDIF # "$(TARGET)" == "setup" + +.ENDIF # "$(GUI)" == "WNT" + +.ENDIF # "$(APP7TARGETN)"!="" + + +# Instruction for linking +# unroll begin + +.IF "$(APP8LINKTYPE)" != "" +#must be either STATIC or SHARED +APP8LINKTYPEFLAG=$(APPLINK$(APP8LINKTYPE)) +.ENDIF + +# decide how to link +.IF "$(APP8CODETYPE)"=="C" +APP8LINKER=$(LINKC) +APP8STDLIB=$(subst,CPPRUNTIME, $(STDLIB)) +APP8LINKFLAGS+=$(LINKCFLAGS) +.ELSE # "$(APP8CODETYPE)"=="C" +APP8LINKER=$(LINK) +APP8STDLIB=$(subst,CPPRUNTIME,$(STDLIBCPP) $(STDLIB)) +APP8LINKFLAGS+=$(LINKFLAGS) +.ENDIF # "$(APP8CODETYPE)"=="C" + +APP8RPATH*=OOO +LINKFLAGSRUNPATH_$(APP8RPATH)*=/ERROR:/Bad_APP8RPATH_value +.IF "$(OS)" != "MACOSX" +APP8LINKFLAGS+=$(LINKFLAGSRUNPATH_$(APP8RPATH)) +.ENDIF + +.IF "$(APP8STACK)" != "" +.IF "$(LINKFLAGSTACK)" != "" +APP8STACKN=$(LINKFLAGSTACK)$(APP8STACK) +.ENDIF +.ELSE +APP8STACKN= +.ENDIF + +.IF "$(APP8NOSAL)"=="" +.IF "$(TARGETTYPE)" == "GUI" +APP8OBJS+= $(STDOBJVCL) +.ENDIF +.ENDIF + +.IF "$(GUI)$(COM)" == "WNTGCC" +APP8RESO= +.IF "$(APP8LINKRES)" != "" || "$(APP8RES)" != "" +APP8RESO=$(MISC)/$(APP8TARGET:b)_res.o +.ENDIF +.ENDIF + +.IF "$(GUI)" == "UNX" +APP8DEPN+:=$(APP8DEPNU) +USE_APP8DEF= +.ENDIF + +.IF "$(APP8TARGETN)"!="" + +.IF "$(APP8PRODUCTNAME)"!="" +APP8PRODUCTDEF+:=-DPRODUCT_NAME=\"$(APP8PRODUCTNAME)\" +.ENDIF # "$(APP8PRODUCTNAME)"!="" + +.IF "$(linkinc)"!="" +.IF "$(GUI)"=="WNT" +.IF "$(APP8LIBS)"!="" +$(MISC)/$(APP8TARGET)_linkinc.ls .PHONY: + @@-$(RM) $@ + sed -f $(SOLARENV)/bin/chrel.sed $(foreach,i,$(APP8LIBS) $(i:s/.lib/.lin/)) >> $@ +.ENDIF #"$(APP8LIBS)"!="" +.ENDIF + +LINKINCTARGETS+=$(MISC)/$(APP8TARGETN:b)_linkinc.ls +$(APP8TARGETN) : $(LINKINCTARGETS) +.ENDIF # "$(linkinc)"!="" + +# Allow for target specific LIBSALCPPRT override +APP8LIBSALCPPRT*=$(LIBSALCPPRT) + +$(APP8TARGETN): $(APP8OBJS) $(APP8LIBS) \ + $(APP8RES) \ + $(APP8ICON) $(APP8DEPN) $(USE_APP8DEF) + @echo "Making: " $(@:f) +.IF "$(GUI)"=="UNX" +.IF "$(OS)"=="MACOSX" + @-$(RM) $(MISC)/$(@:b).list + @-$(RM) $(MISC)/$(TARGET).$(@:b)_8.cmd + @-$(RM) $(MISC)/$(@:b).strip + @echo $(STDSLO) $(APP8OBJS:s/.obj/.o/) \ + `cat /dev/null $(APP8LIBS) | sed s\#$(ROUT)\#$(OUT)\#g` | tr -s " " "\n" > $(MISC)/$(@:b).list + @/bin/echo -n $(APP8LINKER) $(APP8LINKFLAGS) $(LINKFLAGSAPP) -L$(PRJ)/$(INPATH)/lib $(SOLARLIB) -o $@ \ + $(APP8LINKTYPEFLAG) $(APP8STDLIBS) $(APP8STDLIB) $(STDLIB8) -filelist $(MISC)/$(@:b).list > $(MISC)/$(TARGET).$(@:b)_8.cmd + @$(PERL) $(SOLARENV)/bin/macosx-dylib-link-list.pl \ + `cat $(MISC)/$(TARGET).$(@:b)_8.cmd` \ + >> $(MISC)/$(TARGET).$(@:b)_8.cmd + .IF "$(VERBOSE)" == "TRUE" + @cat $(MISC)/$(TARGET).$(@:b)_8.cmd + .ENDIF + @+source $(MISC)/$(TARGET).$(@:b)_8.cmd +# Need to strip __objcInit symbol to avoid duplicate symbols when loading +# libraries at runtime + @-nm $@ | grep -v ' U ' | $(AWK) '{ print $$NF }' | grep -F -x '__objcInit' > $(MISC)/$(@:b).strip + @strip -i -R $(MISC)/$(@:b).strip -X $@ + @$(PERL) $(SOLARENV)/bin/macosx-change-install-names.pl \ + app $(APP8RPATH) $@ +.IF "$(TARGETTYPE)"=="GUI" + @echo "Making: " $(@:f).app + @macosx-create-bundle $@ +.ENDIF # "$(TARGETTYPE)"=="GUI" +.ELSE # "$(OS)"=="MACOSX" + @-$(RM) $(MISC)/$(TARGET).$(@:b)_8.cmd + @echo $(APP8LINKER) $(APP8LINKFLAGS) $(LINKFLAGSAPP) -L$(PRJ)/$(INPATH)/lib $(SOLARLIB) $(STDSLO) \ + $(APP8OBJS:s/.obj/.o/) '\' > $(MISC)/$(TARGET).$(@:b)_8.cmd + @cat $(mktmp /dev/null $(APP8LIBS)) | xargs -n 1 cat | sed s\#$(ROUT)\#$(OUT)\#g | sed 's#$$# \\#' >> $(MISC)/$(TARGET).$(@:b)_8.cmd + @echo $(APP8LINKTYPEFLAG) $(APP8LIBSALCPPRT) $(APP8STDLIBS) $(APP8STDLIB) $(STDLIB8) -o $@ >> $(MISC)/$(TARGET).$(@:b)_8.cmd + .IF "$(VERBOSE)" == "TRUE" + @cat $(MISC)/$(TARGET).$(@:b)_8.cmd + .ENDIF + @+source $(MISC)/$(TARGET).$(@:b)_8.cmd + .IF "$(VERBOSE)" == "TRUE" + .ENDIF +.ENDIF # "$(OS)"=="MACOSX" +.ENDIF +.IF "$(GUI)" == "WNT" + @@-$(MKDIR) $(@:d:d) +.IF "$(APP8LINKRES)" != "" + @@-$(RM) $(MISC)/$(APP8LINKRES:b).rc +.IF "$(APP8ICON)" != "" + @-echo 1 ICON $(EMQ)"$(APP8ICON:s/\/\\/)$(EMQ)" >> $(MISC)/$(APP8LINKRES:b).rc +.ENDIF # "$(APP8ICON)" != "" +.IF "$(APP8VERINFO)" != "" + @-echo $(EMQ)#define VERVARIANT $(BUILD) >> $(MISC)/$(APP8LINKRES:b).rc + @-echo $(EMQ)#include $(EMQ)"$(APP8VERINFO)$(EMQ)" >> $(MISC)/$(APP8LINKRES:b).rc +.ENDIF # "$(APP8VERINFO)" != "" +.IF "$(COM)" == "GCC" + $(COMMAND_ECHO)$(RC) -DWIN32 $(APP8PRODUCTDEF) -I$(SOLARRESDIR) $(INCLUDE) $(RCLINKFLAGS) -o $(MISC)/$(APP8LINKRES:b).res $(MISC)/$(APP8LINKRES:b).rc +.ELSE + $(COMMAND_ECHO)$(RC) -DWIN32 $(APP8PRODUCTDEF) -I$(SOLARRESDIR) $(INCLUDE) $(RCLINKFLAGS) $(MISC)/$(APP8LINKRES:b).rc +.ENDIF +.ENDIF # "$(APP8LINKRES)" != "" +.IF "$(COM)" == "GCC" +.IF "$(APP8LINKRES)" != "" || "$(APP8RES)" != "" + @cat $(APP8LINKRES) $(subst,/res/,/res{$(subst,$(BIN), $(@:d))} $(APP8RES)) > $(MISC)/$(@:b)_all.res + $(WINDRES) $(MISC)/$(@:b)_all.res $(APP8RESO) +.ENDIF + @echo $(LINK) $(LINKFLAGS) $(LINKFLAGSAPP) $(MINGWSSTDOBJ) -L$(PRJ)/$(INPATH)/lib $(SOLARLIB) $(STDSLO) \ + $(APP8BASEX) $(APP8STACKN) -o $@ $(APP8OBJS) \ + -Wl,-Map,$(MISC)/$(@:b).map $(STDOBJ) $(APP8RESO) \ + `$(TYPE) /dev/null $(APP8LIBS) | sed s#$(ROUT)#$(OUT)#g` \ + $(APP_LINKTYPE) $(APP8LIBSALCPPRT) \ + -Wl,--start-group $(APP8STDLIBS) -Wl,--end-group $(APP8STDLIB) \ + $(STDLIB8) $(MINGWSSTDENDOBJ) > $(MISC)/$(TARGET).$(@:b)_8.cmd +# need this comment line, else dmake somehow gets confused by the .IFs and .ENDIFs + .IF "$(VERBOSE)" == "TRUE" + @$(TYPE) $(MISC)/$(TARGET).$(@:b)_8.cmd + .ENDIF + @+source $(MISC)/$(TARGET).$(@:b)_8.cmd +.ELSE # "$(COM)" == "GCC" +.IF "$(linkinc)" == "" + $(COMMAND_ECHO)$(APP8LINKER) @$(mktmp \ + $(APP8LINKFLAGS) \ + $(LINKFLAGSAPP) $(APP8BASEX) \ + $(APP8STACKN) \ + -out:$@ \ + -map:$(MISC)/{$(subst,/,_ $(APP8TARGET)).map} \ + $(STDOBJ) \ + $(APP8LINKRES) \ + $(APP8RES) \ + $(APP8OBJS) \ + $(APP8LIBS) \ + $(APP8STDLIBS) \ + $(APP8STDLIB) $(STDLIB8) \ + ) + @-echo linking $@.manifest ... +.IF "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);1 $(FI) +.ELSE + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);1 $(FI) +.ENDIF # "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI) +.ELSE + $(COMMAND_ECHO)-$(RM) $(MISC)\$(APP8TARGET).lnk + $(COMMAND_ECHO)-$(RM) $(MISC)\$(APP8TARGET).lst + $(COMMAND_ECHO)-$(RM) $(MISC)\linkobj.lst + for %_i in ($(MISC)\*.obj) do type %_i >> $(MISC)\linkobj.lst + type $(mktmp,$(MISC)\$(APP8TARGET).lst + $(APP8LINKFLAGS) \ + $(LINKFLAGSAPP) $(APP8BASEX) \ + $(APP8STACKN) \ + -out:$@ \ + $(STDOBJ) \ + $(APP8LINKRES) \ + $(APP8RES) \ + $(APP8OBJS) \ + $(APP8LIBS) \ + $(APP8STDLIBS) \ + $(APP8STDLIB) $(STDLIB8)) + $(COMMAND_ECHO)$(SED)$(SED) -e 's/\(\.\.\\\)\{2,4\}/..\\/g' $(MISC)\$(APP8TARGETN:b)_linkobj.lst >> $(MISC)\$(APP8TARGET).lst + $(COMMAND_ECHO)$(SED)$(IFEXIST) $(MISC)/$(APP8TARGET).lst $(THEN) type $(MISC)/$(APP8TARGET).lst >> $(MISC)/$(APP8TARGET).lnk $(FI) + $(COMMAND_ECHO)$(SED)$(APP8LINKER) @$(MISC)\$(APP8TARGET).lnk +.ENDIF # "$(linkinc)" == "" +.ENDIF # "$(COM)" == "GCC" +.IF "$(APP8TARGET)" == "loader" + $(COMMAND_ECHO)$(PERL) loader.pl $@ + $(COMMAND_ECHO)$(TYPE) $(@) $(@:d)unloader.exe > $(@:d)_new.exe + $(COMMAND_ECHO)$(RM) $@ + $(COMMAND_ECHO)$(RENAME) $(@:d)_new.exe $(@:d)loader.exe +.ENDIF # "$(TARGET)" == "setup" + +.ENDIF # "$(GUI)" == "WNT" + +.ENDIF # "$(APP8TARGETN)"!="" + + +# Instruction for linking +# unroll begin + +.IF "$(APP9LINKTYPE)" != "" +#must be either STATIC or SHARED +APP9LINKTYPEFLAG=$(APPLINK$(APP9LINKTYPE)) +.ENDIF + +# decide how to link +.IF "$(APP9CODETYPE)"=="C" +APP9LINKER=$(LINKC) +APP9STDLIB=$(subst,CPPRUNTIME, $(STDLIB)) +APP9LINKFLAGS+=$(LINKCFLAGS) +.ELSE # "$(APP9CODETYPE)"=="C" +APP9LINKER=$(LINK) +APP9STDLIB=$(subst,CPPRUNTIME,$(STDLIBCPP) $(STDLIB)) +APP9LINKFLAGS+=$(LINKFLAGS) +.ENDIF # "$(APP9CODETYPE)"=="C" + +APP9RPATH*=OOO +LINKFLAGSRUNPATH_$(APP9RPATH)*=/ERROR:/Bad_APP9RPATH_value +.IF "$(OS)" != "MACOSX" +APP9LINKFLAGS+=$(LINKFLAGSRUNPATH_$(APP9RPATH)) +.ENDIF + +.IF "$(APP9STACK)" != "" +.IF "$(LINKFLAGSTACK)" != "" +APP9STACKN=$(LINKFLAGSTACK)$(APP9STACK) +.ENDIF +.ELSE +APP9STACKN= +.ENDIF + +.IF "$(APP9NOSAL)"=="" +.IF "$(TARGETTYPE)" == "GUI" +APP9OBJS+= $(STDOBJVCL) +.ENDIF +.ENDIF + +.IF "$(GUI)$(COM)" == "WNTGCC" +APP9RESO= +.IF "$(APP9LINKRES)" != "" || "$(APP9RES)" != "" +APP9RESO=$(MISC)/$(APP9TARGET:b)_res.o +.ENDIF +.ENDIF + +.IF "$(GUI)" == "UNX" +APP9DEPN+:=$(APP9DEPNU) +USE_APP9DEF= +.ENDIF + +.IF "$(APP9TARGETN)"!="" + +.IF "$(APP9PRODUCTNAME)"!="" +APP9PRODUCTDEF+:=-DPRODUCT_NAME=\"$(APP9PRODUCTNAME)\" +.ENDIF # "$(APP9PRODUCTNAME)"!="" + +.IF "$(linkinc)"!="" +.IF "$(GUI)"=="WNT" +.IF "$(APP9LIBS)"!="" +$(MISC)/$(APP9TARGET)_linkinc.ls .PHONY: + @@-$(RM) $@ + sed -f $(SOLARENV)/bin/chrel.sed $(foreach,i,$(APP9LIBS) $(i:s/.lib/.lin/)) >> $@ +.ENDIF #"$(APP9LIBS)"!="" +.ENDIF + +LINKINCTARGETS+=$(MISC)/$(APP9TARGETN:b)_linkinc.ls +$(APP9TARGETN) : $(LINKINCTARGETS) +.ENDIF # "$(linkinc)"!="" + +# Allow for target specific LIBSALCPPRT override +APP9LIBSALCPPRT*=$(LIBSALCPPRT) + +$(APP9TARGETN): $(APP9OBJS) $(APP9LIBS) \ + $(APP9RES) \ + $(APP9ICON) $(APP9DEPN) $(USE_APP9DEF) + @echo "Making: " $(@:f) +.IF "$(GUI)"=="UNX" +.IF "$(OS)"=="MACOSX" + @-$(RM) $(MISC)/$(@:b).list + @-$(RM) $(MISC)/$(TARGET).$(@:b)_9.cmd + @-$(RM) $(MISC)/$(@:b).strip + @echo $(STDSLO) $(APP9OBJS:s/.obj/.o/) \ + `cat /dev/null $(APP9LIBS) | sed s\#$(ROUT)\#$(OUT)\#g` | tr -s " " "\n" > $(MISC)/$(@:b).list + @/bin/echo -n $(APP9LINKER) $(APP9LINKFLAGS) $(LINKFLAGSAPP) -L$(PRJ)/$(INPATH)/lib $(SOLARLIB) -o $@ \ + $(APP9LINKTYPEFLAG) $(APP9STDLIBS) $(APP9STDLIB) $(STDLIB9) -filelist $(MISC)/$(@:b).list > $(MISC)/$(TARGET).$(@:b)_9.cmd + @$(PERL) $(SOLARENV)/bin/macosx-dylib-link-list.pl \ + `cat $(MISC)/$(TARGET).$(@:b)_9.cmd` \ + >> $(MISC)/$(TARGET).$(@:b)_9.cmd + .IF "$(VERBOSE)" == "TRUE" + @cat $(MISC)/$(TARGET).$(@:b)_9.cmd + .ENDIF + @+source $(MISC)/$(TARGET).$(@:b)_9.cmd +# Need to strip __objcInit symbol to avoid duplicate symbols when loading +# libraries at runtime + @-nm $@ | grep -v ' U ' | $(AWK) '{ print $$NF }' | grep -F -x '__objcInit' > $(MISC)/$(@:b).strip + @strip -i -R $(MISC)/$(@:b).strip -X $@ + @$(PERL) $(SOLARENV)/bin/macosx-change-install-names.pl \ + app $(APP9RPATH) $@ +.IF "$(TARGETTYPE)"=="GUI" + @echo "Making: " $(@:f).app + @macosx-create-bundle $@ +.ENDIF # "$(TARGETTYPE)"=="GUI" +.ELSE # "$(OS)"=="MACOSX" + @-$(RM) $(MISC)/$(TARGET).$(@:b)_9.cmd + @echo $(APP9LINKER) $(APP9LINKFLAGS) $(LINKFLAGSAPP) -L$(PRJ)/$(INPATH)/lib $(SOLARLIB) $(STDSLO) \ + $(APP9OBJS:s/.obj/.o/) '\' > $(MISC)/$(TARGET).$(@:b)_9.cmd + @cat $(mktmp /dev/null $(APP9LIBS)) | xargs -n 1 cat | sed s\#$(ROUT)\#$(OUT)\#g | sed 's#$$# \\#' >> $(MISC)/$(TARGET).$(@:b)_9.cmd + @echo $(APP9LINKTYPEFLAG) $(APP9LIBSALCPPRT) $(APP9STDLIBS) $(APP9STDLIB) $(STDLIB9) -o $@ >> $(MISC)/$(TARGET).$(@:b)_9.cmd + .IF "$(VERBOSE)" == "TRUE" + @cat $(MISC)/$(TARGET).$(@:b)_9.cmd + .ENDIF + @+source $(MISC)/$(TARGET).$(@:b)_9.cmd + .IF "$(VERBOSE)" == "TRUE" + .ENDIF +.ENDIF # "$(OS)"=="MACOSX" +.ENDIF +.IF "$(GUI)" == "WNT" + @@-$(MKDIR) $(@:d:d) +.IF "$(APP9LINKRES)" != "" + @@-$(RM) $(MISC)/$(APP9LINKRES:b).rc +.IF "$(APP9ICON)" != "" + @-echo 1 ICON $(EMQ)"$(APP9ICON:s/\/\\/)$(EMQ)" >> $(MISC)/$(APP9LINKRES:b).rc +.ENDIF # "$(APP9ICON)" != "" +.IF "$(APP9VERINFO)" != "" + @-echo $(EMQ)#define VERVARIANT $(BUILD) >> $(MISC)/$(APP9LINKRES:b).rc + @-echo $(EMQ)#include $(EMQ)"$(APP9VERINFO)$(EMQ)" >> $(MISC)/$(APP9LINKRES:b).rc +.ENDIF # "$(APP9VERINFO)" != "" +.IF "$(COM)" == "GCC" + $(COMMAND_ECHO)$(RC) -DWIN32 $(APP9PRODUCTDEF) -I$(SOLARRESDIR) $(INCLUDE) $(RCLINKFLAGS) -o $(MISC)/$(APP9LINKRES:b).res $(MISC)/$(APP9LINKRES:b).rc +.ELSE + $(COMMAND_ECHO)$(RC) -DWIN32 $(APP9PRODUCTDEF) -I$(SOLARRESDIR) $(INCLUDE) $(RCLINKFLAGS) $(MISC)/$(APP9LINKRES:b).rc +.ENDIF +.ENDIF # "$(APP9LINKRES)" != "" +.IF "$(COM)" == "GCC" +.IF "$(APP9LINKRES)" != "" || "$(APP9RES)" != "" + @cat $(APP9LINKRES) $(subst,/res/,/res{$(subst,$(BIN), $(@:d))} $(APP9RES)) > $(MISC)/$(@:b)_all.res + $(WINDRES) $(MISC)/$(@:b)_all.res $(APP9RESO) +.ENDIF + @echo $(LINK) $(LINKFLAGS) $(LINKFLAGSAPP) $(MINGWSSTDOBJ) -L$(PRJ)/$(INPATH)/lib $(SOLARLIB) $(STDSLO) \ + $(APP9BASEX) $(APP9STACKN) -o $@ $(APP9OBJS) \ + -Wl,-Map,$(MISC)/$(@:b).map $(STDOBJ) $(APP9RESO) \ + `$(TYPE) /dev/null $(APP9LIBS) | sed s#$(ROUT)#$(OUT)#g` \ + $(APP_LINKTYPE) $(APP9LIBSALCPPRT) \ + -Wl,--start-group $(APP9STDLIBS) -Wl,--end-group $(APP9STDLIB) \ + $(STDLIB9) $(MINGWSSTDENDOBJ) > $(MISC)/$(TARGET).$(@:b)_9.cmd +# need this comment line, else dmake somehow gets confused by the .IFs and .ENDIFs + .IF "$(VERBOSE)" == "TRUE" + @$(TYPE) $(MISC)/$(TARGET).$(@:b)_9.cmd + .ENDIF + @+source $(MISC)/$(TARGET).$(@:b)_9.cmd +.ELSE # "$(COM)" == "GCC" +.IF "$(linkinc)" == "" + $(COMMAND_ECHO)$(APP9LINKER) @$(mktmp \ + $(APP9LINKFLAGS) \ + $(LINKFLAGSAPP) $(APP9BASEX) \ + $(APP9STACKN) \ + -out:$@ \ + -map:$(MISC)/{$(subst,/,_ $(APP9TARGET)).map} \ + $(STDOBJ) \ + $(APP9LINKRES) \ + $(APP9RES) \ + $(APP9OBJS) \ + $(APP9LIBS) \ + $(APP9STDLIBS) \ + $(APP9STDLIB) $(STDLIB9) \ + ) + @-echo linking $@.manifest ... +.IF "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);1 $(FI) +.ELSE + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);1 $(FI) +.ENDIF # "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI) +.ELSE + $(COMMAND_ECHO)-$(RM) $(MISC)\$(APP9TARGET).lnk + $(COMMAND_ECHO)-$(RM) $(MISC)\$(APP9TARGET).lst + $(COMMAND_ECHO)-$(RM) $(MISC)\linkobj.lst + for %_i in ($(MISC)\*.obj) do type %_i >> $(MISC)\linkobj.lst + type $(mktmp,$(MISC)\$(APP9TARGET).lst + $(APP9LINKFLAGS) \ + $(LINKFLAGSAPP) $(APP9BASEX) \ + $(APP9STACKN) \ + -out:$@ \ + $(STDOBJ) \ + $(APP9LINKRES) \ + $(APP9RES) \ + $(APP9OBJS) \ + $(APP9LIBS) \ + $(APP9STDLIBS) \ + $(APP9STDLIB) $(STDLIB9)) + $(COMMAND_ECHO)$(SED)$(SED) -e 's/\(\.\.\\\)\{2,4\}/..\\/g' $(MISC)\$(APP9TARGETN:b)_linkobj.lst >> $(MISC)\$(APP9TARGET).lst + $(COMMAND_ECHO)$(SED)$(IFEXIST) $(MISC)/$(APP9TARGET).lst $(THEN) type $(MISC)/$(APP9TARGET).lst >> $(MISC)/$(APP9TARGET).lnk $(FI) + $(COMMAND_ECHO)$(SED)$(APP9LINKER) @$(MISC)\$(APP9TARGET).lnk +.ENDIF # "$(linkinc)" == "" +.ENDIF # "$(COM)" == "GCC" +.IF "$(APP9TARGET)" == "loader" + $(COMMAND_ECHO)$(PERL) loader.pl $@ + $(COMMAND_ECHO)$(TYPE) $(@) $(@:d)unloader.exe > $(@:d)_new.exe + $(COMMAND_ECHO)$(RM) $@ + $(COMMAND_ECHO)$(RENAME) $(@:d)_new.exe $(@:d)loader.exe +.ENDIF # "$(TARGET)" == "setup" + +.ENDIF # "$(GUI)" == "WNT" + +.ENDIF # "$(APP9TARGETN)"!="" + + +# Instruction for linking +# unroll begin + +.IF "$(APP10LINKTYPE)" != "" +#must be either STATIC or SHARED +APP10LINKTYPEFLAG=$(APPLINK$(APP10LINKTYPE)) +.ENDIF + +# decide how to link +.IF "$(APP10CODETYPE)"=="C" +APP10LINKER=$(LINKC) +APP10STDLIB=$(subst,CPPRUNTIME, $(STDLIB)) +APP10LINKFLAGS+=$(LINKCFLAGS) +.ELSE # "$(APP10CODETYPE)"=="C" +APP10LINKER=$(LINK) +APP10STDLIB=$(subst,CPPRUNTIME,$(STDLIBCPP) $(STDLIB)) +APP10LINKFLAGS+=$(LINKFLAGS) +.ENDIF # "$(APP10CODETYPE)"=="C" + +APP10RPATH*=OOO +LINKFLAGSRUNPATH_$(APP10RPATH)*=/ERROR:/Bad_APP10RPATH_value +.IF "$(OS)" != "MACOSX" +APP10LINKFLAGS+=$(LINKFLAGSRUNPATH_$(APP10RPATH)) +.ENDIF + +.IF "$(APP10STACK)" != "" +.IF "$(LINKFLAGSTACK)" != "" +APP10STACKN=$(LINKFLAGSTACK)$(APP10STACK) +.ENDIF +.ELSE +APP10STACKN= +.ENDIF + +.IF "$(APP10NOSAL)"=="" +.IF "$(TARGETTYPE)" == "GUI" +APP10OBJS+= $(STDOBJVCL) +.ENDIF +.ENDIF + +.IF "$(GUI)$(COM)" == "WNTGCC" +APP10RESO= +.IF "$(APP10LINKRES)" != "" || "$(APP10RES)" != "" +APP10RESO=$(MISC)/$(APP10TARGET:b)_res.o +.ENDIF +.ENDIF + +.IF "$(GUI)" == "UNX" +APP10DEPN+:=$(APP10DEPNU) +USE_APP10DEF= +.ENDIF + +.IF "$(APP10TARGETN)"!="" + +.IF "$(APP10PRODUCTNAME)"!="" +APP10PRODUCTDEF+:=-DPRODUCT_NAME=\"$(APP10PRODUCTNAME)\" +.ENDIF # "$(APP10PRODUCTNAME)"!="" + +.IF "$(linkinc)"!="" +.IF "$(GUI)"=="WNT" +.IF "$(APP10LIBS)"!="" +$(MISC)/$(APP10TARGET)_linkinc.ls .PHONY: + @@-$(RM) $@ + sed -f $(SOLARENV)/bin/chrel.sed $(foreach,i,$(APP10LIBS) $(i:s/.lib/.lin/)) >> $@ +.ENDIF #"$(APP10LIBS)"!="" +.ENDIF + +LINKINCTARGETS+=$(MISC)/$(APP10TARGETN:b)_linkinc.ls +$(APP10TARGETN) : $(LINKINCTARGETS) +.ENDIF # "$(linkinc)"!="" + +# Allow for target specific LIBSALCPPRT override +APP10LIBSALCPPRT*=$(LIBSALCPPRT) + +$(APP10TARGETN): $(APP10OBJS) $(APP10LIBS) \ + $(APP10RES) \ + $(APP10ICON) $(APP10DEPN) $(USE_APP10DEF) + @echo "Making: " $(@:f) +.IF "$(GUI)"=="UNX" +.IF "$(OS)"=="MACOSX" + @-$(RM) $(MISC)/$(@:b).list + @-$(RM) $(MISC)/$(TARGET).$(@:b)_10.cmd + @-$(RM) $(MISC)/$(@:b).strip + @echo $(STDSLO) $(APP10OBJS:s/.obj/.o/) \ + `cat /dev/null $(APP10LIBS) | sed s\#$(ROUT)\#$(OUT)\#g` | tr -s " " "\n" > $(MISC)/$(@:b).list + @/bin/echo -n $(APP10LINKER) $(APP10LINKFLAGS) $(LINKFLAGSAPP) -L$(PRJ)/$(INPATH)/lib $(SOLARLIB) -o $@ \ + $(APP10LINKTYPEFLAG) $(APP10STDLIBS) $(APP10STDLIB) $(STDLIB10) -filelist $(MISC)/$(@:b).list > $(MISC)/$(TARGET).$(@:b)_10.cmd + @$(PERL) $(SOLARENV)/bin/macosx-dylib-link-list.pl \ + `cat $(MISC)/$(TARGET).$(@:b)_10.cmd` \ + >> $(MISC)/$(TARGET).$(@:b)_10.cmd + .IF "$(VERBOSE)" == "TRUE" + @cat $(MISC)/$(TARGET).$(@:b)_10.cmd + .ENDIF + @+source $(MISC)/$(TARGET).$(@:b)_10.cmd +# Need to strip __objcInit symbol to avoid duplicate symbols when loading +# libraries at runtime + @-nm $@ | grep -v ' U ' | $(AWK) '{ print $$NF }' | grep -F -x '__objcInit' > $(MISC)/$(@:b).strip + @strip -i -R $(MISC)/$(@:b).strip -X $@ + @$(PERL) $(SOLARENV)/bin/macosx-change-install-names.pl \ + app $(APP10RPATH) $@ +.IF "$(TARGETTYPE)"=="GUI" + @echo "Making: " $(@:f).app + @macosx-create-bundle $@ +.ENDIF # "$(TARGETTYPE)"=="GUI" +.ELSE # "$(OS)"=="MACOSX" + @-$(RM) $(MISC)/$(TARGET).$(@:b)_10.cmd + @echo $(APP10LINKER) $(APP10LINKFLAGS) $(LINKFLAGSAPP) -L$(PRJ)/$(INPATH)/lib $(SOLARLIB) $(STDSLO) \ + $(APP10OBJS:s/.obj/.o/) '\' > $(MISC)/$(TARGET).$(@:b)_10.cmd + @cat $(mktmp /dev/null $(APP10LIBS)) | xargs -n 1 cat | sed s\#$(ROUT)\#$(OUT)\#g | sed 's#$$# \\#' >> $(MISC)/$(TARGET).$(@:b)_10.cmd + @echo $(APP10LINKTYPEFLAG) $(APP10LIBSALCPPRT) $(APP10STDLIBS) $(APP10STDLIB) $(STDLIB10) -o $@ >> $(MISC)/$(TARGET).$(@:b)_10.cmd + .IF "$(VERBOSE)" == "TRUE" + @cat $(MISC)/$(TARGET).$(@:b)_10.cmd + .ENDIF + @+source $(MISC)/$(TARGET).$(@:b)_10.cmd + .IF "$(VERBOSE)" == "TRUE" + .ENDIF +.ENDIF # "$(OS)"=="MACOSX" +.ENDIF +.IF "$(GUI)" == "WNT" + @@-$(MKDIR) $(@:d:d) +.IF "$(APP10LINKRES)" != "" + @@-$(RM) $(MISC)/$(APP10LINKRES:b).rc +.IF "$(APP10ICON)" != "" + @-echo 1 ICON $(EMQ)"$(APP10ICON:s/\/\\/)$(EMQ)" >> $(MISC)/$(APP10LINKRES:b).rc +.ENDIF # "$(APP10ICON)" != "" +.IF "$(APP10VERINFO)" != "" + @-echo $(EMQ)#define VERVARIANT $(BUILD) >> $(MISC)/$(APP10LINKRES:b).rc + @-echo $(EMQ)#include $(EMQ)"$(APP10VERINFO)$(EMQ)" >> $(MISC)/$(APP10LINKRES:b).rc +.ENDIF # "$(APP10VERINFO)" != "" +.IF "$(COM)" == "GCC" + $(COMMAND_ECHO)$(RC) -DWIN32 $(APP10PRODUCTDEF) -I$(SOLARRESDIR) $(INCLUDE) $(RCLINKFLAGS) -o $(MISC)/$(APP10LINKRES:b).res $(MISC)/$(APP10LINKRES:b).rc +.ELSE + $(COMMAND_ECHO)$(RC) -DWIN32 $(APP10PRODUCTDEF) -I$(SOLARRESDIR) $(INCLUDE) $(RCLINKFLAGS) $(MISC)/$(APP10LINKRES:b).rc +.ENDIF +.ENDIF # "$(APP10LINKRES)" != "" +.IF "$(COM)" == "GCC" +.IF "$(APP10LINKRES)" != "" || "$(APP10RES)" != "" + @cat $(APP10LINKRES) $(subst,/res/,/res{$(subst,$(BIN), $(@:d))} $(APP10RES)) > $(MISC)/$(@:b)_all.res + $(WINDRES) $(MISC)/$(@:b)_all.res $(APP10RESO) +.ENDIF + @echo $(LINK) $(LINKFLAGS) $(LINKFLAGSAPP) $(MINGWSSTDOBJ) -L$(PRJ)/$(INPATH)/lib $(SOLARLIB) $(STDSLO) \ + $(APP10BASEX) $(APP10STACKN) -o $@ $(APP10OBJS) \ + -Wl,-Map,$(MISC)/$(@:b).map $(STDOBJ) $(APP10RESO) \ + `$(TYPE) /dev/null $(APP10LIBS) | sed s#$(ROUT)#$(OUT)#g` \ + $(APP_LINKTYPE) $(APP10LIBSALCPPRT) \ + -Wl,--start-group $(APP10STDLIBS) -Wl,--end-group $(APP10STDLIB) \ + $(STDLIB10) $(MINGWSSTDENDOBJ) > $(MISC)/$(TARGET).$(@:b)_10.cmd +# need this comment line, else dmake somehow gets confused by the .IFs and .ENDIFs + .IF "$(VERBOSE)" == "TRUE" + @$(TYPE) $(MISC)/$(TARGET).$(@:b)_10.cmd + .ENDIF + @+source $(MISC)/$(TARGET).$(@:b)_10.cmd +.ELSE # "$(COM)" == "GCC" +.IF "$(linkinc)" == "" + $(COMMAND_ECHO)$(APP10LINKER) @$(mktmp \ + $(APP10LINKFLAGS) \ + $(LINKFLAGSAPP) $(APP10BASEX) \ + $(APP10STACKN) \ + -out:$@ \ + -map:$(MISC)/{$(subst,/,_ $(APP10TARGET)).map} \ + $(STDOBJ) \ + $(APP10LINKRES) \ + $(APP10RES) \ + $(APP10OBJS) \ + $(APP10LIBS) \ + $(APP10STDLIBS) \ + $(APP10STDLIB) $(STDLIB10) \ + ) + @-echo linking $@.manifest ... +.IF "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);1 $(FI) +.ELSE + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);1 $(FI) +.ENDIF # "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI) +.ELSE + $(COMMAND_ECHO)-$(RM) $(MISC)\$(APP10TARGET).lnk + $(COMMAND_ECHO)-$(RM) $(MISC)\$(APP10TARGET).lst + $(COMMAND_ECHO)-$(RM) $(MISC)\linkobj.lst + for %_i in ($(MISC)\*.obj) do type %_i >> $(MISC)\linkobj.lst + type $(mktmp,$(MISC)\$(APP10TARGET).lst + $(APP10LINKFLAGS) \ + $(LINKFLAGSAPP) $(APP10BASEX) \ + $(APP10STACKN) \ + -out:$@ \ + $(STDOBJ) \ + $(APP10LINKRES) \ + $(APP10RES) \ + $(APP10OBJS) \ + $(APP10LIBS) \ + $(APP10STDLIBS) \ + $(APP10STDLIB) $(STDLIB10)) + $(COMMAND_ECHO)$(SED)$(SED) -e 's/\(\.\.\\\)\{2,4\}/..\\/g' $(MISC)\$(APP10TARGETN:b)_linkobj.lst >> $(MISC)\$(APP10TARGET).lst + $(COMMAND_ECHO)$(SED)$(IFEXIST) $(MISC)/$(APP10TARGET).lst $(THEN) type $(MISC)/$(APP10TARGET).lst >> $(MISC)/$(APP10TARGET).lnk $(FI) + $(COMMAND_ECHO)$(SED)$(APP10LINKER) @$(MISC)\$(APP10TARGET).lnk +.ENDIF # "$(linkinc)" == "" +.ENDIF # "$(COM)" == "GCC" +.IF "$(APP10TARGET)" == "loader" + $(COMMAND_ECHO)$(PERL) loader.pl $@ + $(COMMAND_ECHO)$(TYPE) $(@) $(@:d)unloader.exe > $(@:d)_new.exe + $(COMMAND_ECHO)$(RM) $@ + $(COMMAND_ECHO)$(RENAME) $(@:d)_new.exe $(@:d)loader.exe +.ENDIF # "$(TARGET)" == "setup" + +.ENDIF # "$(GUI)" == "WNT" + +.ENDIF # "$(APP10TARGETN)"!="" + + +# Instruction for linking diff --git a/solenv/inc/_tg_def.mk b/solenv/inc/_tg_def.mk new file mode 100644 index 000000000000..b0b35d8d5c99 --- /dev/null +++ b/solenv/inc/_tg_def.mk @@ -0,0 +1,1690 @@ +# unroll begin + +.IF "$(DEF1TARGETN)"!="" + +#to make intuitiv naming work +.IF "$(DEF1LIBNAME)"!="" +DEFLIB1NAME*=$(DEF1LIBNAME) +.ENDIF # "$(DEF1LIBNAME)"!="" + +.IF "$(DEFLIB1NAME)"!="" +DEF1DEPN+=$(foreach,i,$(DEFLIB1NAME) $(SLB)/$(i).lib) +.ENDIF + +.IF "$(SHL1VERSIONMAP)"!="" +.IF "$(DEF1EXPORTFILE)"=="" +.IF "$(GUI)"=="WNT" +DEF1EXPORTFILE=$(MISC)/$(SHL1VERSIONMAP:b)_$(SHL1TARGET).dxp +.IF "$(COM)"=="GCC" +$(DEF1EXPORTFILE) : $(SHL1OBJS) $(SHL1LIBS) +.ENDIF # .IF "$(COM)"=="GCC" + +$(DEF1EXPORTFILE) : $(SHL1VERSIONMAP) + $(COMMAND_ECHO)$(TYPE) $< | $(AWK) -f $(SOLARENV)/bin/getcsym.awk > $@ +.IF "$(COM)"=="GCC" + $(COMMAND_ECHO)-$(GREP) -v "\*\|?" $@ | $(SED) -e 's@#.*@@' > $@.exported-symbols + $(COMMAND_ECHO)-$(GREP) "\*\|?" $@ > $@.symbols-regexp +# Shared libraries will be build out of the *.obj files specified in SHL?OBJS and SHL?LIBS +# Extract RTTI symbols from all the objects that will be used to build a shared library + $(COMMAND_ECHO)$(NM) -gP $(SHL1OBJS) \ + `$(TYPE) /dev/null $(foreach,j,$(SHL1LIBS) $j) | $(SED) s\#$(ROUT)\#$(PRJ)$/$(ROUT)\#g` \ + | $(SOLARENV)/bin/addsym-mingw.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols +# overwrite the map file generate into the local output tree with the generated +# exported symbols list + $(COMMAND_ECHO)$(RENAME) $@.exported-symbols $@ +.ENDIF # .IF "$(COM)"=="GCC" + +.ENDIF # "$(GUI)"=="WNT" + +.ENDIF # "$(DEF1EXPORTFILE)"=="" +.ENDIF # "$(SHL1VERSIONMAP)"!="" + +.IF "$(GUI)"=="WNT" + +DEF1FILTER=$(SOLARENV)/inc/dummy.flt + +RMHACK1:=$(RM) + +.IF "$(DEF1CEXP)"!="" +EXPORT_ALL_SWITCH=-A $(DEF1CEXP) +.ENDIF + +.IF "$(link_always)"=="" +$(DEF1TARGETN) : \ + $(DEF1DEPN) \ + $(DEF1EXPORTFILE) +.ELSE # "$(link_always)"=="" +$(DEF1TARGETN) .PHONY : +.ENDIF # "$(link_always)"=="" + $(COMMAND_ECHO)-$(RM) $@.tmpfile + @echo "Making: module definition file" $(@:f) + $(COMMAND_ECHO)echo LIBRARY $(EMQ)"$(SHL1TARGETN:f)$(EMQ)" >$@.tmpfile +.IF "$(COM)"!="GCC" + $(COMMAND_ECHO)echo HEAPSIZE 0 >>$@.tmpfile +.ENDIF + $(COMMAND_ECHO)echo EXPORTS >>$@.tmpfile +.IF "$(VERSIONOBJ)"!="" +# getversioninfo fuer alle!! + $(COMMAND_ECHO)echo GetVersionInfo >>$@.tmpfile +.ENDIF +.IF "$(DEFLIB1NAME)"!="" +.IF "$(COM)"=="GCC" + $(COMMAND_ECHO)-$(RM) $(MISC)/$(SHL1TARGET).exp + $(COMMAND_ECHO)$(DLLTOOL) --output-def $(MISC)/$(SHL1TARGET).exp --export-all-symbols \ + `$(TYPE) $(foreach,i,$(DEFLIB1NAME) $(SLB)/$(i).lib) | sed s#$(ROUT)#$(PRJ)/$(ROUT)#g` + $(COMMAND_ECHO)tail --lines +3 $(MISC)/$(SHL1TARGET).exp | sed '/^;/d' >>$@.tmpfile + $(COMMAND_ECHO)-$(RM) $(MISC)/$(SHL1TARGET).exp +.ELSE +.IF "$(SHL1USE_EXPORTS)"=="" + $(COMMAND_ECHO)-$(RMHACK1) $(MISC)/$(SHL1TARGET).exp + $(COMMAND_ECHO)$(LIBMGR) -EXTRACT:/ /OUT:$(MISC)/$(SHL1TARGET).exp $(SLB)/$(DEFLIB1NAME).lib + $(COMMAND_ECHO)$(LDUMP2) -N $(EXPORT_ALL_SWITCH) -F $(MISC)/$(SHL1TARGET).flt $(MISC)/$(SHL1TARGET).exp >>$@.tmpfile + $(COMMAND_ECHO)$(RMHACK1) $(MISC)/$(SHL1TARGET).exp +.ELSE # "$(SHL1USE_EXPORTS)"=="" + $(COMMAND_ECHO)$(DUMPBIN) -DIRECTIVES $(foreach,i,$(DEFLIB1NAME) $(SLB)/$(i).lib) | $(GREP) EXPORT: > $(MISC)/$(SHL1TARGET).direct + $(COMMAND_ECHO)$(LDUMP2) -N -D $(EXPORT_ALL_SWITCH) -F $(DEF1FILTER) $(MISC)/$(SHL1TARGET).direct >>$@.tmpfile +.ENDIF # "$(SHL1USE_EXPORTS)"=="" +.ENDIF +.ENDIF # "$(DEFLIB1NAME)"!="" +.IF "$(DEF1EXPORT1)"!="" + $(COMMAND_ECHO)echo $(DEF1EXPORT1) >>$@.tmpfile +.ENDIF +.IF "$(DEF1EXPORT2)"!="" + $(COMMAND_ECHO)echo $(DEF1EXPORT2) >>$@.tmpfile +.ENDIF +.IF "$(DEF1EXPORT3)"!="" + $(COMMAND_ECHO)echo $(DEF1EXPORT3) >>$@.tmpfile +.ENDIF +.IF "$(DEF1EXPORT4)"!="" + $(COMMAND_ECHO)echo $(DEF1EXPORT4) >>$@.tmpfile +.ENDIF +.IF "$(DEF1EXPORT5)"!="" + $(COMMAND_ECHO)echo $(DEF1EXPORT5) >>$@.tmpfile +.ENDIF +.IF "$(DEF1EXPORT6)"!="" + $(COMMAND_ECHO)echo $(DEF1EXPORT6) >>$@.tmpfile +.ENDIF +.IF "$(DEF1EXPORT7)"!="" + $(COMMAND_ECHO)echo $(DEF1EXPORT7) >>$@.tmpfile +.ENDIF +.IF "$(DEF1EXPORT8)"!="" + $(COMMAND_ECHO)echo $(DEF1EXPORT8) >>$@.tmpfile +.ENDIF +.IF "$(DEF1EXPORT9)"!="" + $(COMMAND_ECHO)echo $(DEF1EXPORT9) >>$@.tmpfile +.ENDIF +.IF "$(DEF1EXPORT10)"!="" + $(COMMAND_ECHO)echo $(DEF1EXPORT10) >>$@.tmpfile +.ENDIF +.IF "$(DEF1EXPORT11)"!="" + $(COMMAND_ECHO)echo $(DEF1EXPORT11) >>$@.tmpfile +.ENDIF +.IF "$(DEF1EXPORT12)"!="" + $(COMMAND_ECHO)echo $(DEF1EXPORT12) >>$@.tmpfile +.ENDIF +.IF "$(DEF1EXPORT13)"!="" + $(COMMAND_ECHO)echo $(DEF1EXPORT13) >>$@.tmpfile +.ENDIF +.IF "$(DEF1EXPORT14)"!="" + $(COMMAND_ECHO)echo $(DEF1EXPORT14) >>$@.tmpfile +.ENDIF +.IF "$(DEF1EXPORT15)"!="" + $(COMMAND_ECHO)echo $(DEF1EXPORT15) >>$@.tmpfile +.ENDIF +.IF "$(DEF1EXPORT16)"!="" + $(COMMAND_ECHO)echo $(DEF1EXPORT16) >>$@.tmpfile +.ENDIF +.IF "$(DEF1EXPORT17)"!="" + $(COMMAND_ECHO)echo $(DEF1EXPORT17) >>$@.tmpfile +.ENDIF +.IF "$(DEF1EXPORT18)"!="" + $(COMMAND_ECHO)echo $(DEF1EXPORT18) >>$@.tmpfile +.ENDIF +.IF "$(DEF1EXPORT19)"!="" + $(COMMAND_ECHO)echo $(DEF1EXPORT19) >>$@.tmpfile +.ENDIF +.IF "$(DEF1EXPORT20)"!="" + $(COMMAND_ECHO)echo $(DEF1EXPORT20) >>$@.tmpfile +.ENDIF +.IF "$(DEF1EXPORTFILE)"!="" +.IF "$(COM)"=="GCC" + $(COMMAND_ECHO)$(TYPE) $(DEF1EXPORTFILE) | sed -e s:PRIVATE:: >> $@.tmpfile +.ELSE + $(COMMAND_ECHO)$(TYPE) $(DEF1EXPORTFILE) >> $@.tmpfile +.ENDIF +.ENDIF + $(COMMAND_ECHO)-$(RM) $@ + $(COMMAND_ECHO)$(RENAME) $@.tmpfile $@ +.ENDIF # "$(GUI)"=="WNT" + +.IF "$(GUI)"=="UNX" +$(DEF1TARGETN): \ + $(DEF1DEPN) \ + $(DEF1EXPORTFILE) + $(COMMAND_ECHO)echo just a dummy for UNIX > $@ +.ENDIF +.ENDIF # "$(DEF1TARGETN)"!="" + + +# Anweisungen fuer das Linken +# unroll begin + +.IF "$(DEF2TARGETN)"!="" + +#to make intuitiv naming work +.IF "$(DEF2LIBNAME)"!="" +DEFLIB2NAME*=$(DEF2LIBNAME) +.ENDIF # "$(DEF2LIBNAME)"!="" + +.IF "$(DEFLIB2NAME)"!="" +DEF2DEPN+=$(foreach,i,$(DEFLIB2NAME) $(SLB)/$(i).lib) +.ENDIF + +.IF "$(SHL2VERSIONMAP)"!="" +.IF "$(DEF2EXPORTFILE)"=="" +.IF "$(GUI)"=="WNT" +DEF2EXPORTFILE=$(MISC)/$(SHL2VERSIONMAP:b)_$(SHL2TARGET).dxp +.IF "$(COM)"=="GCC" +$(DEF2EXPORTFILE) : $(SHL2OBJS) $(SHL2LIBS) +.ENDIF # .IF "$(COM)"=="GCC" + +$(DEF2EXPORTFILE) : $(SHL2VERSIONMAP) + $(COMMAND_ECHO)$(TYPE) $< | $(AWK) -f $(SOLARENV)/bin/getcsym.awk > $@ +.IF "$(COM)"=="GCC" + $(COMMAND_ECHO)-$(GREP) -v "\*\|?" $@ | $(SED) -e 's@#.*@@' > $@.exported-symbols + $(COMMAND_ECHO)-$(GREP) "\*\|?" $@ > $@.symbols-regexp +# Shared libraries will be build out of the *.obj files specified in SHL?OBJS and SHL?LIBS +# Extract RTTI symbols from all the objects that will be used to build a shared library + $(COMMAND_ECHO)$(NM) -gP $(SHL2OBJS) \ + `$(TYPE) /dev/null $(foreach,j,$(SHL2LIBS) $j) | $(SED) s\#$(ROUT)\#$(PRJ)$/$(ROUT)\#g` \ + | $(SOLARENV)/bin/addsym-mingw.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols +# overwrite the map file generate into the local output tree with the generated +# exported symbols list + $(COMMAND_ECHO)$(RENAME) $@.exported-symbols $@ +.ENDIF # .IF "$(COM)"=="GCC" + +.ENDIF # "$(GUI)"=="WNT" + +.ENDIF # "$(DEF2EXPORTFILE)"=="" +.ENDIF # "$(SHL2VERSIONMAP)"!="" + +.IF "$(GUI)"=="WNT" + +DEF2FILTER=$(SOLARENV)/inc/dummy.flt + +RMHACK2:=$(RM) + +.IF "$(DEF2CEXP)"!="" +EXPORT_ALL_SWITCH=-A $(DEF2CEXP) +.ENDIF + +.IF "$(link_always)"=="" +$(DEF2TARGETN) : \ + $(DEF2DEPN) \ + $(DEF2EXPORTFILE) +.ELSE # "$(link_always)"=="" +$(DEF2TARGETN) .PHONY : +.ENDIF # "$(link_always)"=="" + $(COMMAND_ECHO)-$(RM) $@.tmpfile + @echo "Making: module definition file" $(@:f) + $(COMMAND_ECHO)echo LIBRARY $(EMQ)"$(SHL2TARGETN:f)$(EMQ)" >$@.tmpfile +.IF "$(COM)"!="GCC" + $(COMMAND_ECHO)echo HEAPSIZE 0 >>$@.tmpfile +.ENDIF + $(COMMAND_ECHO)echo EXPORTS >>$@.tmpfile +.IF "$(VERSIONOBJ)"!="" +# getversioninfo fuer alle!! + $(COMMAND_ECHO)echo GetVersionInfo >>$@.tmpfile +.ENDIF +.IF "$(DEFLIB2NAME)"!="" +.IF "$(COM)"=="GCC" + $(COMMAND_ECHO)-$(RM) $(MISC)/$(SHL2TARGET).exp + $(COMMAND_ECHO)$(DLLTOOL) --output-def $(MISC)/$(SHL2TARGET).exp --export-all-symbols \ + `$(TYPE) $(foreach,i,$(DEFLIB2NAME) $(SLB)/$(i).lib) | sed s#$(ROUT)#$(PRJ)/$(ROUT)#g` + $(COMMAND_ECHO)tail --lines +3 $(MISC)/$(SHL2TARGET).exp | sed '/^;/d' >>$@.tmpfile + $(COMMAND_ECHO)-$(RM) $(MISC)/$(SHL2TARGET).exp +.ELSE +.IF "$(SHL2USE_EXPORTS)"=="" + $(COMMAND_ECHO)-$(RMHACK2) $(MISC)/$(SHL2TARGET).exp + $(COMMAND_ECHO)$(LIBMGR) -EXTRACT:/ /OUT:$(MISC)/$(SHL2TARGET).exp $(SLB)/$(DEFLIB2NAME).lib + $(COMMAND_ECHO)$(LDUMP2) -N $(EXPORT_ALL_SWITCH) -F $(MISC)/$(SHL2TARGET).flt $(MISC)/$(SHL2TARGET).exp >>$@.tmpfile + $(COMMAND_ECHO)$(RMHACK2) $(MISC)/$(SHL2TARGET).exp +.ELSE # "$(SHL2USE_EXPORTS)"=="" + $(COMMAND_ECHO)$(DUMPBIN) -DIRECTIVES $(foreach,i,$(DEFLIB2NAME) $(SLB)/$(i).lib) | $(GREP) EXPORT: > $(MISC)/$(SHL2TARGET).direct + $(COMMAND_ECHO)$(LDUMP2) -N -D $(EXPORT_ALL_SWITCH) -F $(DEF2FILTER) $(MISC)/$(SHL2TARGET).direct >>$@.tmpfile +.ENDIF # "$(SHL2USE_EXPORTS)"=="" +.ENDIF +.ENDIF # "$(DEFLIB2NAME)"!="" +.IF "$(DEF2EXPORT1)"!="" + $(COMMAND_ECHO)echo $(DEF2EXPORT1) >>$@.tmpfile +.ENDIF +.IF "$(DEF2EXPORT2)"!="" + $(COMMAND_ECHO)echo $(DEF2EXPORT2) >>$@.tmpfile +.ENDIF +.IF "$(DEF2EXPORT3)"!="" + $(COMMAND_ECHO)echo $(DEF2EXPORT3) >>$@.tmpfile +.ENDIF +.IF "$(DEF2EXPORT4)"!="" + $(COMMAND_ECHO)echo $(DEF2EXPORT4) >>$@.tmpfile +.ENDIF +.IF "$(DEF2EXPORT5)"!="" + $(COMMAND_ECHO)echo $(DEF2EXPORT5) >>$@.tmpfile +.ENDIF +.IF "$(DEF2EXPORT6)"!="" + $(COMMAND_ECHO)echo $(DEF2EXPORT6) >>$@.tmpfile +.ENDIF +.IF "$(DEF2EXPORT7)"!="" + $(COMMAND_ECHO)echo $(DEF2EXPORT7) >>$@.tmpfile +.ENDIF +.IF "$(DEF2EXPORT8)"!="" + $(COMMAND_ECHO)echo $(DEF2EXPORT8) >>$@.tmpfile +.ENDIF +.IF "$(DEF2EXPORT9)"!="" + $(COMMAND_ECHO)echo $(DEF2EXPORT9) >>$@.tmpfile +.ENDIF +.IF "$(DEF2EXPORT10)"!="" + $(COMMAND_ECHO)echo $(DEF2EXPORT10) >>$@.tmpfile +.ENDIF +.IF "$(DEF2EXPORT11)"!="" + $(COMMAND_ECHO)echo $(DEF2EXPORT11) >>$@.tmpfile +.ENDIF +.IF "$(DEF2EXPORT12)"!="" + $(COMMAND_ECHO)echo $(DEF2EXPORT12) >>$@.tmpfile +.ENDIF +.IF "$(DEF2EXPORT13)"!="" + $(COMMAND_ECHO)echo $(DEF2EXPORT13) >>$@.tmpfile +.ENDIF +.IF "$(DEF2EXPORT14)"!="" + $(COMMAND_ECHO)echo $(DEF2EXPORT14) >>$@.tmpfile +.ENDIF +.IF "$(DEF2EXPORT15)"!="" + $(COMMAND_ECHO)echo $(DEF2EXPORT15) >>$@.tmpfile +.ENDIF +.IF "$(DEF2EXPORT16)"!="" + $(COMMAND_ECHO)echo $(DEF2EXPORT16) >>$@.tmpfile +.ENDIF +.IF "$(DEF2EXPORT17)"!="" + $(COMMAND_ECHO)echo $(DEF2EXPORT17) >>$@.tmpfile +.ENDIF +.IF "$(DEF2EXPORT18)"!="" + $(COMMAND_ECHO)echo $(DEF2EXPORT18) >>$@.tmpfile +.ENDIF +.IF "$(DEF2EXPORT19)"!="" + $(COMMAND_ECHO)echo $(DEF2EXPORT19) >>$@.tmpfile +.ENDIF +.IF "$(DEF2EXPORT20)"!="" + $(COMMAND_ECHO)echo $(DEF2EXPORT20) >>$@.tmpfile +.ENDIF +.IF "$(DEF2EXPORTFILE)"!="" +.IF "$(COM)"=="GCC" + $(COMMAND_ECHO)$(TYPE) $(DEF2EXPORTFILE) | sed -e s:PRIVATE:: >> $@.tmpfile +.ELSE + $(COMMAND_ECHO)$(TYPE) $(DEF2EXPORTFILE) >> $@.tmpfile +.ENDIF +.ENDIF + $(COMMAND_ECHO)-$(RM) $@ + $(COMMAND_ECHO)$(RENAME) $@.tmpfile $@ +.ENDIF # "$(GUI)"=="WNT" + +.IF "$(GUI)"=="UNX" +$(DEF2TARGETN): \ + $(DEF2DEPN) \ + $(DEF2EXPORTFILE) + $(COMMAND_ECHO)echo just a dummy for UNIX > $@ +.ENDIF +.ENDIF # "$(DEF2TARGETN)"!="" + + +# Anweisungen fuer das Linken +# unroll begin + +.IF "$(DEF3TARGETN)"!="" + +#to make intuitiv naming work +.IF "$(DEF3LIBNAME)"!="" +DEFLIB3NAME*=$(DEF3LIBNAME) +.ENDIF # "$(DEF3LIBNAME)"!="" + +.IF "$(DEFLIB3NAME)"!="" +DEF3DEPN+=$(foreach,i,$(DEFLIB3NAME) $(SLB)/$(i).lib) +.ENDIF + +.IF "$(SHL3VERSIONMAP)"!="" +.IF "$(DEF3EXPORTFILE)"=="" +.IF "$(GUI)"=="WNT" +DEF3EXPORTFILE=$(MISC)/$(SHL3VERSIONMAP:b)_$(SHL3TARGET).dxp +.IF "$(COM)"=="GCC" +$(DEF3EXPORTFILE) : $(SHL3OBJS) $(SHL3LIBS) +.ENDIF # .IF "$(COM)"=="GCC" + +$(DEF3EXPORTFILE) : $(SHL3VERSIONMAP) + $(COMMAND_ECHO)$(TYPE) $< | $(AWK) -f $(SOLARENV)/bin/getcsym.awk > $@ +.IF "$(COM)"=="GCC" + $(COMMAND_ECHO)-$(GREP) -v "\*\|?" $@ | $(SED) -e 's@#.*@@' > $@.exported-symbols + $(COMMAND_ECHO)-$(GREP) "\*\|?" $@ > $@.symbols-regexp +# Shared libraries will be build out of the *.obj files specified in SHL?OBJS and SHL?LIBS +# Extract RTTI symbols from all the objects that will be used to build a shared library + $(COMMAND_ECHO)$(NM) -gP $(SHL3OBJS) \ + `$(TYPE) /dev/null $(foreach,j,$(SHL3LIBS) $j) | $(SED) s\#$(ROUT)\#$(PRJ)$/$(ROUT)\#g` \ + | $(SOLARENV)/bin/addsym-mingw.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols +# overwrite the map file generate into the local output tree with the generated +# exported symbols list + $(COMMAND_ECHO)$(RENAME) $@.exported-symbols $@ +.ENDIF # .IF "$(COM)"=="GCC" + +.ENDIF # "$(GUI)"=="WNT" + +.ENDIF # "$(DEF3EXPORTFILE)"=="" +.ENDIF # "$(SHL3VERSIONMAP)"!="" + +.IF "$(GUI)"=="WNT" + +DEF3FILTER=$(SOLARENV)/inc/dummy.flt + +RMHACK3:=$(RM) + +.IF "$(DEF3CEXP)"!="" +EXPORT_ALL_SWITCH=-A $(DEF3CEXP) +.ENDIF + +.IF "$(link_always)"=="" +$(DEF3TARGETN) : \ + $(DEF3DEPN) \ + $(DEF3EXPORTFILE) +.ELSE # "$(link_always)"=="" +$(DEF3TARGETN) .PHONY : +.ENDIF # "$(link_always)"=="" + $(COMMAND_ECHO)-$(RM) $@.tmpfile + @echo "Making: module definition file" $(@:f) + $(COMMAND_ECHO)echo LIBRARY $(EMQ)"$(SHL3TARGETN:f)$(EMQ)" >$@.tmpfile +.IF "$(COM)"!="GCC" + $(COMMAND_ECHO)echo HEAPSIZE 0 >>$@.tmpfile +.ENDIF + $(COMMAND_ECHO)echo EXPORTS >>$@.tmpfile +.IF "$(VERSIONOBJ)"!="" +# getversioninfo fuer alle!! + $(COMMAND_ECHO)echo GetVersionInfo >>$@.tmpfile +.ENDIF +.IF "$(DEFLIB3NAME)"!="" +.IF "$(COM)"=="GCC" + $(COMMAND_ECHO)-$(RM) $(MISC)/$(SHL3TARGET).exp + $(COMMAND_ECHO)$(DLLTOOL) --output-def $(MISC)/$(SHL3TARGET).exp --export-all-symbols \ + `$(TYPE) $(foreach,i,$(DEFLIB3NAME) $(SLB)/$(i).lib) | sed s#$(ROUT)#$(PRJ)/$(ROUT)#g` + $(COMMAND_ECHO)tail --lines +3 $(MISC)/$(SHL3TARGET).exp | sed '/^;/d' >>$@.tmpfile + $(COMMAND_ECHO)-$(RM) $(MISC)/$(SHL3TARGET).exp +.ELSE +.IF "$(SHL3USE_EXPORTS)"=="" + $(COMMAND_ECHO)-$(RMHACK3) $(MISC)/$(SHL3TARGET).exp + $(COMMAND_ECHO)$(LIBMGR) -EXTRACT:/ /OUT:$(MISC)/$(SHL3TARGET).exp $(SLB)/$(DEFLIB3NAME).lib + $(COMMAND_ECHO)$(LDUMP2) -N $(EXPORT_ALL_SWITCH) -F $(MISC)/$(SHL3TARGET).flt $(MISC)/$(SHL3TARGET).exp >>$@.tmpfile + $(COMMAND_ECHO)$(RMHACK3) $(MISC)/$(SHL3TARGET).exp +.ELSE # "$(SHL3USE_EXPORTS)"=="" + $(COMMAND_ECHO)$(DUMPBIN) -DIRECTIVES $(foreach,i,$(DEFLIB3NAME) $(SLB)/$(i).lib) | $(GREP) EXPORT: > $(MISC)/$(SHL3TARGET).direct + $(COMMAND_ECHO)$(LDUMP2) -N -D $(EXPORT_ALL_SWITCH) -F $(DEF3FILTER) $(MISC)/$(SHL3TARGET).direct >>$@.tmpfile +.ENDIF # "$(SHL3USE_EXPORTS)"=="" +.ENDIF +.ENDIF # "$(DEFLIB3NAME)"!="" +.IF "$(DEF3EXPORT1)"!="" + $(COMMAND_ECHO)echo $(DEF3EXPORT1) >>$@.tmpfile +.ENDIF +.IF "$(DEF3EXPORT2)"!="" + $(COMMAND_ECHO)echo $(DEF3EXPORT2) >>$@.tmpfile +.ENDIF +.IF "$(DEF3EXPORT3)"!="" + $(COMMAND_ECHO)echo $(DEF3EXPORT3) >>$@.tmpfile +.ENDIF +.IF "$(DEF3EXPORT4)"!="" + $(COMMAND_ECHO)echo $(DEF3EXPORT4) >>$@.tmpfile +.ENDIF +.IF "$(DEF3EXPORT5)"!="" + $(COMMAND_ECHO)echo $(DEF3EXPORT5) >>$@.tmpfile +.ENDIF +.IF "$(DEF3EXPORT6)"!="" + $(COMMAND_ECHO)echo $(DEF3EXPORT6) >>$@.tmpfile +.ENDIF +.IF "$(DEF3EXPORT7)"!="" + $(COMMAND_ECHO)echo $(DEF3EXPORT7) >>$@.tmpfile +.ENDIF +.IF "$(DEF3EXPORT8)"!="" + $(COMMAND_ECHO)echo $(DEF3EXPORT8) >>$@.tmpfile +.ENDIF +.IF "$(DEF3EXPORT9)"!="" + $(COMMAND_ECHO)echo $(DEF3EXPORT9) >>$@.tmpfile +.ENDIF +.IF "$(DEF3EXPORT10)"!="" + $(COMMAND_ECHO)echo $(DEF3EXPORT10) >>$@.tmpfile +.ENDIF +.IF "$(DEF3EXPORT11)"!="" + $(COMMAND_ECHO)echo $(DEF3EXPORT11) >>$@.tmpfile +.ENDIF +.IF "$(DEF3EXPORT12)"!="" + $(COMMAND_ECHO)echo $(DEF3EXPORT12) >>$@.tmpfile +.ENDIF +.IF "$(DEF3EXPORT13)"!="" + $(COMMAND_ECHO)echo $(DEF3EXPORT13) >>$@.tmpfile +.ENDIF +.IF "$(DEF3EXPORT14)"!="" + $(COMMAND_ECHO)echo $(DEF3EXPORT14) >>$@.tmpfile +.ENDIF +.IF "$(DEF3EXPORT15)"!="" + $(COMMAND_ECHO)echo $(DEF3EXPORT15) >>$@.tmpfile +.ENDIF +.IF "$(DEF3EXPORT16)"!="" + $(COMMAND_ECHO)echo $(DEF3EXPORT16) >>$@.tmpfile +.ENDIF +.IF "$(DEF3EXPORT17)"!="" + $(COMMAND_ECHO)echo $(DEF3EXPORT17) >>$@.tmpfile +.ENDIF +.IF "$(DEF3EXPORT18)"!="" + $(COMMAND_ECHO)echo $(DEF3EXPORT18) >>$@.tmpfile +.ENDIF +.IF "$(DEF3EXPORT19)"!="" + $(COMMAND_ECHO)echo $(DEF3EXPORT19) >>$@.tmpfile +.ENDIF +.IF "$(DEF3EXPORT20)"!="" + $(COMMAND_ECHO)echo $(DEF3EXPORT20) >>$@.tmpfile +.ENDIF +.IF "$(DEF3EXPORTFILE)"!="" +.IF "$(COM)"=="GCC" + $(COMMAND_ECHO)$(TYPE) $(DEF3EXPORTFILE) | sed -e s:PRIVATE:: >> $@.tmpfile +.ELSE + $(COMMAND_ECHO)$(TYPE) $(DEF3EXPORTFILE) >> $@.tmpfile +.ENDIF +.ENDIF + $(COMMAND_ECHO)-$(RM) $@ + $(COMMAND_ECHO)$(RENAME) $@.tmpfile $@ +.ENDIF # "$(GUI)"=="WNT" + +.IF "$(GUI)"=="UNX" +$(DEF3TARGETN): \ + $(DEF3DEPN) \ + $(DEF3EXPORTFILE) + $(COMMAND_ECHO)echo just a dummy for UNIX > $@ +.ENDIF +.ENDIF # "$(DEF3TARGETN)"!="" + + +# Anweisungen fuer das Linken +# unroll begin + +.IF "$(DEF4TARGETN)"!="" + +#to make intuitiv naming work +.IF "$(DEF4LIBNAME)"!="" +DEFLIB4NAME*=$(DEF4LIBNAME) +.ENDIF # "$(DEF4LIBNAME)"!="" + +.IF "$(DEFLIB4NAME)"!="" +DEF4DEPN+=$(foreach,i,$(DEFLIB4NAME) $(SLB)/$(i).lib) +.ENDIF + +.IF "$(SHL4VERSIONMAP)"!="" +.IF "$(DEF4EXPORTFILE)"=="" +.IF "$(GUI)"=="WNT" +DEF4EXPORTFILE=$(MISC)/$(SHL4VERSIONMAP:b)_$(SHL4TARGET).dxp +.IF "$(COM)"=="GCC" +$(DEF4EXPORTFILE) : $(SHL4OBJS) $(SHL4LIBS) +.ENDIF # .IF "$(COM)"=="GCC" + +$(DEF4EXPORTFILE) : $(SHL4VERSIONMAP) + $(COMMAND_ECHO)$(TYPE) $< | $(AWK) -f $(SOLARENV)/bin/getcsym.awk > $@ +.IF "$(COM)"=="GCC" + $(COMMAND_ECHO)-$(GREP) -v "\*\|?" $@ | $(SED) -e 's@#.*@@' > $@.exported-symbols + $(COMMAND_ECHO)-$(GREP) "\*\|?" $@ > $@.symbols-regexp +# Shared libraries will be build out of the *.obj files specified in SHL?OBJS and SHL?LIBS +# Extract RTTI symbols from all the objects that will be used to build a shared library + $(COMMAND_ECHO)$(NM) -gP $(SHL4OBJS) \ + `$(TYPE) /dev/null $(foreach,j,$(SHL4LIBS) $j) | $(SED) s\#$(ROUT)\#$(PRJ)$/$(ROUT)\#g` \ + | $(SOLARENV)/bin/addsym-mingw.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols +# overwrite the map file generate into the local output tree with the generated +# exported symbols list + $(COMMAND_ECHO)$(RENAME) $@.exported-symbols $@ +.ENDIF # .IF "$(COM)"=="GCC" + +.ENDIF # "$(GUI)"=="WNT" + +.ENDIF # "$(DEF4EXPORTFILE)"=="" +.ENDIF # "$(SHL4VERSIONMAP)"!="" + +.IF "$(GUI)"=="WNT" + +DEF4FILTER=$(SOLARENV)/inc/dummy.flt + +RMHACK4:=$(RM) + +.IF "$(DEF4CEXP)"!="" +EXPORT_ALL_SWITCH=-A $(DEF4CEXP) +.ENDIF + +.IF "$(link_always)"=="" +$(DEF4TARGETN) : \ + $(DEF4DEPN) \ + $(DEF4EXPORTFILE) +.ELSE # "$(link_always)"=="" +$(DEF4TARGETN) .PHONY : +.ENDIF # "$(link_always)"=="" + $(COMMAND_ECHO)-$(RM) $@.tmpfile + @echo "Making: module definition file" $(@:f) + $(COMMAND_ECHO)echo LIBRARY $(EMQ)"$(SHL4TARGETN:f)$(EMQ)" >$@.tmpfile +.IF "$(COM)"!="GCC" + $(COMMAND_ECHO)echo HEAPSIZE 0 >>$@.tmpfile +.ENDIF + $(COMMAND_ECHO)echo EXPORTS >>$@.tmpfile +.IF "$(VERSIONOBJ)"!="" +# getversioninfo fuer alle!! + $(COMMAND_ECHO)echo GetVersionInfo >>$@.tmpfile +.ENDIF +.IF "$(DEFLIB4NAME)"!="" +.IF "$(COM)"=="GCC" + $(COMMAND_ECHO)-$(RM) $(MISC)/$(SHL4TARGET).exp + $(COMMAND_ECHO)$(DLLTOOL) --output-def $(MISC)/$(SHL4TARGET).exp --export-all-symbols \ + `$(TYPE) $(foreach,i,$(DEFLIB4NAME) $(SLB)/$(i).lib) | sed s#$(ROUT)#$(PRJ)/$(ROUT)#g` + $(COMMAND_ECHO)tail --lines +3 $(MISC)/$(SHL4TARGET).exp | sed '/^;/d' >>$@.tmpfile + $(COMMAND_ECHO)-$(RM) $(MISC)/$(SHL4TARGET).exp +.ELSE +.IF "$(SHL4USE_EXPORTS)"=="" + $(COMMAND_ECHO)-$(RMHACK4) $(MISC)/$(SHL4TARGET).exp + $(COMMAND_ECHO)$(LIBMGR) -EXTRACT:/ /OUT:$(MISC)/$(SHL4TARGET).exp $(SLB)/$(DEFLIB4NAME).lib + $(COMMAND_ECHO)$(LDUMP2) -N $(EXPORT_ALL_SWITCH) -F $(MISC)/$(SHL4TARGET).flt $(MISC)/$(SHL4TARGET).exp >>$@.tmpfile + $(COMMAND_ECHO)$(RMHACK4) $(MISC)/$(SHL4TARGET).exp +.ELSE # "$(SHL4USE_EXPORTS)"=="" + $(COMMAND_ECHO)$(DUMPBIN) -DIRECTIVES $(foreach,i,$(DEFLIB4NAME) $(SLB)/$(i).lib) | $(GREP) EXPORT: > $(MISC)/$(SHL4TARGET).direct + $(COMMAND_ECHO)$(LDUMP2) -N -D $(EXPORT_ALL_SWITCH) -F $(DEF4FILTER) $(MISC)/$(SHL4TARGET).direct >>$@.tmpfile +.ENDIF # "$(SHL4USE_EXPORTS)"=="" +.ENDIF +.ENDIF # "$(DEFLIB4NAME)"!="" +.IF "$(DEF4EXPORT1)"!="" + $(COMMAND_ECHO)echo $(DEF4EXPORT1) >>$@.tmpfile +.ENDIF +.IF "$(DEF4EXPORT2)"!="" + $(COMMAND_ECHO)echo $(DEF4EXPORT2) >>$@.tmpfile +.ENDIF +.IF "$(DEF4EXPORT3)"!="" + $(COMMAND_ECHO)echo $(DEF4EXPORT3) >>$@.tmpfile +.ENDIF +.IF "$(DEF4EXPORT4)"!="" + $(COMMAND_ECHO)echo $(DEF4EXPORT4) >>$@.tmpfile +.ENDIF +.IF "$(DEF4EXPORT5)"!="" + $(COMMAND_ECHO)echo $(DEF4EXPORT5) >>$@.tmpfile +.ENDIF +.IF "$(DEF4EXPORT6)"!="" + $(COMMAND_ECHO)echo $(DEF4EXPORT6) >>$@.tmpfile +.ENDIF +.IF "$(DEF4EXPORT7)"!="" + $(COMMAND_ECHO)echo $(DEF4EXPORT7) >>$@.tmpfile +.ENDIF +.IF "$(DEF4EXPORT8)"!="" + $(COMMAND_ECHO)echo $(DEF4EXPORT8) >>$@.tmpfile +.ENDIF +.IF "$(DEF4EXPORT9)"!="" + $(COMMAND_ECHO)echo $(DEF4EXPORT9) >>$@.tmpfile +.ENDIF +.IF "$(DEF4EXPORT10)"!="" + $(COMMAND_ECHO)echo $(DEF4EXPORT10) >>$@.tmpfile +.ENDIF +.IF "$(DEF4EXPORT11)"!="" + $(COMMAND_ECHO)echo $(DEF4EXPORT11) >>$@.tmpfile +.ENDIF +.IF "$(DEF4EXPORT12)"!="" + $(COMMAND_ECHO)echo $(DEF4EXPORT12) >>$@.tmpfile +.ENDIF +.IF "$(DEF4EXPORT13)"!="" + $(COMMAND_ECHO)echo $(DEF4EXPORT13) >>$@.tmpfile +.ENDIF +.IF "$(DEF4EXPORT14)"!="" + $(COMMAND_ECHO)echo $(DEF4EXPORT14) >>$@.tmpfile +.ENDIF +.IF "$(DEF4EXPORT15)"!="" + $(COMMAND_ECHO)echo $(DEF4EXPORT15) >>$@.tmpfile +.ENDIF +.IF "$(DEF4EXPORT16)"!="" + $(COMMAND_ECHO)echo $(DEF4EXPORT16) >>$@.tmpfile +.ENDIF +.IF "$(DEF4EXPORT17)"!="" + $(COMMAND_ECHO)echo $(DEF4EXPORT17) >>$@.tmpfile +.ENDIF +.IF "$(DEF4EXPORT18)"!="" + $(COMMAND_ECHO)echo $(DEF4EXPORT18) >>$@.tmpfile +.ENDIF +.IF "$(DEF4EXPORT19)"!="" + $(COMMAND_ECHO)echo $(DEF4EXPORT19) >>$@.tmpfile +.ENDIF +.IF "$(DEF4EXPORT20)"!="" + $(COMMAND_ECHO)echo $(DEF4EXPORT20) >>$@.tmpfile +.ENDIF +.IF "$(DEF4EXPORTFILE)"!="" +.IF "$(COM)"=="GCC" + $(COMMAND_ECHO)$(TYPE) $(DEF4EXPORTFILE) | sed -e s:PRIVATE:: >> $@.tmpfile +.ELSE + $(COMMAND_ECHO)$(TYPE) $(DEF4EXPORTFILE) >> $@.tmpfile +.ENDIF +.ENDIF + $(COMMAND_ECHO)-$(RM) $@ + $(COMMAND_ECHO)$(RENAME) $@.tmpfile $@ +.ENDIF # "$(GUI)"=="WNT" + +.IF "$(GUI)"=="UNX" +$(DEF4TARGETN): \ + $(DEF4DEPN) \ + $(DEF4EXPORTFILE) + $(COMMAND_ECHO)echo just a dummy for UNIX > $@ +.ENDIF +.ENDIF # "$(DEF4TARGETN)"!="" + + +# Anweisungen fuer das Linken +# unroll begin + +.IF "$(DEF5TARGETN)"!="" + +#to make intuitiv naming work +.IF "$(DEF5LIBNAME)"!="" +DEFLIB5NAME*=$(DEF5LIBNAME) +.ENDIF # "$(DEF5LIBNAME)"!="" + +.IF "$(DEFLIB5NAME)"!="" +DEF5DEPN+=$(foreach,i,$(DEFLIB5NAME) $(SLB)/$(i).lib) +.ENDIF + +.IF "$(SHL5VERSIONMAP)"!="" +.IF "$(DEF5EXPORTFILE)"=="" +.IF "$(GUI)"=="WNT" +DEF5EXPORTFILE=$(MISC)/$(SHL5VERSIONMAP:b)_$(SHL5TARGET).dxp +.IF "$(COM)"=="GCC" +$(DEF5EXPORTFILE) : $(SHL5OBJS) $(SHL5LIBS) +.ENDIF # .IF "$(COM)"=="GCC" + +$(DEF5EXPORTFILE) : $(SHL5VERSIONMAP) + $(COMMAND_ECHO)$(TYPE) $< | $(AWK) -f $(SOLARENV)/bin/getcsym.awk > $@ +.IF "$(COM)"=="GCC" + $(COMMAND_ECHO)-$(GREP) -v "\*\|?" $@ | $(SED) -e 's@#.*@@' > $@.exported-symbols + $(COMMAND_ECHO)-$(GREP) "\*\|?" $@ > $@.symbols-regexp +# Shared libraries will be build out of the *.obj files specified in SHL?OBJS and SHL?LIBS +# Extract RTTI symbols from all the objects that will be used to build a shared library + $(COMMAND_ECHO)$(NM) -gP $(SHL5OBJS) \ + `$(TYPE) /dev/null $(foreach,j,$(SHL5LIBS) $j) | $(SED) s\#$(ROUT)\#$(PRJ)$/$(ROUT)\#g` \ + | $(SOLARENV)/bin/addsym-mingw.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols +# overwrite the map file generate into the local output tree with the generated +# exported symbols list + $(COMMAND_ECHO)$(RENAME) $@.exported-symbols $@ +.ENDIF # .IF "$(COM)"=="GCC" + +.ENDIF # "$(GUI)"=="WNT" + +.ENDIF # "$(DEF5EXPORTFILE)"=="" +.ENDIF # "$(SHL5VERSIONMAP)"!="" + +.IF "$(GUI)"=="WNT" + +DEF5FILTER=$(SOLARENV)/inc/dummy.flt + +RMHACK5:=$(RM) + +.IF "$(DEF5CEXP)"!="" +EXPORT_ALL_SWITCH=-A $(DEF5CEXP) +.ENDIF + +.IF "$(link_always)"=="" +$(DEF5TARGETN) : \ + $(DEF5DEPN) \ + $(DEF5EXPORTFILE) +.ELSE # "$(link_always)"=="" +$(DEF5TARGETN) .PHONY : +.ENDIF # "$(link_always)"=="" + $(COMMAND_ECHO)-$(RM) $@.tmpfile + @echo "Making: module definition file" $(@:f) + $(COMMAND_ECHO)echo LIBRARY $(EMQ)"$(SHL5TARGETN:f)$(EMQ)" >$@.tmpfile +.IF "$(COM)"!="GCC" + $(COMMAND_ECHO)echo HEAPSIZE 0 >>$@.tmpfile +.ENDIF + $(COMMAND_ECHO)echo EXPORTS >>$@.tmpfile +.IF "$(VERSIONOBJ)"!="" +# getversioninfo fuer alle!! + $(COMMAND_ECHO)echo GetVersionInfo >>$@.tmpfile +.ENDIF +.IF "$(DEFLIB5NAME)"!="" +.IF "$(COM)"=="GCC" + $(COMMAND_ECHO)-$(RM) $(MISC)/$(SHL5TARGET).exp + $(COMMAND_ECHO)$(DLLTOOL) --output-def $(MISC)/$(SHL5TARGET).exp --export-all-symbols \ + `$(TYPE) $(foreach,i,$(DEFLIB5NAME) $(SLB)/$(i).lib) | sed s#$(ROUT)#$(PRJ)/$(ROUT)#g` + $(COMMAND_ECHO)tail --lines +3 $(MISC)/$(SHL5TARGET).exp | sed '/^;/d' >>$@.tmpfile + $(COMMAND_ECHO)-$(RM) $(MISC)/$(SHL5TARGET).exp +.ELSE +.IF "$(SHL5USE_EXPORTS)"=="" + $(COMMAND_ECHO)-$(RMHACK5) $(MISC)/$(SHL5TARGET).exp + $(COMMAND_ECHO)$(LIBMGR) -EXTRACT:/ /OUT:$(MISC)/$(SHL5TARGET).exp $(SLB)/$(DEFLIB5NAME).lib + $(COMMAND_ECHO)$(LDUMP2) -N $(EXPORT_ALL_SWITCH) -F $(MISC)/$(SHL5TARGET).flt $(MISC)/$(SHL5TARGET).exp >>$@.tmpfile + $(COMMAND_ECHO)$(RMHACK5) $(MISC)/$(SHL5TARGET).exp +.ELSE # "$(SHL5USE_EXPORTS)"=="" + $(COMMAND_ECHO)$(DUMPBIN) -DIRECTIVES $(foreach,i,$(DEFLIB5NAME) $(SLB)/$(i).lib) | $(GREP) EXPORT: > $(MISC)/$(SHL5TARGET).direct + $(COMMAND_ECHO)$(LDUMP2) -N -D $(EXPORT_ALL_SWITCH) -F $(DEF5FILTER) $(MISC)/$(SHL5TARGET).direct >>$@.tmpfile +.ENDIF # "$(SHL5USE_EXPORTS)"=="" +.ENDIF +.ENDIF # "$(DEFLIB5NAME)"!="" +.IF "$(DEF5EXPORT1)"!="" + $(COMMAND_ECHO)echo $(DEF5EXPORT1) >>$@.tmpfile +.ENDIF +.IF "$(DEF5EXPORT2)"!="" + $(COMMAND_ECHO)echo $(DEF5EXPORT2) >>$@.tmpfile +.ENDIF +.IF "$(DEF5EXPORT3)"!="" + $(COMMAND_ECHO)echo $(DEF5EXPORT3) >>$@.tmpfile +.ENDIF +.IF "$(DEF5EXPORT4)"!="" + $(COMMAND_ECHO)echo $(DEF5EXPORT4) >>$@.tmpfile +.ENDIF +.IF "$(DEF5EXPORT5)"!="" + $(COMMAND_ECHO)echo $(DEF5EXPORT5) >>$@.tmpfile +.ENDIF +.IF "$(DEF5EXPORT6)"!="" + $(COMMAND_ECHO)echo $(DEF5EXPORT6) >>$@.tmpfile +.ENDIF +.IF "$(DEF5EXPORT7)"!="" + $(COMMAND_ECHO)echo $(DEF5EXPORT7) >>$@.tmpfile +.ENDIF +.IF "$(DEF5EXPORT8)"!="" + $(COMMAND_ECHO)echo $(DEF5EXPORT8) >>$@.tmpfile +.ENDIF +.IF "$(DEF5EXPORT9)"!="" + $(COMMAND_ECHO)echo $(DEF5EXPORT9) >>$@.tmpfile +.ENDIF +.IF "$(DEF5EXPORT10)"!="" + $(COMMAND_ECHO)echo $(DEF5EXPORT10) >>$@.tmpfile +.ENDIF +.IF "$(DEF5EXPORT11)"!="" + $(COMMAND_ECHO)echo $(DEF5EXPORT11) >>$@.tmpfile +.ENDIF +.IF "$(DEF5EXPORT12)"!="" + $(COMMAND_ECHO)echo $(DEF5EXPORT12) >>$@.tmpfile +.ENDIF +.IF "$(DEF5EXPORT13)"!="" + $(COMMAND_ECHO)echo $(DEF5EXPORT13) >>$@.tmpfile +.ENDIF +.IF "$(DEF5EXPORT14)"!="" + $(COMMAND_ECHO)echo $(DEF5EXPORT14) >>$@.tmpfile +.ENDIF +.IF "$(DEF5EXPORT15)"!="" + $(COMMAND_ECHO)echo $(DEF5EXPORT15) >>$@.tmpfile +.ENDIF +.IF "$(DEF5EXPORT16)"!="" + $(COMMAND_ECHO)echo $(DEF5EXPORT16) >>$@.tmpfile +.ENDIF +.IF "$(DEF5EXPORT17)"!="" + $(COMMAND_ECHO)echo $(DEF5EXPORT17) >>$@.tmpfile +.ENDIF +.IF "$(DEF5EXPORT18)"!="" + $(COMMAND_ECHO)echo $(DEF5EXPORT18) >>$@.tmpfile +.ENDIF +.IF "$(DEF5EXPORT19)"!="" + $(COMMAND_ECHO)echo $(DEF5EXPORT19) >>$@.tmpfile +.ENDIF +.IF "$(DEF5EXPORT20)"!="" + $(COMMAND_ECHO)echo $(DEF5EXPORT20) >>$@.tmpfile +.ENDIF +.IF "$(DEF5EXPORTFILE)"!="" +.IF "$(COM)"=="GCC" + $(COMMAND_ECHO)$(TYPE) $(DEF5EXPORTFILE) | sed -e s:PRIVATE:: >> $@.tmpfile +.ELSE + $(COMMAND_ECHO)$(TYPE) $(DEF5EXPORTFILE) >> $@.tmpfile +.ENDIF +.ENDIF + $(COMMAND_ECHO)-$(RM) $@ + $(COMMAND_ECHO)$(RENAME) $@.tmpfile $@ +.ENDIF # "$(GUI)"=="WNT" + +.IF "$(GUI)"=="UNX" +$(DEF5TARGETN): \ + $(DEF5DEPN) \ + $(DEF5EXPORTFILE) + $(COMMAND_ECHO)echo just a dummy for UNIX > $@ +.ENDIF +.ENDIF # "$(DEF5TARGETN)"!="" + + +# Anweisungen fuer das Linken +# unroll begin + +.IF "$(DEF6TARGETN)"!="" + +#to make intuitiv naming work +.IF "$(DEF6LIBNAME)"!="" +DEFLIB6NAME*=$(DEF6LIBNAME) +.ENDIF # "$(DEF6LIBNAME)"!="" + +.IF "$(DEFLIB6NAME)"!="" +DEF6DEPN+=$(foreach,i,$(DEFLIB6NAME) $(SLB)/$(i).lib) +.ENDIF + +.IF "$(SHL6VERSIONMAP)"!="" +.IF "$(DEF6EXPORTFILE)"=="" +.IF "$(GUI)"=="WNT" +DEF6EXPORTFILE=$(MISC)/$(SHL6VERSIONMAP:b)_$(SHL6TARGET).dxp +.IF "$(COM)"=="GCC" +$(DEF6EXPORTFILE) : $(SHL6OBJS) $(SHL6LIBS) +.ENDIF # .IF "$(COM)"=="GCC" + +$(DEF6EXPORTFILE) : $(SHL6VERSIONMAP) + $(COMMAND_ECHO)$(TYPE) $< | $(AWK) -f $(SOLARENV)/bin/getcsym.awk > $@ +.IF "$(COM)"=="GCC" + $(COMMAND_ECHO)-$(GREP) -v "\*\|?" $@ | $(SED) -e 's@#.*@@' > $@.exported-symbols + $(COMMAND_ECHO)-$(GREP) "\*\|?" $@ > $@.symbols-regexp +# Shared libraries will be build out of the *.obj files specified in SHL?OBJS and SHL?LIBS +# Extract RTTI symbols from all the objects that will be used to build a shared library + $(COMMAND_ECHO)$(NM) -gP $(SHL6OBJS) \ + `$(TYPE) /dev/null $(foreach,j,$(SHL6LIBS) $j) | $(SED) s\#$(ROUT)\#$(PRJ)$/$(ROUT)\#g` \ + | $(SOLARENV)/bin/addsym-mingw.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols +# overwrite the map file generate into the local output tree with the generated +# exported symbols list + $(COMMAND_ECHO)$(RENAME) $@.exported-symbols $@ +.ENDIF # .IF "$(COM)"=="GCC" + +.ENDIF # "$(GUI)"=="WNT" + +.ENDIF # "$(DEF6EXPORTFILE)"=="" +.ENDIF # "$(SHL6VERSIONMAP)"!="" + +.IF "$(GUI)"=="WNT" + +DEF6FILTER=$(SOLARENV)/inc/dummy.flt + +RMHACK6:=$(RM) + +.IF "$(DEF6CEXP)"!="" +EXPORT_ALL_SWITCH=-A $(DEF6CEXP) +.ENDIF + +.IF "$(link_always)"=="" +$(DEF6TARGETN) : \ + $(DEF6DEPN) \ + $(DEF6EXPORTFILE) +.ELSE # "$(link_always)"=="" +$(DEF6TARGETN) .PHONY : +.ENDIF # "$(link_always)"=="" + $(COMMAND_ECHO)-$(RM) $@.tmpfile + @echo "Making: module definition file" $(@:f) + $(COMMAND_ECHO)echo LIBRARY $(EMQ)"$(SHL6TARGETN:f)$(EMQ)" >$@.tmpfile +.IF "$(COM)"!="GCC" + $(COMMAND_ECHO)echo HEAPSIZE 0 >>$@.tmpfile +.ENDIF + $(COMMAND_ECHO)echo EXPORTS >>$@.tmpfile +.IF "$(VERSIONOBJ)"!="" +# getversioninfo fuer alle!! + $(COMMAND_ECHO)echo GetVersionInfo >>$@.tmpfile +.ENDIF +.IF "$(DEFLIB6NAME)"!="" +.IF "$(COM)"=="GCC" + $(COMMAND_ECHO)-$(RM) $(MISC)/$(SHL6TARGET).exp + $(COMMAND_ECHO)$(DLLTOOL) --output-def $(MISC)/$(SHL6TARGET).exp --export-all-symbols \ + `$(TYPE) $(foreach,i,$(DEFLIB6NAME) $(SLB)/$(i).lib) | sed s#$(ROUT)#$(PRJ)/$(ROUT)#g` + $(COMMAND_ECHO)tail --lines +3 $(MISC)/$(SHL6TARGET).exp | sed '/^;/d' >>$@.tmpfile + $(COMMAND_ECHO)-$(RM) $(MISC)/$(SHL6TARGET).exp +.ELSE +.IF "$(SHL6USE_EXPORTS)"=="" + $(COMMAND_ECHO)-$(RMHACK6) $(MISC)/$(SHL6TARGET).exp + $(COMMAND_ECHO)$(LIBMGR) -EXTRACT:/ /OUT:$(MISC)/$(SHL6TARGET).exp $(SLB)/$(DEFLIB6NAME).lib + $(COMMAND_ECHO)$(LDUMP2) -N $(EXPORT_ALL_SWITCH) -F $(MISC)/$(SHL6TARGET).flt $(MISC)/$(SHL6TARGET).exp >>$@.tmpfile + $(COMMAND_ECHO)$(RMHACK6) $(MISC)/$(SHL6TARGET).exp +.ELSE # "$(SHL6USE_EXPORTS)"=="" + $(COMMAND_ECHO)$(DUMPBIN) -DIRECTIVES $(foreach,i,$(DEFLIB6NAME) $(SLB)/$(i).lib) | $(GREP) EXPORT: > $(MISC)/$(SHL6TARGET).direct + $(COMMAND_ECHO)$(LDUMP2) -N -D $(EXPORT_ALL_SWITCH) -F $(DEF6FILTER) $(MISC)/$(SHL6TARGET).direct >>$@.tmpfile +.ENDIF # "$(SHL6USE_EXPORTS)"=="" +.ENDIF +.ENDIF # "$(DEFLIB6NAME)"!="" +.IF "$(DEF6EXPORT1)"!="" + $(COMMAND_ECHO)echo $(DEF6EXPORT1) >>$@.tmpfile +.ENDIF +.IF "$(DEF6EXPORT2)"!="" + $(COMMAND_ECHO)echo $(DEF6EXPORT2) >>$@.tmpfile +.ENDIF +.IF "$(DEF6EXPORT3)"!="" + $(COMMAND_ECHO)echo $(DEF6EXPORT3) >>$@.tmpfile +.ENDIF +.IF "$(DEF6EXPORT4)"!="" + $(COMMAND_ECHO)echo $(DEF6EXPORT4) >>$@.tmpfile +.ENDIF +.IF "$(DEF6EXPORT5)"!="" + $(COMMAND_ECHO)echo $(DEF6EXPORT5) >>$@.tmpfile +.ENDIF +.IF "$(DEF6EXPORT6)"!="" + $(COMMAND_ECHO)echo $(DEF6EXPORT6) >>$@.tmpfile +.ENDIF +.IF "$(DEF6EXPORT7)"!="" + $(COMMAND_ECHO)echo $(DEF6EXPORT7) >>$@.tmpfile +.ENDIF +.IF "$(DEF6EXPORT8)"!="" + $(COMMAND_ECHO)echo $(DEF6EXPORT8) >>$@.tmpfile +.ENDIF +.IF "$(DEF6EXPORT9)"!="" + $(COMMAND_ECHO)echo $(DEF6EXPORT9) >>$@.tmpfile +.ENDIF +.IF "$(DEF6EXPORT10)"!="" + $(COMMAND_ECHO)echo $(DEF6EXPORT10) >>$@.tmpfile +.ENDIF +.IF "$(DEF6EXPORT11)"!="" + $(COMMAND_ECHO)echo $(DEF6EXPORT11) >>$@.tmpfile +.ENDIF +.IF "$(DEF6EXPORT12)"!="" + $(COMMAND_ECHO)echo $(DEF6EXPORT12) >>$@.tmpfile +.ENDIF +.IF "$(DEF6EXPORT13)"!="" + $(COMMAND_ECHO)echo $(DEF6EXPORT13) >>$@.tmpfile +.ENDIF +.IF "$(DEF6EXPORT14)"!="" + $(COMMAND_ECHO)echo $(DEF6EXPORT14) >>$@.tmpfile +.ENDIF +.IF "$(DEF6EXPORT15)"!="" + $(COMMAND_ECHO)echo $(DEF6EXPORT15) >>$@.tmpfile +.ENDIF +.IF "$(DEF6EXPORT16)"!="" + $(COMMAND_ECHO)echo $(DEF6EXPORT16) >>$@.tmpfile +.ENDIF +.IF "$(DEF6EXPORT17)"!="" + $(COMMAND_ECHO)echo $(DEF6EXPORT17) >>$@.tmpfile +.ENDIF +.IF "$(DEF6EXPORT18)"!="" + $(COMMAND_ECHO)echo $(DEF6EXPORT18) >>$@.tmpfile +.ENDIF +.IF "$(DEF6EXPORT19)"!="" + $(COMMAND_ECHO)echo $(DEF6EXPORT19) >>$@.tmpfile +.ENDIF +.IF "$(DEF6EXPORT20)"!="" + $(COMMAND_ECHO)echo $(DEF6EXPORT20) >>$@.tmpfile +.ENDIF +.IF "$(DEF6EXPORTFILE)"!="" +.IF "$(COM)"=="GCC" + $(COMMAND_ECHO)$(TYPE) $(DEF6EXPORTFILE) | sed -e s:PRIVATE:: >> $@.tmpfile +.ELSE + $(COMMAND_ECHO)$(TYPE) $(DEF6EXPORTFILE) >> $@.tmpfile +.ENDIF +.ENDIF + $(COMMAND_ECHO)-$(RM) $@ + $(COMMAND_ECHO)$(RENAME) $@.tmpfile $@ +.ENDIF # "$(GUI)"=="WNT" + +.IF "$(GUI)"=="UNX" +$(DEF6TARGETN): \ + $(DEF6DEPN) \ + $(DEF6EXPORTFILE) + $(COMMAND_ECHO)echo just a dummy for UNIX > $@ +.ENDIF +.ENDIF # "$(DEF6TARGETN)"!="" + + +# Anweisungen fuer das Linken +# unroll begin + +.IF "$(DEF7TARGETN)"!="" + +#to make intuitiv naming work +.IF "$(DEF7LIBNAME)"!="" +DEFLIB7NAME*=$(DEF7LIBNAME) +.ENDIF # "$(DEF7LIBNAME)"!="" + +.IF "$(DEFLIB7NAME)"!="" +DEF7DEPN+=$(foreach,i,$(DEFLIB7NAME) $(SLB)/$(i).lib) +.ENDIF + +.IF "$(SHL7VERSIONMAP)"!="" +.IF "$(DEF7EXPORTFILE)"=="" +.IF "$(GUI)"=="WNT" +DEF7EXPORTFILE=$(MISC)/$(SHL7VERSIONMAP:b)_$(SHL7TARGET).dxp +.IF "$(COM)"=="GCC" +$(DEF7EXPORTFILE) : $(SHL7OBJS) $(SHL7LIBS) +.ENDIF # .IF "$(COM)"=="GCC" + +$(DEF7EXPORTFILE) : $(SHL7VERSIONMAP) + $(COMMAND_ECHO)$(TYPE) $< | $(AWK) -f $(SOLARENV)/bin/getcsym.awk > $@ +.IF "$(COM)"=="GCC" + $(COMMAND_ECHO)-$(GREP) -v "\*\|?" $@ | $(SED) -e 's@#.*@@' > $@.exported-symbols + $(COMMAND_ECHO)-$(GREP) "\*\|?" $@ > $@.symbols-regexp +# Shared libraries will be build out of the *.obj files specified in SHL?OBJS and SHL?LIBS +# Extract RTTI symbols from all the objects that will be used to build a shared library + $(COMMAND_ECHO)$(NM) -gP $(SHL7OBJS) \ + `$(TYPE) /dev/null $(foreach,j,$(SHL7LIBS) $j) | $(SED) s\#$(ROUT)\#$(PRJ)$/$(ROUT)\#g` \ + | $(SOLARENV)/bin/addsym-mingw.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols +# overwrite the map file generate into the local output tree with the generated +# exported symbols list + $(COMMAND_ECHO)$(RENAME) $@.exported-symbols $@ +.ENDIF # .IF "$(COM)"=="GCC" + +.ENDIF # "$(GUI)"=="WNT" + +.ENDIF # "$(DEF7EXPORTFILE)"=="" +.ENDIF # "$(SHL7VERSIONMAP)"!="" + +.IF "$(GUI)"=="WNT" + +DEF7FILTER=$(SOLARENV)/inc/dummy.flt + +RMHACK7:=$(RM) + +.IF "$(DEF7CEXP)"!="" +EXPORT_ALL_SWITCH=-A $(DEF7CEXP) +.ENDIF + +.IF "$(link_always)"=="" +$(DEF7TARGETN) : \ + $(DEF7DEPN) \ + $(DEF7EXPORTFILE) +.ELSE # "$(link_always)"=="" +$(DEF7TARGETN) .PHONY : +.ENDIF # "$(link_always)"=="" + $(COMMAND_ECHO)-$(RM) $@.tmpfile + @echo "Making: module definition file" $(@:f) + $(COMMAND_ECHO)echo LIBRARY $(EMQ)"$(SHL7TARGETN:f)$(EMQ)" >$@.tmpfile +.IF "$(COM)"!="GCC" + $(COMMAND_ECHO)echo HEAPSIZE 0 >>$@.tmpfile +.ENDIF + $(COMMAND_ECHO)echo EXPORTS >>$@.tmpfile +.IF "$(VERSIONOBJ)"!="" +# getversioninfo fuer alle!! + $(COMMAND_ECHO)echo GetVersionInfo >>$@.tmpfile +.ENDIF +.IF "$(DEFLIB7NAME)"!="" +.IF "$(COM)"=="GCC" + $(COMMAND_ECHO)-$(RM) $(MISC)/$(SHL7TARGET).exp + $(COMMAND_ECHO)$(DLLTOOL) --output-def $(MISC)/$(SHL7TARGET).exp --export-all-symbols \ + `$(TYPE) $(foreach,i,$(DEFLIB7NAME) $(SLB)/$(i).lib) | sed s#$(ROUT)#$(PRJ)/$(ROUT)#g` + $(COMMAND_ECHO)tail --lines +3 $(MISC)/$(SHL7TARGET).exp | sed '/^;/d' >>$@.tmpfile + $(COMMAND_ECHO)-$(RM) $(MISC)/$(SHL7TARGET).exp +.ELSE +.IF "$(SHL7USE_EXPORTS)"=="" + $(COMMAND_ECHO)-$(RMHACK7) $(MISC)/$(SHL7TARGET).exp + $(COMMAND_ECHO)$(LIBMGR) -EXTRACT:/ /OUT:$(MISC)/$(SHL7TARGET).exp $(SLB)/$(DEFLIB7NAME).lib + $(COMMAND_ECHO)$(LDUMP2) -N $(EXPORT_ALL_SWITCH) -F $(MISC)/$(SHL7TARGET).flt $(MISC)/$(SHL7TARGET).exp >>$@.tmpfile + $(COMMAND_ECHO)$(RMHACK7) $(MISC)/$(SHL7TARGET).exp +.ELSE # "$(SHL7USE_EXPORTS)"=="" + $(COMMAND_ECHO)$(DUMPBIN) -DIRECTIVES $(foreach,i,$(DEFLIB7NAME) $(SLB)/$(i).lib) | $(GREP) EXPORT: > $(MISC)/$(SHL7TARGET).direct + $(COMMAND_ECHO)$(LDUMP2) -N -D $(EXPORT_ALL_SWITCH) -F $(DEF7FILTER) $(MISC)/$(SHL7TARGET).direct >>$@.tmpfile +.ENDIF # "$(SHL7USE_EXPORTS)"=="" +.ENDIF +.ENDIF # "$(DEFLIB7NAME)"!="" +.IF "$(DEF7EXPORT1)"!="" + $(COMMAND_ECHO)echo $(DEF7EXPORT1) >>$@.tmpfile +.ENDIF +.IF "$(DEF7EXPORT2)"!="" + $(COMMAND_ECHO)echo $(DEF7EXPORT2) >>$@.tmpfile +.ENDIF +.IF "$(DEF7EXPORT3)"!="" + $(COMMAND_ECHO)echo $(DEF7EXPORT3) >>$@.tmpfile +.ENDIF +.IF "$(DEF7EXPORT4)"!="" + $(COMMAND_ECHO)echo $(DEF7EXPORT4) >>$@.tmpfile +.ENDIF +.IF "$(DEF7EXPORT5)"!="" + $(COMMAND_ECHO)echo $(DEF7EXPORT5) >>$@.tmpfile +.ENDIF +.IF "$(DEF7EXPORT6)"!="" + $(COMMAND_ECHO)echo $(DEF7EXPORT6) >>$@.tmpfile +.ENDIF +.IF "$(DEF7EXPORT7)"!="" + $(COMMAND_ECHO)echo $(DEF7EXPORT7) >>$@.tmpfile +.ENDIF +.IF "$(DEF7EXPORT8)"!="" + $(COMMAND_ECHO)echo $(DEF7EXPORT8) >>$@.tmpfile +.ENDIF +.IF "$(DEF7EXPORT9)"!="" + $(COMMAND_ECHO)echo $(DEF7EXPORT9) >>$@.tmpfile +.ENDIF +.IF "$(DEF7EXPORT10)"!="" + $(COMMAND_ECHO)echo $(DEF7EXPORT10) >>$@.tmpfile +.ENDIF +.IF "$(DEF7EXPORT11)"!="" + $(COMMAND_ECHO)echo $(DEF7EXPORT11) >>$@.tmpfile +.ENDIF +.IF "$(DEF7EXPORT12)"!="" + $(COMMAND_ECHO)echo $(DEF7EXPORT12) >>$@.tmpfile +.ENDIF +.IF "$(DEF7EXPORT13)"!="" + $(COMMAND_ECHO)echo $(DEF7EXPORT13) >>$@.tmpfile +.ENDIF +.IF "$(DEF7EXPORT14)"!="" + $(COMMAND_ECHO)echo $(DEF7EXPORT14) >>$@.tmpfile +.ENDIF +.IF "$(DEF7EXPORT15)"!="" + $(COMMAND_ECHO)echo $(DEF7EXPORT15) >>$@.tmpfile +.ENDIF +.IF "$(DEF7EXPORT16)"!="" + $(COMMAND_ECHO)echo $(DEF7EXPORT16) >>$@.tmpfile +.ENDIF +.IF "$(DEF7EXPORT17)"!="" + $(COMMAND_ECHO)echo $(DEF7EXPORT17) >>$@.tmpfile +.ENDIF +.IF "$(DEF7EXPORT18)"!="" + $(COMMAND_ECHO)echo $(DEF7EXPORT18) >>$@.tmpfile +.ENDIF +.IF "$(DEF7EXPORT19)"!="" + $(COMMAND_ECHO)echo $(DEF7EXPORT19) >>$@.tmpfile +.ENDIF +.IF "$(DEF7EXPORT20)"!="" + $(COMMAND_ECHO)echo $(DEF7EXPORT20) >>$@.tmpfile +.ENDIF +.IF "$(DEF7EXPORTFILE)"!="" +.IF "$(COM)"=="GCC" + $(COMMAND_ECHO)$(TYPE) $(DEF7EXPORTFILE) | sed -e s:PRIVATE:: >> $@.tmpfile +.ELSE + $(COMMAND_ECHO)$(TYPE) $(DEF7EXPORTFILE) >> $@.tmpfile +.ENDIF +.ENDIF + $(COMMAND_ECHO)-$(RM) $@ + $(COMMAND_ECHO)$(RENAME) $@.tmpfile $@ +.ENDIF # "$(GUI)"=="WNT" + +.IF "$(GUI)"=="UNX" +$(DEF7TARGETN): \ + $(DEF7DEPN) \ + $(DEF7EXPORTFILE) + $(COMMAND_ECHO)echo just a dummy for UNIX > $@ +.ENDIF +.ENDIF # "$(DEF7TARGETN)"!="" + + +# Anweisungen fuer das Linken +# unroll begin + +.IF "$(DEF8TARGETN)"!="" + +#to make intuitiv naming work +.IF "$(DEF8LIBNAME)"!="" +DEFLIB8NAME*=$(DEF8LIBNAME) +.ENDIF # "$(DEF8LIBNAME)"!="" + +.IF "$(DEFLIB8NAME)"!="" +DEF8DEPN+=$(foreach,i,$(DEFLIB8NAME) $(SLB)/$(i).lib) +.ENDIF + +.IF "$(SHL8VERSIONMAP)"!="" +.IF "$(DEF8EXPORTFILE)"=="" +.IF "$(GUI)"=="WNT" +DEF8EXPORTFILE=$(MISC)/$(SHL8VERSIONMAP:b)_$(SHL8TARGET).dxp +.IF "$(COM)"=="GCC" +$(DEF8EXPORTFILE) : $(SHL8OBJS) $(SHL8LIBS) +.ENDIF # .IF "$(COM)"=="GCC" + +$(DEF8EXPORTFILE) : $(SHL8VERSIONMAP) + $(COMMAND_ECHO)$(TYPE) $< | $(AWK) -f $(SOLARENV)/bin/getcsym.awk > $@ +.IF "$(COM)"=="GCC" + $(COMMAND_ECHO)-$(GREP) -v "\*\|?" $@ | $(SED) -e 's@#.*@@' > $@.exported-symbols + $(COMMAND_ECHO)-$(GREP) "\*\|?" $@ > $@.symbols-regexp +# Shared libraries will be build out of the *.obj files specified in SHL?OBJS and SHL?LIBS +# Extract RTTI symbols from all the objects that will be used to build a shared library + $(COMMAND_ECHO)$(NM) -gP $(SHL8OBJS) \ + `$(TYPE) /dev/null $(foreach,j,$(SHL8LIBS) $j) | $(SED) s\#$(ROUT)\#$(PRJ)$/$(ROUT)\#g` \ + | $(SOLARENV)/bin/addsym-mingw.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols +# overwrite the map file generate into the local output tree with the generated +# exported symbols list + $(COMMAND_ECHO)$(RENAME) $@.exported-symbols $@ +.ENDIF # .IF "$(COM)"=="GCC" + +.ENDIF # "$(GUI)"=="WNT" + +.ENDIF # "$(DEF8EXPORTFILE)"=="" +.ENDIF # "$(SHL8VERSIONMAP)"!="" + +.IF "$(GUI)"=="WNT" + +DEF8FILTER=$(SOLARENV)/inc/dummy.flt + +RMHACK8:=$(RM) + +.IF "$(DEF8CEXP)"!="" +EXPORT_ALL_SWITCH=-A $(DEF8CEXP) +.ENDIF + +.IF "$(link_always)"=="" +$(DEF8TARGETN) : \ + $(DEF8DEPN) \ + $(DEF8EXPORTFILE) +.ELSE # "$(link_always)"=="" +$(DEF8TARGETN) .PHONY : +.ENDIF # "$(link_always)"=="" + $(COMMAND_ECHO)-$(RM) $@.tmpfile + @echo "Making: module definition file" $(@:f) + $(COMMAND_ECHO)echo LIBRARY $(EMQ)"$(SHL8TARGETN:f)$(EMQ)" >$@.tmpfile +.IF "$(COM)"!="GCC" + $(COMMAND_ECHO)echo HEAPSIZE 0 >>$@.tmpfile +.ENDIF + $(COMMAND_ECHO)echo EXPORTS >>$@.tmpfile +.IF "$(VERSIONOBJ)"!="" +# getversioninfo fuer alle!! + $(COMMAND_ECHO)echo GetVersionInfo >>$@.tmpfile +.ENDIF +.IF "$(DEFLIB8NAME)"!="" +.IF "$(COM)"=="GCC" + $(COMMAND_ECHO)-$(RM) $(MISC)/$(SHL8TARGET).exp + $(COMMAND_ECHO)$(DLLTOOL) --output-def $(MISC)/$(SHL8TARGET).exp --export-all-symbols \ + `$(TYPE) $(foreach,i,$(DEFLIB8NAME) $(SLB)/$(i).lib) | sed s#$(ROUT)#$(PRJ)/$(ROUT)#g` + $(COMMAND_ECHO)tail --lines +3 $(MISC)/$(SHL8TARGET).exp | sed '/^;/d' >>$@.tmpfile + $(COMMAND_ECHO)-$(RM) $(MISC)/$(SHL8TARGET).exp +.ELSE +.IF "$(SHL8USE_EXPORTS)"=="" + $(COMMAND_ECHO)-$(RMHACK8) $(MISC)/$(SHL8TARGET).exp + $(COMMAND_ECHO)$(LIBMGR) -EXTRACT:/ /OUT:$(MISC)/$(SHL8TARGET).exp $(SLB)/$(DEFLIB8NAME).lib + $(COMMAND_ECHO)$(LDUMP2) -N $(EXPORT_ALL_SWITCH) -F $(MISC)/$(SHL8TARGET).flt $(MISC)/$(SHL8TARGET).exp >>$@.tmpfile + $(COMMAND_ECHO)$(RMHACK8) $(MISC)/$(SHL8TARGET).exp +.ELSE # "$(SHL8USE_EXPORTS)"=="" + $(COMMAND_ECHO)$(DUMPBIN) -DIRECTIVES $(foreach,i,$(DEFLIB8NAME) $(SLB)/$(i).lib) | $(GREP) EXPORT: > $(MISC)/$(SHL8TARGET).direct + $(COMMAND_ECHO)$(LDUMP2) -N -D $(EXPORT_ALL_SWITCH) -F $(DEF8FILTER) $(MISC)/$(SHL8TARGET).direct >>$@.tmpfile +.ENDIF # "$(SHL8USE_EXPORTS)"=="" +.ENDIF +.ENDIF # "$(DEFLIB8NAME)"!="" +.IF "$(DEF8EXPORT1)"!="" + $(COMMAND_ECHO)echo $(DEF8EXPORT1) >>$@.tmpfile +.ENDIF +.IF "$(DEF8EXPORT2)"!="" + $(COMMAND_ECHO)echo $(DEF8EXPORT2) >>$@.tmpfile +.ENDIF +.IF "$(DEF8EXPORT3)"!="" + $(COMMAND_ECHO)echo $(DEF8EXPORT3) >>$@.tmpfile +.ENDIF +.IF "$(DEF8EXPORT4)"!="" + $(COMMAND_ECHO)echo $(DEF8EXPORT4) >>$@.tmpfile +.ENDIF +.IF "$(DEF8EXPORT5)"!="" + $(COMMAND_ECHO)echo $(DEF8EXPORT5) >>$@.tmpfile +.ENDIF +.IF "$(DEF8EXPORT6)"!="" + $(COMMAND_ECHO)echo $(DEF8EXPORT6) >>$@.tmpfile +.ENDIF +.IF "$(DEF8EXPORT7)"!="" + $(COMMAND_ECHO)echo $(DEF8EXPORT7) >>$@.tmpfile +.ENDIF +.IF "$(DEF8EXPORT8)"!="" + $(COMMAND_ECHO)echo $(DEF8EXPORT8) >>$@.tmpfile +.ENDIF +.IF "$(DEF8EXPORT9)"!="" + $(COMMAND_ECHO)echo $(DEF8EXPORT9) >>$@.tmpfile +.ENDIF +.IF "$(DEF8EXPORT10)"!="" + $(COMMAND_ECHO)echo $(DEF8EXPORT10) >>$@.tmpfile +.ENDIF +.IF "$(DEF8EXPORT11)"!="" + $(COMMAND_ECHO)echo $(DEF8EXPORT11) >>$@.tmpfile +.ENDIF +.IF "$(DEF8EXPORT12)"!="" + $(COMMAND_ECHO)echo $(DEF8EXPORT12) >>$@.tmpfile +.ENDIF +.IF "$(DEF8EXPORT13)"!="" + $(COMMAND_ECHO)echo $(DEF8EXPORT13) >>$@.tmpfile +.ENDIF +.IF "$(DEF8EXPORT14)"!="" + $(COMMAND_ECHO)echo $(DEF8EXPORT14) >>$@.tmpfile +.ENDIF +.IF "$(DEF8EXPORT15)"!="" + $(COMMAND_ECHO)echo $(DEF8EXPORT15) >>$@.tmpfile +.ENDIF +.IF "$(DEF8EXPORT16)"!="" + $(COMMAND_ECHO)echo $(DEF8EXPORT16) >>$@.tmpfile +.ENDIF +.IF "$(DEF8EXPORT17)"!="" + $(COMMAND_ECHO)echo $(DEF8EXPORT17) >>$@.tmpfile +.ENDIF +.IF "$(DEF8EXPORT18)"!="" + $(COMMAND_ECHO)echo $(DEF8EXPORT18) >>$@.tmpfile +.ENDIF +.IF "$(DEF8EXPORT19)"!="" + $(COMMAND_ECHO)echo $(DEF8EXPORT19) >>$@.tmpfile +.ENDIF +.IF "$(DEF8EXPORT20)"!="" + $(COMMAND_ECHO)echo $(DEF8EXPORT20) >>$@.tmpfile +.ENDIF +.IF "$(DEF8EXPORTFILE)"!="" +.IF "$(COM)"=="GCC" + $(COMMAND_ECHO)$(TYPE) $(DEF8EXPORTFILE) | sed -e s:PRIVATE:: >> $@.tmpfile +.ELSE + $(COMMAND_ECHO)$(TYPE) $(DEF8EXPORTFILE) >> $@.tmpfile +.ENDIF +.ENDIF + $(COMMAND_ECHO)-$(RM) $@ + $(COMMAND_ECHO)$(RENAME) $@.tmpfile $@ +.ENDIF # "$(GUI)"=="WNT" + +.IF "$(GUI)"=="UNX" +$(DEF8TARGETN): \ + $(DEF8DEPN) \ + $(DEF8EXPORTFILE) + $(COMMAND_ECHO)echo just a dummy for UNIX > $@ +.ENDIF +.ENDIF # "$(DEF8TARGETN)"!="" + + +# Anweisungen fuer das Linken +# unroll begin + +.IF "$(DEF9TARGETN)"!="" + +#to make intuitiv naming work +.IF "$(DEF9LIBNAME)"!="" +DEFLIB9NAME*=$(DEF9LIBNAME) +.ENDIF # "$(DEF9LIBNAME)"!="" + +.IF "$(DEFLIB9NAME)"!="" +DEF9DEPN+=$(foreach,i,$(DEFLIB9NAME) $(SLB)/$(i).lib) +.ENDIF + +.IF "$(SHL9VERSIONMAP)"!="" +.IF "$(DEF9EXPORTFILE)"=="" +.IF "$(GUI)"=="WNT" +DEF9EXPORTFILE=$(MISC)/$(SHL9VERSIONMAP:b)_$(SHL9TARGET).dxp +.IF "$(COM)"=="GCC" +$(DEF9EXPORTFILE) : $(SHL9OBJS) $(SHL9LIBS) +.ENDIF # .IF "$(COM)"=="GCC" + +$(DEF9EXPORTFILE) : $(SHL9VERSIONMAP) + $(COMMAND_ECHO)$(TYPE) $< | $(AWK) -f $(SOLARENV)/bin/getcsym.awk > $@ +.IF "$(COM)"=="GCC" + $(COMMAND_ECHO)-$(GREP) -v "\*\|?" $@ | $(SED) -e 's@#.*@@' > $@.exported-symbols + $(COMMAND_ECHO)-$(GREP) "\*\|?" $@ > $@.symbols-regexp +# Shared libraries will be build out of the *.obj files specified in SHL?OBJS and SHL?LIBS +# Extract RTTI symbols from all the objects that will be used to build a shared library + $(COMMAND_ECHO)$(NM) -gP $(SHL9OBJS) \ + `$(TYPE) /dev/null $(foreach,j,$(SHL9LIBS) $j) | $(SED) s\#$(ROUT)\#$(PRJ)$/$(ROUT)\#g` \ + | $(SOLARENV)/bin/addsym-mingw.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols +# overwrite the map file generate into the local output tree with the generated +# exported symbols list + $(COMMAND_ECHO)$(RENAME) $@.exported-symbols $@ +.ENDIF # .IF "$(COM)"=="GCC" + +.ENDIF # "$(GUI)"=="WNT" + +.ENDIF # "$(DEF9EXPORTFILE)"=="" +.ENDIF # "$(SHL9VERSIONMAP)"!="" + +.IF "$(GUI)"=="WNT" + +DEF9FILTER=$(SOLARENV)/inc/dummy.flt + +RMHACK9:=$(RM) + +.IF "$(DEF9CEXP)"!="" +EXPORT_ALL_SWITCH=-A $(DEF9CEXP) +.ENDIF + +.IF "$(link_always)"=="" +$(DEF9TARGETN) : \ + $(DEF9DEPN) \ + $(DEF9EXPORTFILE) +.ELSE # "$(link_always)"=="" +$(DEF9TARGETN) .PHONY : +.ENDIF # "$(link_always)"=="" + $(COMMAND_ECHO)-$(RM) $@.tmpfile + @echo "Making: module definition file" $(@:f) + $(COMMAND_ECHO)echo LIBRARY $(EMQ)"$(SHL9TARGETN:f)$(EMQ)" >$@.tmpfile +.IF "$(COM)"!="GCC" + $(COMMAND_ECHO)echo HEAPSIZE 0 >>$@.tmpfile +.ENDIF + $(COMMAND_ECHO)echo EXPORTS >>$@.tmpfile +.IF "$(VERSIONOBJ)"!="" +# getversioninfo fuer alle!! + $(COMMAND_ECHO)echo GetVersionInfo >>$@.tmpfile +.ENDIF +.IF "$(DEFLIB9NAME)"!="" +.IF "$(COM)"=="GCC" + $(COMMAND_ECHO)-$(RM) $(MISC)/$(SHL9TARGET).exp + $(COMMAND_ECHO)$(DLLTOOL) --output-def $(MISC)/$(SHL9TARGET).exp --export-all-symbols \ + `$(TYPE) $(foreach,i,$(DEFLIB9NAME) $(SLB)/$(i).lib) | sed s#$(ROUT)#$(PRJ)/$(ROUT)#g` + $(COMMAND_ECHO)tail --lines +3 $(MISC)/$(SHL9TARGET).exp | sed '/^;/d' >>$@.tmpfile + $(COMMAND_ECHO)-$(RM) $(MISC)/$(SHL9TARGET).exp +.ELSE +.IF "$(SHL9USE_EXPORTS)"=="" + $(COMMAND_ECHO)-$(RMHACK9) $(MISC)/$(SHL9TARGET).exp + $(COMMAND_ECHO)$(LIBMGR) -EXTRACT:/ /OUT:$(MISC)/$(SHL9TARGET).exp $(SLB)/$(DEFLIB9NAME).lib + $(COMMAND_ECHO)$(LDUMP2) -N $(EXPORT_ALL_SWITCH) -F $(MISC)/$(SHL9TARGET).flt $(MISC)/$(SHL9TARGET).exp >>$@.tmpfile + $(COMMAND_ECHO)$(RMHACK9) $(MISC)/$(SHL9TARGET).exp +.ELSE # "$(SHL9USE_EXPORTS)"=="" + $(COMMAND_ECHO)$(DUMPBIN) -DIRECTIVES $(foreach,i,$(DEFLIB9NAME) $(SLB)/$(i).lib) | $(GREP) EXPORT: > $(MISC)/$(SHL9TARGET).direct + $(COMMAND_ECHO)$(LDUMP2) -N -D $(EXPORT_ALL_SWITCH) -F $(DEF9FILTER) $(MISC)/$(SHL9TARGET).direct >>$@.tmpfile +.ENDIF # "$(SHL9USE_EXPORTS)"=="" +.ENDIF +.ENDIF # "$(DEFLIB9NAME)"!="" +.IF "$(DEF9EXPORT1)"!="" + $(COMMAND_ECHO)echo $(DEF9EXPORT1) >>$@.tmpfile +.ENDIF +.IF "$(DEF9EXPORT2)"!="" + $(COMMAND_ECHO)echo $(DEF9EXPORT2) >>$@.tmpfile +.ENDIF +.IF "$(DEF9EXPORT3)"!="" + $(COMMAND_ECHO)echo $(DEF9EXPORT3) >>$@.tmpfile +.ENDIF +.IF "$(DEF9EXPORT4)"!="" + $(COMMAND_ECHO)echo $(DEF9EXPORT4) >>$@.tmpfile +.ENDIF +.IF "$(DEF9EXPORT5)"!="" + $(COMMAND_ECHO)echo $(DEF9EXPORT5) >>$@.tmpfile +.ENDIF +.IF "$(DEF9EXPORT6)"!="" + $(COMMAND_ECHO)echo $(DEF9EXPORT6) >>$@.tmpfile +.ENDIF +.IF "$(DEF9EXPORT7)"!="" + $(COMMAND_ECHO)echo $(DEF9EXPORT7) >>$@.tmpfile +.ENDIF +.IF "$(DEF9EXPORT8)"!="" + $(COMMAND_ECHO)echo $(DEF9EXPORT8) >>$@.tmpfile +.ENDIF +.IF "$(DEF9EXPORT9)"!="" + $(COMMAND_ECHO)echo $(DEF9EXPORT9) >>$@.tmpfile +.ENDIF +.IF "$(DEF9EXPORT10)"!="" + $(COMMAND_ECHO)echo $(DEF9EXPORT10) >>$@.tmpfile +.ENDIF +.IF "$(DEF9EXPORT11)"!="" + $(COMMAND_ECHO)echo $(DEF9EXPORT11) >>$@.tmpfile +.ENDIF +.IF "$(DEF9EXPORT12)"!="" + $(COMMAND_ECHO)echo $(DEF9EXPORT12) >>$@.tmpfile +.ENDIF +.IF "$(DEF9EXPORT13)"!="" + $(COMMAND_ECHO)echo $(DEF9EXPORT13) >>$@.tmpfile +.ENDIF +.IF "$(DEF9EXPORT14)"!="" + $(COMMAND_ECHO)echo $(DEF9EXPORT14) >>$@.tmpfile +.ENDIF +.IF "$(DEF9EXPORT15)"!="" + $(COMMAND_ECHO)echo $(DEF9EXPORT15) >>$@.tmpfile +.ENDIF +.IF "$(DEF9EXPORT16)"!="" + $(COMMAND_ECHO)echo $(DEF9EXPORT16) >>$@.tmpfile +.ENDIF +.IF "$(DEF9EXPORT17)"!="" + $(COMMAND_ECHO)echo $(DEF9EXPORT17) >>$@.tmpfile +.ENDIF +.IF "$(DEF9EXPORT18)"!="" + $(COMMAND_ECHO)echo $(DEF9EXPORT18) >>$@.tmpfile +.ENDIF +.IF "$(DEF9EXPORT19)"!="" + $(COMMAND_ECHO)echo $(DEF9EXPORT19) >>$@.tmpfile +.ENDIF +.IF "$(DEF9EXPORT20)"!="" + $(COMMAND_ECHO)echo $(DEF9EXPORT20) >>$@.tmpfile +.ENDIF +.IF "$(DEF9EXPORTFILE)"!="" +.IF "$(COM)"=="GCC" + $(COMMAND_ECHO)$(TYPE) $(DEF9EXPORTFILE) | sed -e s:PRIVATE:: >> $@.tmpfile +.ELSE + $(COMMAND_ECHO)$(TYPE) $(DEF9EXPORTFILE) >> $@.tmpfile +.ENDIF +.ENDIF + $(COMMAND_ECHO)-$(RM) $@ + $(COMMAND_ECHO)$(RENAME) $@.tmpfile $@ +.ENDIF # "$(GUI)"=="WNT" + +.IF "$(GUI)"=="UNX" +$(DEF9TARGETN): \ + $(DEF9DEPN) \ + $(DEF9EXPORTFILE) + $(COMMAND_ECHO)echo just a dummy for UNIX > $@ +.ENDIF +.ENDIF # "$(DEF9TARGETN)"!="" + + +# Anweisungen fuer das Linken +# unroll begin + +.IF "$(DEF10TARGETN)"!="" + +#to make intuitiv naming work +.IF "$(DEF10LIBNAME)"!="" +DEFLIB10NAME*=$(DEF10LIBNAME) +.ENDIF # "$(DEF10LIBNAME)"!="" + +.IF "$(DEFLIB10NAME)"!="" +DEF10DEPN+=$(foreach,i,$(DEFLIB10NAME) $(SLB)/$(i).lib) +.ENDIF + +.IF "$(SHL10VERSIONMAP)"!="" +.IF "$(DEF10EXPORTFILE)"=="" +.IF "$(GUI)"=="WNT" +DEF10EXPORTFILE=$(MISC)/$(SHL10VERSIONMAP:b)_$(SHL10TARGET).dxp +.IF "$(COM)"=="GCC" +$(DEF10EXPORTFILE) : $(SHL10OBJS) $(SHL10LIBS) +.ENDIF # .IF "$(COM)"=="GCC" + +$(DEF10EXPORTFILE) : $(SHL10VERSIONMAP) + $(COMMAND_ECHO)$(TYPE) $< | $(AWK) -f $(SOLARENV)/bin/getcsym.awk > $@ +.IF "$(COM)"=="GCC" + $(COMMAND_ECHO)-$(GREP) -v "\*\|?" $@ | $(SED) -e 's@#.*@@' > $@.exported-symbols + $(COMMAND_ECHO)-$(GREP) "\*\|?" $@ > $@.symbols-regexp +# Shared libraries will be build out of the *.obj files specified in SHL?OBJS and SHL?LIBS +# Extract RTTI symbols from all the objects that will be used to build a shared library + $(COMMAND_ECHO)$(NM) -gP $(SHL10OBJS) \ + `$(TYPE) /dev/null $(foreach,j,$(SHL10LIBS) $j) | $(SED) s\#$(ROUT)\#$(PRJ)$/$(ROUT)\#g` \ + | $(SOLARENV)/bin/addsym-mingw.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols +# overwrite the map file generate into the local output tree with the generated +# exported symbols list + $(COMMAND_ECHO)$(RENAME) $@.exported-symbols $@ +.ENDIF # .IF "$(COM)"=="GCC" + +.ENDIF # "$(GUI)"=="WNT" + +.ENDIF # "$(DEF10EXPORTFILE)"=="" +.ENDIF # "$(SHL10VERSIONMAP)"!="" + +.IF "$(GUI)"=="WNT" + +DEF10FILTER=$(SOLARENV)/inc/dummy.flt + +RMHACK10:=$(RM) + +.IF "$(DEF10CEXP)"!="" +EXPORT_ALL_SWITCH=-A $(DEF10CEXP) +.ENDIF + +.IF "$(link_always)"=="" +$(DEF10TARGETN) : \ + $(DEF10DEPN) \ + $(DEF10EXPORTFILE) +.ELSE # "$(link_always)"=="" +$(DEF10TARGETN) .PHONY : +.ENDIF # "$(link_always)"=="" + $(COMMAND_ECHO)-$(RM) $@.tmpfile + @echo "Making: module definition file" $(@:f) + $(COMMAND_ECHO)echo LIBRARY $(EMQ)"$(SHL10TARGETN:f)$(EMQ)" >$@.tmpfile +.IF "$(COM)"!="GCC" + $(COMMAND_ECHO)echo HEAPSIZE 0 >>$@.tmpfile +.ENDIF + $(COMMAND_ECHO)echo EXPORTS >>$@.tmpfile +.IF "$(VERSIONOBJ)"!="" +# getversioninfo fuer alle!! + $(COMMAND_ECHO)echo GetVersionInfo >>$@.tmpfile +.ENDIF +.IF "$(DEFLIB10NAME)"!="" +.IF "$(COM)"=="GCC" + $(COMMAND_ECHO)-$(RM) $(MISC)/$(SHL10TARGET).exp + $(COMMAND_ECHO)$(DLLTOOL) --output-def $(MISC)/$(SHL10TARGET).exp --export-all-symbols \ + `$(TYPE) $(foreach,i,$(DEFLIB10NAME) $(SLB)/$(i).lib) | sed s#$(ROUT)#$(PRJ)/$(ROUT)#g` + $(COMMAND_ECHO)tail --lines +3 $(MISC)/$(SHL10TARGET).exp | sed '/^;/d' >>$@.tmpfile + $(COMMAND_ECHO)-$(RM) $(MISC)/$(SHL10TARGET).exp +.ELSE +.IF "$(SHL10USE_EXPORTS)"=="" + $(COMMAND_ECHO)-$(RMHACK10) $(MISC)/$(SHL10TARGET).exp + $(COMMAND_ECHO)$(LIBMGR) -EXTRACT:/ /OUT:$(MISC)/$(SHL10TARGET).exp $(SLB)/$(DEFLIB10NAME).lib + $(COMMAND_ECHO)$(LDUMP2) -N $(EXPORT_ALL_SWITCH) -F $(MISC)/$(SHL10TARGET).flt $(MISC)/$(SHL10TARGET).exp >>$@.tmpfile + $(COMMAND_ECHO)$(RMHACK10) $(MISC)/$(SHL10TARGET).exp +.ELSE # "$(SHL10USE_EXPORTS)"=="" + $(COMMAND_ECHO)$(DUMPBIN) -DIRECTIVES $(foreach,i,$(DEFLIB10NAME) $(SLB)/$(i).lib) | $(GREP) EXPORT: > $(MISC)/$(SHL10TARGET).direct + $(COMMAND_ECHO)$(LDUMP2) -N -D $(EXPORT_ALL_SWITCH) -F $(DEF10FILTER) $(MISC)/$(SHL10TARGET).direct >>$@.tmpfile +.ENDIF # "$(SHL10USE_EXPORTS)"=="" +.ENDIF +.ENDIF # "$(DEFLIB10NAME)"!="" +.IF "$(DEF10EXPORT1)"!="" + $(COMMAND_ECHO)echo $(DEF10EXPORT1) >>$@.tmpfile +.ENDIF +.IF "$(DEF10EXPORT2)"!="" + $(COMMAND_ECHO)echo $(DEF10EXPORT2) >>$@.tmpfile +.ENDIF +.IF "$(DEF10EXPORT3)"!="" + $(COMMAND_ECHO)echo $(DEF10EXPORT3) >>$@.tmpfile +.ENDIF +.IF "$(DEF10EXPORT4)"!="" + $(COMMAND_ECHO)echo $(DEF10EXPORT4) >>$@.tmpfile +.ENDIF +.IF "$(DEF10EXPORT5)"!="" + $(COMMAND_ECHO)echo $(DEF10EXPORT5) >>$@.tmpfile +.ENDIF +.IF "$(DEF10EXPORT6)"!="" + $(COMMAND_ECHO)echo $(DEF10EXPORT6) >>$@.tmpfile +.ENDIF +.IF "$(DEF10EXPORT7)"!="" + $(COMMAND_ECHO)echo $(DEF10EXPORT7) >>$@.tmpfile +.ENDIF +.IF "$(DEF10EXPORT8)"!="" + $(COMMAND_ECHO)echo $(DEF10EXPORT8) >>$@.tmpfile +.ENDIF +.IF "$(DEF10EXPORT9)"!="" + $(COMMAND_ECHO)echo $(DEF10EXPORT9) >>$@.tmpfile +.ENDIF +.IF "$(DEF10EXPORT10)"!="" + $(COMMAND_ECHO)echo $(DEF10EXPORT10) >>$@.tmpfile +.ENDIF +.IF "$(DEF10EXPORT11)"!="" + $(COMMAND_ECHO)echo $(DEF10EXPORT11) >>$@.tmpfile +.ENDIF +.IF "$(DEF10EXPORT12)"!="" + $(COMMAND_ECHO)echo $(DEF10EXPORT12) >>$@.tmpfile +.ENDIF +.IF "$(DEF10EXPORT13)"!="" + $(COMMAND_ECHO)echo $(DEF10EXPORT13) >>$@.tmpfile +.ENDIF +.IF "$(DEF10EXPORT14)"!="" + $(COMMAND_ECHO)echo $(DEF10EXPORT14) >>$@.tmpfile +.ENDIF +.IF "$(DEF10EXPORT15)"!="" + $(COMMAND_ECHO)echo $(DEF10EXPORT15) >>$@.tmpfile +.ENDIF +.IF "$(DEF10EXPORT16)"!="" + $(COMMAND_ECHO)echo $(DEF10EXPORT16) >>$@.tmpfile +.ENDIF +.IF "$(DEF10EXPORT17)"!="" + $(COMMAND_ECHO)echo $(DEF10EXPORT17) >>$@.tmpfile +.ENDIF +.IF "$(DEF10EXPORT18)"!="" + $(COMMAND_ECHO)echo $(DEF10EXPORT18) >>$@.tmpfile +.ENDIF +.IF "$(DEF10EXPORT19)"!="" + $(COMMAND_ECHO)echo $(DEF10EXPORT19) >>$@.tmpfile +.ENDIF +.IF "$(DEF10EXPORT20)"!="" + $(COMMAND_ECHO)echo $(DEF10EXPORT20) >>$@.tmpfile +.ENDIF +.IF "$(DEF10EXPORTFILE)"!="" +.IF "$(COM)"=="GCC" + $(COMMAND_ECHO)$(TYPE) $(DEF10EXPORTFILE) | sed -e s:PRIVATE:: >> $@.tmpfile +.ELSE + $(COMMAND_ECHO)$(TYPE) $(DEF10EXPORTFILE) >> $@.tmpfile +.ENDIF +.ENDIF + $(COMMAND_ECHO)-$(RM) $@ + $(COMMAND_ECHO)$(RENAME) $@.tmpfile $@ +.ENDIF # "$(GUI)"=="WNT" + +.IF "$(GUI)"=="UNX" +$(DEF10TARGETN): \ + $(DEF10DEPN) \ + $(DEF10EXPORTFILE) + $(COMMAND_ECHO)echo just a dummy for UNIX > $@ +.ENDIF +.ENDIF # "$(DEF10TARGETN)"!="" + + +# Anweisungen fuer das Linken diff --git a/solenv/inc/_tg_lib.mk b/solenv/inc/_tg_lib.mk new file mode 100644 index 000000000000..5b6c463559f4 --- /dev/null +++ b/solenv/inc/_tg_lib.mk @@ -0,0 +1,850 @@ +# unroll begin + +.IF "$(LIB1TARGET)" != "" +.IF "$(LIB1ARCHIV)" != "" + +$(LIB1ARCHIV) : $(LIB1TARGET) + @echo "Making: " $(@:f) + @@-$(RM) $@ +.IF "$(GUI)"=="UNX" + @-$(RM) $(MISC)/$(LIB1ARCHIV:b).cmd + @echo $(LIBMGR) $(LIB1FLAGS) $(LIBFLAGS) $(LIB1ARCHIV) `cat $(LIB1TARGET) | sed s\#'^'$(ROUT)\#$(PRJ)/$(ROUT)\#g` > $(MISC)/$(LIB1ARCHIV:b).cmd +.IF "$(OS)$(COM)"=="NETBSDGCC" + @echo ranlib $(LIB1ARCHIV) >> $(MISC)/$(LIB1ARCHIV:b).cmd +.ENDIF +.IF "$(OS)" == "MACOSX" + @echo ranlib $(LIB1ARCHIV) >> $(MISC)/$(LIB1ARCHIV:b).cmd +.ENDIF +.IF "$(VERBOSE)" == "TRUE" + @cat $(MISC)/$(LIB1ARCHIV:b).cmd +.ENDIF + @+source $(MISC)/$(LIB1ARCHIV:b).cmd +.ELSE # "$(GUI)"=="UNX" +.IF "$(GUI)$(COM)"=="WNTGCC" + @+-$(RM) $(MISC)/$(LIB1ARCHIV:b).cmd + @+echo $(LIBMGR) $(LIB1FLAGS) $(LIBFLAGS) $(LIB1ARCHIV) `cat $(LIB1TARGET) | sed s#'^'$(ROUT)#$(PRJ)/$(ROUT)#g` > $(MISC)/$(LIB1ARCHIV:b).cmd + @+echo $(RANLIB) $(LIB1ARCHIV) >> $(MISC)/$(LIB1ARCHIV:b).cmd +.IF "$(VERBOSE)" == "TRUE" + @cat $(MISC)/$(LIB1ARCHIV:b).cmd +.ENDIF + @+source $(MISC)/$(LIB1ARCHIV:b).cmd +.ELSE + @echo just a dummy > $@ +.ENDIF # "$(GUI)$(COM)"=="WNTGCC" +.ENDIF # "$(GUI)"=="UNX" + +.ENDIF # "$(LIB1ARCHIV)" != "" + +$(LIB1TARGET) : $(LIB1FILES) \ + $(LIB1OBJFILES) \ + $(LIB1DEPN) +.IF "$(VERBOSE)" == "TRUE" + @echo ------------------------------ + @echo using: $(LIB1FILES) + @echo using: $(LIB1TARGET) + @echo ------------------------------ +.ENDIF + @echo "Making: " $(@:f) + @@-$(RM) $@ +.IF "$(GUI)"=="UNX" + @echo $(LIB1OBJFILES:s/.obj/.o/) | sed "s#$(PRJ:s/./\./)/$(ROUT)#$(ROUT)#g" | xargs -n 1 > $@ + @cat /dev/null $(LIB1FILES:s/.obj/.o/) | xargs -n 1 >> $@ + @$(RM) $(@:d)$(@:b).dump +.IF "$(OS)"=="MACOSX" + @-nm `cat $(LIB1TARGET) | sed s\#'^'$(ROUT)\#$(PRJ)/$(ROUT)\#g` > $(@:d)$(@:b).dump +.ELSE + @nm `cat $(LIB1TARGET) | sed s\#'^'$(ROUT)\#$(PRJ)/$(ROUT)\#g` > $(@:d)$(@:b).dump +.ENDIF + +.ELSE # "$(GUI)"=="UNX" +.IF "$(GUI)"=="WNT" +.IF "$(COM)"=="GCC" + +$(ECHONL) $(LIB1OBJFILES) | sed "s#$(PRJ:s/././)/$(ROUT)#$(ROUT)#g" | xargs -n1 > $@ + @+cat /dev/null $(LIB1FILES) | xargs -n1 >> $@ +.ELSE + $(COMMAND_ECHO)$(LIBMGR) $(LIBFLAGS) /OUT:$@ @$(mktmp $(LIB1FILES) $(LIB1OBJFILES)) + @-$(RM) $(@:s/.lib/.lin/) +.IF "$(LIB1OBJFILES)"!="" + @$(TYPE) $(mktmp $(LIB1OBJFILES)) > $(null,$(LIB1OBJFILES) $(NULLDEV) $(@:s/.lib/.lin/)) +.ENDIF # "$(LIB1OBJFILES)"!="" +.IF "$(LIB1FILES)"!="" + @-$(TYPE) $(foreach,i,$(LIB1FILES) $(i:s/.lib/.lin/)) >> $(@:s/.lib/.lin/) +.ENDIF # "$(LIB1FILES)"!="" + @$(ECHONL) +.ENDIF # "$(LIB1FILES)"!="" +.ELSE # "$(GUI)"=="WNT" + @-$(RM) $@ + .IF "$(VERBOSE)" == "TRUE" + @echo $(LIBMGR) r $@ $(LIB1OBJFILES) + .ENDIF + $(COMMAND_ECHO)$(LIBMGR) r $@ $(LIB1OBJFILES) $(LIB1FILES) bla.lib +.ENDIF # "$(GUI)"=="WNT" +.ENDIF # "$(GUI)"=="UNX" +.ENDIF # "$(LIB1TARGET)" != "" + +# Anweisungen fuer das LIBTARGETs +# unroll begin + +.IF "$(LIB2TARGET)" != "" +.IF "$(LIB2ARCHIV)" != "" + +$(LIB2ARCHIV) : $(LIB2TARGET) + @echo "Making: " $(@:f) + @@-$(RM) $@ +.IF "$(GUI)"=="UNX" + @-$(RM) $(MISC)/$(LIB2ARCHIV:b).cmd + @echo $(LIBMGR) $(LIB2FLAGS) $(LIBFLAGS) $(LIB2ARCHIV) `cat $(LIB2TARGET) | sed s\#'^'$(ROUT)\#$(PRJ)/$(ROUT)\#g` > $(MISC)/$(LIB2ARCHIV:b).cmd +.IF "$(OS)$(COM)"=="NETBSDGCC" + @echo ranlib $(LIB2ARCHIV) >> $(MISC)/$(LIB2ARCHIV:b).cmd +.ENDIF +.IF "$(OS)" == "MACOSX" + @echo ranlib $(LIB2ARCHIV) >> $(MISC)/$(LIB2ARCHIV:b).cmd +.ENDIF +.IF "$(VERBOSE)" == "TRUE" + @cat $(MISC)/$(LIB2ARCHIV:b).cmd +.ENDIF + @+source $(MISC)/$(LIB2ARCHIV:b).cmd +.ELSE # "$(GUI)"=="UNX" +.IF "$(GUI)$(COM)"=="WNTGCC" + @+-$(RM) $(MISC)/$(LIB2ARCHIV:b).cmd + @+echo $(LIBMGR) $(LIB2FLAGS) $(LIBFLAGS) $(LIB2ARCHIV) `cat $(LIB2TARGET) | sed s#'^'$(ROUT)#$(PRJ)/$(ROUT)#g` > $(MISC)/$(LIB2ARCHIV:b).cmd + @+echo $(RANLIB) $(LIB2ARCHIV) >> $(MISC)/$(LIB2ARCHIV:b).cmd +.IF "$(VERBOSE)" == "TRUE" + @cat $(MISC)/$(LIB2ARCHIV:b).cmd +.ENDIF + @+source $(MISC)/$(LIB2ARCHIV:b).cmd +.ELSE + @echo just a dummy > $@ +.ENDIF # "$(GUI)$(COM)"=="WNTGCC" +.ENDIF # "$(GUI)"=="UNX" + +.ENDIF # "$(LIB2ARCHIV)" != "" + +$(LIB2TARGET) : $(LIB2FILES) \ + $(LIB2OBJFILES) \ + $(LIB2DEPN) +.IF "$(VERBOSE)" == "TRUE" + @echo ------------------------------ + @echo using: $(LIB2FILES) + @echo using: $(LIB2TARGET) + @echo ------------------------------ +.ENDIF + @echo "Making: " $(@:f) + @@-$(RM) $@ +.IF "$(GUI)"=="UNX" + @echo $(LIB2OBJFILES:s/.obj/.o/) | sed "s#$(PRJ:s/./\./)/$(ROUT)#$(ROUT)#g" | xargs -n 1 > $@ + @cat /dev/null $(LIB2FILES:s/.obj/.o/) | xargs -n 1 >> $@ + @$(RM) $(@:d)$(@:b).dump +.IF "$(OS)"=="MACOSX" + @-nm `cat $(LIB2TARGET) | sed s\#'^'$(ROUT)\#$(PRJ)/$(ROUT)\#g` > $(@:d)$(@:b).dump +.ELSE + @nm `cat $(LIB2TARGET) | sed s\#'^'$(ROUT)\#$(PRJ)/$(ROUT)\#g` > $(@:d)$(@:b).dump +.ENDIF + +.ELSE # "$(GUI)"=="UNX" +.IF "$(GUI)"=="WNT" +.IF "$(COM)"=="GCC" + +$(ECHONL) $(LIB2OBJFILES) | sed "s#$(PRJ:s/././)/$(ROUT)#$(ROUT)#g" | xargs -n1 > $@ + @+cat /dev/null $(LIB2FILES) | xargs -n1 >> $@ +.ELSE + $(COMMAND_ECHO)$(LIBMGR) $(LIBFLAGS) /OUT:$@ @$(mktmp $(LIB2FILES) $(LIB2OBJFILES)) + @-$(RM) $(@:s/.lib/.lin/) +.IF "$(LIB2OBJFILES)"!="" + @$(TYPE) $(mktmp $(LIB2OBJFILES)) > $(null,$(LIB2OBJFILES) $(NULLDEV) $(@:s/.lib/.lin/)) +.ENDIF # "$(LIB2OBJFILES)"!="" +.IF "$(LIB2FILES)"!="" + @-$(TYPE) $(foreach,i,$(LIB2FILES) $(i:s/.lib/.lin/)) >> $(@:s/.lib/.lin/) +.ENDIF # "$(LIB2FILES)"!="" + @$(ECHONL) +.ENDIF # "$(LIB2FILES)"!="" +.ELSE # "$(GUI)"=="WNT" + @-$(RM) $@ + .IF "$(VERBOSE)" == "TRUE" + @echo $(LIBMGR) r $@ $(LIB2OBJFILES) + .ENDIF + $(COMMAND_ECHO)$(LIBMGR) r $@ $(LIB2OBJFILES) $(LIB2FILES) bla.lib +.ENDIF # "$(GUI)"=="WNT" +.ENDIF # "$(GUI)"=="UNX" +.ENDIF # "$(LIB2TARGET)" != "" + +# Anweisungen fuer das LIBTARGETs +# unroll begin + +.IF "$(LIB3TARGET)" != "" +.IF "$(LIB3ARCHIV)" != "" + +$(LIB3ARCHIV) : $(LIB3TARGET) + @echo "Making: " $(@:f) + @@-$(RM) $@ +.IF "$(GUI)"=="UNX" + @-$(RM) $(MISC)/$(LIB3ARCHIV:b).cmd + @echo $(LIBMGR) $(LIB3FLAGS) $(LIBFLAGS) $(LIB3ARCHIV) `cat $(LIB3TARGET) | sed s\#'^'$(ROUT)\#$(PRJ)/$(ROUT)\#g` > $(MISC)/$(LIB3ARCHIV:b).cmd +.IF "$(OS)$(COM)"=="NETBSDGCC" + @echo ranlib $(LIB3ARCHIV) >> $(MISC)/$(LIB3ARCHIV:b).cmd +.ENDIF +.IF "$(OS)" == "MACOSX" + @echo ranlib $(LIB3ARCHIV) >> $(MISC)/$(LIB3ARCHIV:b).cmd +.ENDIF +.IF "$(VERBOSE)" == "TRUE" + @cat $(MISC)/$(LIB3ARCHIV:b).cmd +.ENDIF + @+source $(MISC)/$(LIB3ARCHIV:b).cmd +.ELSE # "$(GUI)"=="UNX" +.IF "$(GUI)$(COM)"=="WNTGCC" + @+-$(RM) $(MISC)/$(LIB3ARCHIV:b).cmd + @+echo $(LIBMGR) $(LIB3FLAGS) $(LIBFLAGS) $(LIB3ARCHIV) `cat $(LIB3TARGET) | sed s#'^'$(ROUT)#$(PRJ)/$(ROUT)#g` > $(MISC)/$(LIB3ARCHIV:b).cmd + @+echo $(RANLIB) $(LIB3ARCHIV) >> $(MISC)/$(LIB3ARCHIV:b).cmd +.IF "$(VERBOSE)" == "TRUE" + @cat $(MISC)/$(LIB3ARCHIV:b).cmd +.ENDIF + @+source $(MISC)/$(LIB3ARCHIV:b).cmd +.ELSE + @echo just a dummy > $@ +.ENDIF # "$(GUI)$(COM)"=="WNTGCC" +.ENDIF # "$(GUI)"=="UNX" + +.ENDIF # "$(LIB3ARCHIV)" != "" + +$(LIB3TARGET) : $(LIB3FILES) \ + $(LIB3OBJFILES) \ + $(LIB3DEPN) +.IF "$(VERBOSE)" == "TRUE" + @echo ------------------------------ + @echo using: $(LIB3FILES) + @echo using: $(LIB3TARGET) + @echo ------------------------------ +.ENDIF + @echo "Making: " $(@:f) + @@-$(RM) $@ +.IF "$(GUI)"=="UNX" + @echo $(LIB3OBJFILES:s/.obj/.o/) | sed "s#$(PRJ:s/./\./)/$(ROUT)#$(ROUT)#g" | xargs -n 1 > $@ + @cat /dev/null $(LIB3FILES:s/.obj/.o/) | xargs -n 1 >> $@ + @$(RM) $(@:d)$(@:b).dump +.IF "$(OS)"=="MACOSX" + @-nm `cat $(LIB3TARGET) | sed s\#'^'$(ROUT)\#$(PRJ)/$(ROUT)\#g` > $(@:d)$(@:b).dump +.ELSE + @nm `cat $(LIB3TARGET) | sed s\#'^'$(ROUT)\#$(PRJ)/$(ROUT)\#g` > $(@:d)$(@:b).dump +.ENDIF + +.ELSE # "$(GUI)"=="UNX" +.IF "$(GUI)"=="WNT" +.IF "$(COM)"=="GCC" + +$(ECHONL) $(LIB3OBJFILES) | sed "s#$(PRJ:s/././)/$(ROUT)#$(ROUT)#g" | xargs -n1 > $@ + @+cat /dev/null $(LIB3FILES) | xargs -n1 >> $@ +.ELSE + $(COMMAND_ECHO)$(LIBMGR) $(LIBFLAGS) /OUT:$@ @$(mktmp $(LIB3FILES) $(LIB3OBJFILES)) + @-$(RM) $(@:s/.lib/.lin/) +.IF "$(LIB3OBJFILES)"!="" + @$(TYPE) $(mktmp $(LIB3OBJFILES)) > $(null,$(LIB3OBJFILES) $(NULLDEV) $(@:s/.lib/.lin/)) +.ENDIF # "$(LIB3OBJFILES)"!="" +.IF "$(LIB3FILES)"!="" + @-$(TYPE) $(foreach,i,$(LIB3FILES) $(i:s/.lib/.lin/)) >> $(@:s/.lib/.lin/) +.ENDIF # "$(LIB3FILES)"!="" + @$(ECHONL) +.ENDIF # "$(LIB3FILES)"!="" +.ELSE # "$(GUI)"=="WNT" + @-$(RM) $@ + .IF "$(VERBOSE)" == "TRUE" + @echo $(LIBMGR) r $@ $(LIB3OBJFILES) + .ENDIF + $(COMMAND_ECHO)$(LIBMGR) r $@ $(LIB3OBJFILES) $(LIB3FILES) bla.lib +.ENDIF # "$(GUI)"=="WNT" +.ENDIF # "$(GUI)"=="UNX" +.ENDIF # "$(LIB3TARGET)" != "" + +# Anweisungen fuer das LIBTARGETs +# unroll begin + +.IF "$(LIB4TARGET)" != "" +.IF "$(LIB4ARCHIV)" != "" + +$(LIB4ARCHIV) : $(LIB4TARGET) + @echo "Making: " $(@:f) + @@-$(RM) $@ +.IF "$(GUI)"=="UNX" + @-$(RM) $(MISC)/$(LIB4ARCHIV:b).cmd + @echo $(LIBMGR) $(LIB4FLAGS) $(LIBFLAGS) $(LIB4ARCHIV) `cat $(LIB4TARGET) | sed s\#'^'$(ROUT)\#$(PRJ)/$(ROUT)\#g` > $(MISC)/$(LIB4ARCHIV:b).cmd +.IF "$(OS)$(COM)"=="NETBSDGCC" + @echo ranlib $(LIB4ARCHIV) >> $(MISC)/$(LIB4ARCHIV:b).cmd +.ENDIF +.IF "$(OS)" == "MACOSX" + @echo ranlib $(LIB4ARCHIV) >> $(MISC)/$(LIB4ARCHIV:b).cmd +.ENDIF +.IF "$(VERBOSE)" == "TRUE" + @cat $(MISC)/$(LIB4ARCHIV:b).cmd +.ENDIF + @+source $(MISC)/$(LIB4ARCHIV:b).cmd +.ELSE # "$(GUI)"=="UNX" +.IF "$(GUI)$(COM)"=="WNTGCC" + @+-$(RM) $(MISC)/$(LIB4ARCHIV:b).cmd + @+echo $(LIBMGR) $(LIB4FLAGS) $(LIBFLAGS) $(LIB4ARCHIV) `cat $(LIB4TARGET) | sed s#'^'$(ROUT)#$(PRJ)/$(ROUT)#g` > $(MISC)/$(LIB4ARCHIV:b).cmd + @+echo $(RANLIB) $(LIB4ARCHIV) >> $(MISC)/$(LIB4ARCHIV:b).cmd +.IF "$(VERBOSE)" == "TRUE" + @cat $(MISC)/$(LIB4ARCHIV:b).cmd +.ENDIF + @+source $(MISC)/$(LIB4ARCHIV:b).cmd +.ELSE + @echo just a dummy > $@ +.ENDIF # "$(GUI)$(COM)"=="WNTGCC" +.ENDIF # "$(GUI)"=="UNX" + +.ENDIF # "$(LIB4ARCHIV)" != "" + +$(LIB4TARGET) : $(LIB4FILES) \ + $(LIB4OBJFILES) \ + $(LIB4DEPN) +.IF "$(VERBOSE)" == "TRUE" + @echo ------------------------------ + @echo using: $(LIB4FILES) + @echo using: $(LIB4TARGET) + @echo ------------------------------ +.ENDIF + @echo "Making: " $(@:f) + @@-$(RM) $@ +.IF "$(GUI)"=="UNX" + @echo $(LIB4OBJFILES:s/.obj/.o/) | sed "s#$(PRJ:s/./\./)/$(ROUT)#$(ROUT)#g" | xargs -n 1 > $@ + @cat /dev/null $(LIB4FILES:s/.obj/.o/) | xargs -n 1 >> $@ + @$(RM) $(@:d)$(@:b).dump +.IF "$(OS)"=="MACOSX" + @-nm `cat $(LIB4TARGET) | sed s\#'^'$(ROUT)\#$(PRJ)/$(ROUT)\#g` > $(@:d)$(@:b).dump +.ELSE + @nm `cat $(LIB4TARGET) | sed s\#'^'$(ROUT)\#$(PRJ)/$(ROUT)\#g` > $(@:d)$(@:b).dump +.ENDIF + +.ELSE # "$(GUI)"=="UNX" +.IF "$(GUI)"=="WNT" +.IF "$(COM)"=="GCC" + +$(ECHONL) $(LIB4OBJFILES) | sed "s#$(PRJ:s/././)/$(ROUT)#$(ROUT)#g" | xargs -n1 > $@ + @+cat /dev/null $(LIB4FILES) | xargs -n1 >> $@ +.ELSE + $(COMMAND_ECHO)$(LIBMGR) $(LIBFLAGS) /OUT:$@ @$(mktmp $(LIB4FILES) $(LIB4OBJFILES)) + @-$(RM) $(@:s/.lib/.lin/) +.IF "$(LIB4OBJFILES)"!="" + @$(TYPE) $(mktmp $(LIB4OBJFILES)) > $(null,$(LIB4OBJFILES) $(NULLDEV) $(@:s/.lib/.lin/)) +.ENDIF # "$(LIB4OBJFILES)"!="" +.IF "$(LIB4FILES)"!="" + @-$(TYPE) $(foreach,i,$(LIB4FILES) $(i:s/.lib/.lin/)) >> $(@:s/.lib/.lin/) +.ENDIF # "$(LIB4FILES)"!="" + @$(ECHONL) +.ENDIF # "$(LIB4FILES)"!="" +.ELSE # "$(GUI)"=="WNT" + @-$(RM) $@ + .IF "$(VERBOSE)" == "TRUE" + @echo $(LIBMGR) r $@ $(LIB4OBJFILES) + .ENDIF + $(COMMAND_ECHO)$(LIBMGR) r $@ $(LIB4OBJFILES) $(LIB4FILES) bla.lib +.ENDIF # "$(GUI)"=="WNT" +.ENDIF # "$(GUI)"=="UNX" +.ENDIF # "$(LIB4TARGET)" != "" + +# Anweisungen fuer das LIBTARGETs +# unroll begin + +.IF "$(LIB5TARGET)" != "" +.IF "$(LIB5ARCHIV)" != "" + +$(LIB5ARCHIV) : $(LIB5TARGET) + @echo "Making: " $(@:f) + @@-$(RM) $@ +.IF "$(GUI)"=="UNX" + @-$(RM) $(MISC)/$(LIB5ARCHIV:b).cmd + @echo $(LIBMGR) $(LIB5FLAGS) $(LIBFLAGS) $(LIB5ARCHIV) `cat $(LIB5TARGET) | sed s\#'^'$(ROUT)\#$(PRJ)/$(ROUT)\#g` > $(MISC)/$(LIB5ARCHIV:b).cmd +.IF "$(OS)$(COM)"=="NETBSDGCC" + @echo ranlib $(LIB5ARCHIV) >> $(MISC)/$(LIB5ARCHIV:b).cmd +.ENDIF +.IF "$(OS)" == "MACOSX" + @echo ranlib $(LIB5ARCHIV) >> $(MISC)/$(LIB5ARCHIV:b).cmd +.ENDIF +.IF "$(VERBOSE)" == "TRUE" + @cat $(MISC)/$(LIB5ARCHIV:b).cmd +.ENDIF + @+source $(MISC)/$(LIB5ARCHIV:b).cmd +.ELSE # "$(GUI)"=="UNX" +.IF "$(GUI)$(COM)"=="WNTGCC" + @+-$(RM) $(MISC)/$(LIB5ARCHIV:b).cmd + @+echo $(LIBMGR) $(LIB5FLAGS) $(LIBFLAGS) $(LIB5ARCHIV) `cat $(LIB5TARGET) | sed s#'^'$(ROUT)#$(PRJ)/$(ROUT)#g` > $(MISC)/$(LIB5ARCHIV:b).cmd + @+echo $(RANLIB) $(LIB5ARCHIV) >> $(MISC)/$(LIB5ARCHIV:b).cmd +.IF "$(VERBOSE)" == "TRUE" + @cat $(MISC)/$(LIB5ARCHIV:b).cmd +.ENDIF + @+source $(MISC)/$(LIB5ARCHIV:b).cmd +.ELSE + @echo just a dummy > $@ +.ENDIF # "$(GUI)$(COM)"=="WNTGCC" +.ENDIF # "$(GUI)"=="UNX" + +.ENDIF # "$(LIB5ARCHIV)" != "" + +$(LIB5TARGET) : $(LIB5FILES) \ + $(LIB5OBJFILES) \ + $(LIB5DEPN) +.IF "$(VERBOSE)" == "TRUE" + @echo ------------------------------ + @echo using: $(LIB5FILES) + @echo using: $(LIB5TARGET) + @echo ------------------------------ +.ENDIF + @echo "Making: " $(@:f) + @@-$(RM) $@ +.IF "$(GUI)"=="UNX" + @echo $(LIB5OBJFILES:s/.obj/.o/) | sed "s#$(PRJ:s/./\./)/$(ROUT)#$(ROUT)#g" | xargs -n 1 > $@ + @cat /dev/null $(LIB5FILES:s/.obj/.o/) | xargs -n 1 >> $@ + @$(RM) $(@:d)$(@:b).dump +.IF "$(OS)"=="MACOSX" + @-nm `cat $(LIB5TARGET) | sed s\#'^'$(ROUT)\#$(PRJ)/$(ROUT)\#g` > $(@:d)$(@:b).dump +.ELSE + @nm `cat $(LIB5TARGET) | sed s\#'^'$(ROUT)\#$(PRJ)/$(ROUT)\#g` > $(@:d)$(@:b).dump +.ENDIF + +.ELSE # "$(GUI)"=="UNX" +.IF "$(GUI)"=="WNT" +.IF "$(COM)"=="GCC" + +$(ECHONL) $(LIB5OBJFILES) | sed "s#$(PRJ:s/././)/$(ROUT)#$(ROUT)#g" | xargs -n1 > $@ + @+cat /dev/null $(LIB5FILES) | xargs -n1 >> $@ +.ELSE + $(COMMAND_ECHO)$(LIBMGR) $(LIBFLAGS) /OUT:$@ @$(mktmp $(LIB5FILES) $(LIB5OBJFILES)) + @-$(RM) $(@:s/.lib/.lin/) +.IF "$(LIB5OBJFILES)"!="" + @$(TYPE) $(mktmp $(LIB5OBJFILES)) > $(null,$(LIB5OBJFILES) $(NULLDEV) $(@:s/.lib/.lin/)) +.ENDIF # "$(LIB5OBJFILES)"!="" +.IF "$(LIB5FILES)"!="" + @-$(TYPE) $(foreach,i,$(LIB5FILES) $(i:s/.lib/.lin/)) >> $(@:s/.lib/.lin/) +.ENDIF # "$(LIB5FILES)"!="" + @$(ECHONL) +.ENDIF # "$(LIB5FILES)"!="" +.ELSE # "$(GUI)"=="WNT" + @-$(RM) $@ + .IF "$(VERBOSE)" == "TRUE" + @echo $(LIBMGR) r $@ $(LIB5OBJFILES) + .ENDIF + $(COMMAND_ECHO)$(LIBMGR) r $@ $(LIB5OBJFILES) $(LIB5FILES) bla.lib +.ENDIF # "$(GUI)"=="WNT" +.ENDIF # "$(GUI)"=="UNX" +.ENDIF # "$(LIB5TARGET)" != "" + +# Anweisungen fuer das LIBTARGETs +# unroll begin + +.IF "$(LIB6TARGET)" != "" +.IF "$(LIB6ARCHIV)" != "" + +$(LIB6ARCHIV) : $(LIB6TARGET) + @echo "Making: " $(@:f) + @@-$(RM) $@ +.IF "$(GUI)"=="UNX" + @-$(RM) $(MISC)/$(LIB6ARCHIV:b).cmd + @echo $(LIBMGR) $(LIB6FLAGS) $(LIBFLAGS) $(LIB6ARCHIV) `cat $(LIB6TARGET) | sed s\#'^'$(ROUT)\#$(PRJ)/$(ROUT)\#g` > $(MISC)/$(LIB6ARCHIV:b).cmd +.IF "$(OS)$(COM)"=="NETBSDGCC" + @echo ranlib $(LIB6ARCHIV) >> $(MISC)/$(LIB6ARCHIV:b).cmd +.ENDIF +.IF "$(OS)" == "MACOSX" + @echo ranlib $(LIB6ARCHIV) >> $(MISC)/$(LIB6ARCHIV:b).cmd +.ENDIF +.IF "$(VERBOSE)" == "TRUE" + @cat $(MISC)/$(LIB6ARCHIV:b).cmd +.ENDIF + @+source $(MISC)/$(LIB6ARCHIV:b).cmd +.ELSE # "$(GUI)"=="UNX" +.IF "$(GUI)$(COM)"=="WNTGCC" + @+-$(RM) $(MISC)/$(LIB6ARCHIV:b).cmd + @+echo $(LIBMGR) $(LIB6FLAGS) $(LIBFLAGS) $(LIB6ARCHIV) `cat $(LIB6TARGET) | sed s#'^'$(ROUT)#$(PRJ)/$(ROUT)#g` > $(MISC)/$(LIB6ARCHIV:b).cmd + @+echo $(RANLIB) $(LIB6ARCHIV) >> $(MISC)/$(LIB6ARCHIV:b).cmd +.IF "$(VERBOSE)" == "TRUE" + @cat $(MISC)/$(LIB6ARCHIV:b).cmd +.ENDIF + @+source $(MISC)/$(LIB6ARCHIV:b).cmd +.ELSE + @echo just a dummy > $@ +.ENDIF # "$(GUI)$(COM)"=="WNTGCC" +.ENDIF # "$(GUI)"=="UNX" + +.ENDIF # "$(LIB6ARCHIV)" != "" + +$(LIB6TARGET) : $(LIB6FILES) \ + $(LIB6OBJFILES) \ + $(LIB6DEPN) +.IF "$(VERBOSE)" == "TRUE" + @echo ------------------------------ + @echo using: $(LIB6FILES) + @echo using: $(LIB6TARGET) + @echo ------------------------------ +.ENDIF + @echo "Making: " $(@:f) + @@-$(RM) $@ +.IF "$(GUI)"=="UNX" + @echo $(LIB6OBJFILES:s/.obj/.o/) | sed "s#$(PRJ:s/./\./)/$(ROUT)#$(ROUT)#g" | xargs -n 1 > $@ + @cat /dev/null $(LIB6FILES:s/.obj/.o/) | xargs -n 1 >> $@ + @$(RM) $(@:d)$(@:b).dump +.IF "$(OS)"=="MACOSX" + @-nm `cat $(LIB6TARGET) | sed s\#'^'$(ROUT)\#$(PRJ)/$(ROUT)\#g` > $(@:d)$(@:b).dump +.ELSE + @nm `cat $(LIB6TARGET) | sed s\#'^'$(ROUT)\#$(PRJ)/$(ROUT)\#g` > $(@:d)$(@:b).dump +.ENDIF + +.ELSE # "$(GUI)"=="UNX" +.IF "$(GUI)"=="WNT" +.IF "$(COM)"=="GCC" + +$(ECHONL) $(LIB6OBJFILES) | sed "s#$(PRJ:s/././)/$(ROUT)#$(ROUT)#g" | xargs -n1 > $@ + @+cat /dev/null $(LIB6FILES) | xargs -n1 >> $@ +.ELSE + $(COMMAND_ECHO)$(LIBMGR) $(LIBFLAGS) /OUT:$@ @$(mktmp $(LIB6FILES) $(LIB6OBJFILES)) + @-$(RM) $(@:s/.lib/.lin/) +.IF "$(LIB6OBJFILES)"!="" + @$(TYPE) $(mktmp $(LIB6OBJFILES)) > $(null,$(LIB6OBJFILES) $(NULLDEV) $(@:s/.lib/.lin/)) +.ENDIF # "$(LIB6OBJFILES)"!="" +.IF "$(LIB6FILES)"!="" + @-$(TYPE) $(foreach,i,$(LIB6FILES) $(i:s/.lib/.lin/)) >> $(@:s/.lib/.lin/) +.ENDIF # "$(LIB6FILES)"!="" + @$(ECHONL) +.ENDIF # "$(LIB6FILES)"!="" +.ELSE # "$(GUI)"=="WNT" + @-$(RM) $@ + .IF "$(VERBOSE)" == "TRUE" + @echo $(LIBMGR) r $@ $(LIB6OBJFILES) + .ENDIF + $(COMMAND_ECHO)$(LIBMGR) r $@ $(LIB6OBJFILES) $(LIB6FILES) bla.lib +.ENDIF # "$(GUI)"=="WNT" +.ENDIF # "$(GUI)"=="UNX" +.ENDIF # "$(LIB6TARGET)" != "" + +# Anweisungen fuer das LIBTARGETs +# unroll begin + +.IF "$(LIB7TARGET)" != "" +.IF "$(LIB7ARCHIV)" != "" + +$(LIB7ARCHIV) : $(LIB7TARGET) + @echo "Making: " $(@:f) + @@-$(RM) $@ +.IF "$(GUI)"=="UNX" + @-$(RM) $(MISC)/$(LIB7ARCHIV:b).cmd + @echo $(LIBMGR) $(LIB7FLAGS) $(LIBFLAGS) $(LIB7ARCHIV) `cat $(LIB7TARGET) | sed s\#'^'$(ROUT)\#$(PRJ)/$(ROUT)\#g` > $(MISC)/$(LIB7ARCHIV:b).cmd +.IF "$(OS)$(COM)"=="NETBSDGCC" + @echo ranlib $(LIB7ARCHIV) >> $(MISC)/$(LIB7ARCHIV:b).cmd +.ENDIF +.IF "$(OS)" == "MACOSX" + @echo ranlib $(LIB7ARCHIV) >> $(MISC)/$(LIB7ARCHIV:b).cmd +.ENDIF +.IF "$(VERBOSE)" == "TRUE" + @cat $(MISC)/$(LIB7ARCHIV:b).cmd +.ENDIF + @+source $(MISC)/$(LIB7ARCHIV:b).cmd +.ELSE # "$(GUI)"=="UNX" +.IF "$(GUI)$(COM)"=="WNTGCC" + @+-$(RM) $(MISC)/$(LIB7ARCHIV:b).cmd + @+echo $(LIBMGR) $(LIB7FLAGS) $(LIBFLAGS) $(LIB7ARCHIV) `cat $(LIB7TARGET) | sed s#'^'$(ROUT)#$(PRJ)/$(ROUT)#g` > $(MISC)/$(LIB7ARCHIV:b).cmd + @+echo $(RANLIB) $(LIB7ARCHIV) >> $(MISC)/$(LIB7ARCHIV:b).cmd +.IF "$(VERBOSE)" == "TRUE" + @cat $(MISC)/$(LIB7ARCHIV:b).cmd +.ENDIF + @+source $(MISC)/$(LIB7ARCHIV:b).cmd +.ELSE + @echo just a dummy > $@ +.ENDIF # "$(GUI)$(COM)"=="WNTGCC" +.ENDIF # "$(GUI)"=="UNX" + +.ENDIF # "$(LIB7ARCHIV)" != "" + +$(LIB7TARGET) : $(LIB7FILES) \ + $(LIB7OBJFILES) \ + $(LIB7DEPN) +.IF "$(VERBOSE)" == "TRUE" + @echo ------------------------------ + @echo using: $(LIB7FILES) + @echo using: $(LIB7TARGET) + @echo ------------------------------ +.ENDIF + @echo "Making: " $(@:f) + @@-$(RM) $@ +.IF "$(GUI)"=="UNX" + @echo $(LIB7OBJFILES:s/.obj/.o/) | sed "s#$(PRJ:s/./\./)/$(ROUT)#$(ROUT)#g" | xargs -n 1 > $@ + @cat /dev/null $(LIB7FILES:s/.obj/.o/) | xargs -n 1 >> $@ + @$(RM) $(@:d)$(@:b).dump +.IF "$(OS)"=="MACOSX" + @-nm `cat $(LIB7TARGET) | sed s\#'^'$(ROUT)\#$(PRJ)/$(ROUT)\#g` > $(@:d)$(@:b).dump +.ELSE + @nm `cat $(LIB7TARGET) | sed s\#'^'$(ROUT)\#$(PRJ)/$(ROUT)\#g` > $(@:d)$(@:b).dump +.ENDIF + +.ELSE # "$(GUI)"=="UNX" +.IF "$(GUI)"=="WNT" +.IF "$(COM)"=="GCC" + +$(ECHONL) $(LIB7OBJFILES) | sed "s#$(PRJ:s/././)/$(ROUT)#$(ROUT)#g" | xargs -n1 > $@ + @+cat /dev/null $(LIB7FILES) | xargs -n1 >> $@ +.ELSE + $(COMMAND_ECHO)$(LIBMGR) $(LIBFLAGS) /OUT:$@ @$(mktmp $(LIB7FILES) $(LIB7OBJFILES)) + @-$(RM) $(@:s/.lib/.lin/) +.IF "$(LIB7OBJFILES)"!="" + @$(TYPE) $(mktmp $(LIB7OBJFILES)) > $(null,$(LIB7OBJFILES) $(NULLDEV) $(@:s/.lib/.lin/)) +.ENDIF # "$(LIB7OBJFILES)"!="" +.IF "$(LIB7FILES)"!="" + @-$(TYPE) $(foreach,i,$(LIB7FILES) $(i:s/.lib/.lin/)) >> $(@:s/.lib/.lin/) +.ENDIF # "$(LIB7FILES)"!="" + @$(ECHONL) +.ENDIF # "$(LIB7FILES)"!="" +.ELSE # "$(GUI)"=="WNT" + @-$(RM) $@ + .IF "$(VERBOSE)" == "TRUE" + @echo $(LIBMGR) r $@ $(LIB7OBJFILES) + .ENDIF + $(COMMAND_ECHO)$(LIBMGR) r $@ $(LIB7OBJFILES) $(LIB7FILES) bla.lib +.ENDIF # "$(GUI)"=="WNT" +.ENDIF # "$(GUI)"=="UNX" +.ENDIF # "$(LIB7TARGET)" != "" + +# Anweisungen fuer das LIBTARGETs +# unroll begin + +.IF "$(LIB8TARGET)" != "" +.IF "$(LIB8ARCHIV)" != "" + +$(LIB8ARCHIV) : $(LIB8TARGET) + @echo "Making: " $(@:f) + @@-$(RM) $@ +.IF "$(GUI)"=="UNX" + @-$(RM) $(MISC)/$(LIB8ARCHIV:b).cmd + @echo $(LIBMGR) $(LIB8FLAGS) $(LIBFLAGS) $(LIB8ARCHIV) `cat $(LIB8TARGET) | sed s\#'^'$(ROUT)\#$(PRJ)/$(ROUT)\#g` > $(MISC)/$(LIB8ARCHIV:b).cmd +.IF "$(OS)$(COM)"=="NETBSDGCC" + @echo ranlib $(LIB8ARCHIV) >> $(MISC)/$(LIB8ARCHIV:b).cmd +.ENDIF +.IF "$(OS)" == "MACOSX" + @echo ranlib $(LIB8ARCHIV) >> $(MISC)/$(LIB8ARCHIV:b).cmd +.ENDIF +.IF "$(VERBOSE)" == "TRUE" + @cat $(MISC)/$(LIB8ARCHIV:b).cmd +.ENDIF + @+source $(MISC)/$(LIB8ARCHIV:b).cmd +.ELSE # "$(GUI)"=="UNX" +.IF "$(GUI)$(COM)"=="WNTGCC" + @+-$(RM) $(MISC)/$(LIB8ARCHIV:b).cmd + @+echo $(LIBMGR) $(LIB8FLAGS) $(LIBFLAGS) $(LIB8ARCHIV) `cat $(LIB8TARGET) | sed s#'^'$(ROUT)#$(PRJ)/$(ROUT)#g` > $(MISC)/$(LIB8ARCHIV:b).cmd + @+echo $(RANLIB) $(LIB8ARCHIV) >> $(MISC)/$(LIB8ARCHIV:b).cmd +.IF "$(VERBOSE)" == "TRUE" + @cat $(MISC)/$(LIB8ARCHIV:b).cmd +.ENDIF + @+source $(MISC)/$(LIB8ARCHIV:b).cmd +.ELSE + @echo just a dummy > $@ +.ENDIF # "$(GUI)$(COM)"=="WNTGCC" +.ENDIF # "$(GUI)"=="UNX" + +.ENDIF # "$(LIB8ARCHIV)" != "" + +$(LIB8TARGET) : $(LIB8FILES) \ + $(LIB8OBJFILES) \ + $(LIB8DEPN) +.IF "$(VERBOSE)" == "TRUE" + @echo ------------------------------ + @echo using: $(LIB8FILES) + @echo using: $(LIB8TARGET) + @echo ------------------------------ +.ENDIF + @echo "Making: " $(@:f) + @@-$(RM) $@ +.IF "$(GUI)"=="UNX" + @echo $(LIB8OBJFILES:s/.obj/.o/) | sed "s#$(PRJ:s/./\./)/$(ROUT)#$(ROUT)#g" | xargs -n 1 > $@ + @cat /dev/null $(LIB8FILES:s/.obj/.o/) | xargs -n 1 >> $@ + @$(RM) $(@:d)$(@:b).dump +.IF "$(OS)"=="MACOSX" + @-nm `cat $(LIB8TARGET) | sed s\#'^'$(ROUT)\#$(PRJ)/$(ROUT)\#g` > $(@:d)$(@:b).dump +.ELSE + @nm `cat $(LIB8TARGET) | sed s\#'^'$(ROUT)\#$(PRJ)/$(ROUT)\#g` > $(@:d)$(@:b).dump +.ENDIF + +.ELSE # "$(GUI)"=="UNX" +.IF "$(GUI)"=="WNT" +.IF "$(COM)"=="GCC" + +$(ECHONL) $(LIB8OBJFILES) | sed "s#$(PRJ:s/././)/$(ROUT)#$(ROUT)#g" | xargs -n1 > $@ + @+cat /dev/null $(LIB8FILES) | xargs -n1 >> $@ +.ELSE + $(COMMAND_ECHO)$(LIBMGR) $(LIBFLAGS) /OUT:$@ @$(mktmp $(LIB8FILES) $(LIB8OBJFILES)) + @-$(RM) $(@:s/.lib/.lin/) +.IF "$(LIB8OBJFILES)"!="" + @$(TYPE) $(mktmp $(LIB8OBJFILES)) > $(null,$(LIB8OBJFILES) $(NULLDEV) $(@:s/.lib/.lin/)) +.ENDIF # "$(LIB8OBJFILES)"!="" +.IF "$(LIB8FILES)"!="" + @-$(TYPE) $(foreach,i,$(LIB8FILES) $(i:s/.lib/.lin/)) >> $(@:s/.lib/.lin/) +.ENDIF # "$(LIB8FILES)"!="" + @$(ECHONL) +.ENDIF # "$(LIB8FILES)"!="" +.ELSE # "$(GUI)"=="WNT" + @-$(RM) $@ + .IF "$(VERBOSE)" == "TRUE" + @echo $(LIBMGR) r $@ $(LIB8OBJFILES) + .ENDIF + $(COMMAND_ECHO)$(LIBMGR) r $@ $(LIB8OBJFILES) $(LIB8FILES) bla.lib +.ENDIF # "$(GUI)"=="WNT" +.ENDIF # "$(GUI)"=="UNX" +.ENDIF # "$(LIB8TARGET)" != "" + +# Anweisungen fuer das LIBTARGETs +# unroll begin + +.IF "$(LIB9TARGET)" != "" +.IF "$(LIB9ARCHIV)" != "" + +$(LIB9ARCHIV) : $(LIB9TARGET) + @echo "Making: " $(@:f) + @@-$(RM) $@ +.IF "$(GUI)"=="UNX" + @-$(RM) $(MISC)/$(LIB9ARCHIV:b).cmd + @echo $(LIBMGR) $(LIB9FLAGS) $(LIBFLAGS) $(LIB9ARCHIV) `cat $(LIB9TARGET) | sed s\#'^'$(ROUT)\#$(PRJ)/$(ROUT)\#g` > $(MISC)/$(LIB9ARCHIV:b).cmd +.IF "$(OS)$(COM)"=="NETBSDGCC" + @echo ranlib $(LIB9ARCHIV) >> $(MISC)/$(LIB9ARCHIV:b).cmd +.ENDIF +.IF "$(OS)" == "MACOSX" + @echo ranlib $(LIB9ARCHIV) >> $(MISC)/$(LIB9ARCHIV:b).cmd +.ENDIF +.IF "$(VERBOSE)" == "TRUE" + @cat $(MISC)/$(LIB9ARCHIV:b).cmd +.ENDIF + @+source $(MISC)/$(LIB9ARCHIV:b).cmd +.ELSE # "$(GUI)"=="UNX" +.IF "$(GUI)$(COM)"=="WNTGCC" + @+-$(RM) $(MISC)/$(LIB9ARCHIV:b).cmd + @+echo $(LIBMGR) $(LIB9FLAGS) $(LIBFLAGS) $(LIB9ARCHIV) `cat $(LIB9TARGET) | sed s#'^'$(ROUT)#$(PRJ)/$(ROUT)#g` > $(MISC)/$(LIB9ARCHIV:b).cmd + @+echo $(RANLIB) $(LIB9ARCHIV) >> $(MISC)/$(LIB9ARCHIV:b).cmd +.IF "$(VERBOSE)" == "TRUE" + @cat $(MISC)/$(LIB9ARCHIV:b).cmd +.ENDIF + @+source $(MISC)/$(LIB9ARCHIV:b).cmd +.ELSE + @echo just a dummy > $@ +.ENDIF # "$(GUI)$(COM)"=="WNTGCC" +.ENDIF # "$(GUI)"=="UNX" + +.ENDIF # "$(LIB9ARCHIV)" != "" + +$(LIB9TARGET) : $(LIB9FILES) \ + $(LIB9OBJFILES) \ + $(LIB9DEPN) +.IF "$(VERBOSE)" == "TRUE" + @echo ------------------------------ + @echo using: $(LIB9FILES) + @echo using: $(LIB9TARGET) + @echo ------------------------------ +.ENDIF + @echo "Making: " $(@:f) + @@-$(RM) $@ +.IF "$(GUI)"=="UNX" + @echo $(LIB9OBJFILES:s/.obj/.o/) | sed "s#$(PRJ:s/./\./)/$(ROUT)#$(ROUT)#g" | xargs -n 1 > $@ + @cat /dev/null $(LIB9FILES:s/.obj/.o/) | xargs -n 1 >> $@ + @$(RM) $(@:d)$(@:b).dump +.IF "$(OS)"=="MACOSX" + @-nm `cat $(LIB9TARGET) | sed s\#'^'$(ROUT)\#$(PRJ)/$(ROUT)\#g` > $(@:d)$(@:b).dump +.ELSE + @nm `cat $(LIB9TARGET) | sed s\#'^'$(ROUT)\#$(PRJ)/$(ROUT)\#g` > $(@:d)$(@:b).dump +.ENDIF + +.ELSE # "$(GUI)"=="UNX" +.IF "$(GUI)"=="WNT" +.IF "$(COM)"=="GCC" + +$(ECHONL) $(LIB9OBJFILES) | sed "s#$(PRJ:s/././)/$(ROUT)#$(ROUT)#g" | xargs -n1 > $@ + @+cat /dev/null $(LIB9FILES) | xargs -n1 >> $@ +.ELSE + $(COMMAND_ECHO)$(LIBMGR) $(LIBFLAGS) /OUT:$@ @$(mktmp $(LIB9FILES) $(LIB9OBJFILES)) + @-$(RM) $(@:s/.lib/.lin/) +.IF "$(LIB9OBJFILES)"!="" + @$(TYPE) $(mktmp $(LIB9OBJFILES)) > $(null,$(LIB9OBJFILES) $(NULLDEV) $(@:s/.lib/.lin/)) +.ENDIF # "$(LIB9OBJFILES)"!="" +.IF "$(LIB9FILES)"!="" + @-$(TYPE) $(foreach,i,$(LIB9FILES) $(i:s/.lib/.lin/)) >> $(@:s/.lib/.lin/) +.ENDIF # "$(LIB9FILES)"!="" + @$(ECHONL) +.ENDIF # "$(LIB9FILES)"!="" +.ELSE # "$(GUI)"=="WNT" + @-$(RM) $@ + .IF "$(VERBOSE)" == "TRUE" + @echo $(LIBMGR) r $@ $(LIB9OBJFILES) + .ENDIF + $(COMMAND_ECHO)$(LIBMGR) r $@ $(LIB9OBJFILES) $(LIB9FILES) bla.lib +.ENDIF # "$(GUI)"=="WNT" +.ENDIF # "$(GUI)"=="UNX" +.ENDIF # "$(LIB9TARGET)" != "" + +# Anweisungen fuer das LIBTARGETs +# unroll begin + +.IF "$(LIB10TARGET)" != "" +.IF "$(LIB10ARCHIV)" != "" + +$(LIB10ARCHIV) : $(LIB10TARGET) + @echo "Making: " $(@:f) + @@-$(RM) $@ +.IF "$(GUI)"=="UNX" + @-$(RM) $(MISC)/$(LIB10ARCHIV:b).cmd + @echo $(LIBMGR) $(LIB10FLAGS) $(LIBFLAGS) $(LIB10ARCHIV) `cat $(LIB10TARGET) | sed s\#'^'$(ROUT)\#$(PRJ)/$(ROUT)\#g` > $(MISC)/$(LIB10ARCHIV:b).cmd +.IF "$(OS)$(COM)"=="NETBSDGCC" + @echo ranlib $(LIB10ARCHIV) >> $(MISC)/$(LIB10ARCHIV:b).cmd +.ENDIF +.IF "$(OS)" == "MACOSX" + @echo ranlib $(LIB10ARCHIV) >> $(MISC)/$(LIB10ARCHIV:b).cmd +.ENDIF +.IF "$(VERBOSE)" == "TRUE" + @cat $(MISC)/$(LIB10ARCHIV:b).cmd +.ENDIF + @+source $(MISC)/$(LIB10ARCHIV:b).cmd +.ELSE # "$(GUI)"=="UNX" +.IF "$(GUI)$(COM)"=="WNTGCC" + @+-$(RM) $(MISC)/$(LIB10ARCHIV:b).cmd + @+echo $(LIBMGR) $(LIB10FLAGS) $(LIBFLAGS) $(LIB10ARCHIV) `cat $(LIB10TARGET) | sed s#'^'$(ROUT)#$(PRJ)/$(ROUT)#g` > $(MISC)/$(LIB10ARCHIV:b).cmd + @+echo ranlib $(LIB10ARCHIV) >> $(MISC)/$(LIB10ARCHIV:b).cmd +.IF "$(VERBOSE)" == "TRUE" + @cat $(MISC)/$(LIB10ARCHIV:b).cmd +.ENDIF + @+source $(MISC)/$(LIB10ARCHIV:b).cmd +.ELSE + @echo just a dummy > $@ +.ENDIF # "$(GUI)$(COM)"=="WNTGCC" +.ENDIF # "$(GUI)"=="UNX" + +.ENDIF # "$(LIB10ARCHIV)" != "" + +$(LIB10TARGET) : $(LIB10FILES) \ + $(LIB10OBJFILES) \ + $(LIB10DEPN) +.IF "$(VERBOSE)" == "TRUE" + @echo ------------------------------ + @echo using: $(LIB10FILES) + @echo using: $(LIB10TARGET) + @echo ------------------------------ +.ENDIF + @echo "Making: " $(@:f) + @@-$(RM) $@ +.IF "$(GUI)"=="UNX" + @echo $(LIB10OBJFILES:s/.obj/.o/) | sed "s#$(PRJ:s/./\./)/$(ROUT)#$(ROUT)#g" | xargs -n 1 > $@ + @cat /dev/null $(LIB10FILES:s/.obj/.o/) | xargs -n 1 >> $@ + @$(RM) $(@:d)$(@:b).dump +.IF "$(OS)"=="MACOSX" + @-nm `cat $(LIB10TARGET) | sed s\#'^'$(ROUT)\#$(PRJ)/$(ROUT)\#g` > $(@:d)$(@:b).dump +.ELSE + @nm `cat $(LIB10TARGET) | sed s\#'^'$(ROUT)\#$(PRJ)/$(ROUT)\#g` > $(@:d)$(@:b).dump +.ENDIF + +.ELSE # "$(GUI)"=="UNX" +.IF "$(GUI)"=="WNT" +.IF "$(COM)"=="GCC" + +$(ECHONL) $(LIB10OBJFILES) | sed "s#$(PRJ:s/././)/$(ROUT)#$(ROUT)#g" | xargs -n1 > $@ + @+cat /dev/null $(LIB10FILES) | xargs -n1 >> $@ +.ELSE + $(COMMAND_ECHO)$(LIBMGR) $(LIBFLAGS) /OUT:$@ @$(mktmp $(LIB10FILES) $(LIB10OBJFILES)) + @-$(RM) $(@:s/.lib/.lin/) +.IF "$(LIB10OBJFILES)"!="" + @$(TYPE) $(mktmp $(LIB10OBJFILES)) > $(null,$(LIB10OBJFILES) $(NULLDEV) $(@:s/.lib/.lin/)) +.ENDIF # "$(LIB10OBJFILES)"!="" +.IF "$(LIB10FILES)"!="" + @-$(TYPE) $(foreach,i,$(LIB10FILES) $(i:s/.lib/.lin/)) >> $(@:s/.lib/.lin/) +.ENDIF # "$(LIB10FILES)"!="" + @$(ECHONL) +.ENDIF # "$(LIB10FILES)"!="" +.ELSE # "$(GUI)"=="WNT" + @-$(RM) $@ + .IF "$(VERBOSE)" == "TRUE" + @echo $(LIBMGR) r $@ $(LIB10OBJFILES) + .ENDIF + $(COMMAND_ECHO)$(LIBMGR) r $@ $(LIB10OBJFILES) $(LIB10FILES) bla.lib +.ENDIF # "$(GUI)"=="WNT" +.ENDIF # "$(GUI)"=="UNX" +.ENDIF # "$(LIB10TARGET)" != "" + +# Anweisungen fuer das LIBTARGETs diff --git a/solenv/inc/_tg_rslb.mk b/solenv/inc/_tg_rslb.mk new file mode 100755 index 000000000000..1edebb8a04df --- /dev/null +++ b/solenv/inc/_tg_rslb.mk @@ -0,0 +1,610 @@ +# unroll begin + +.IF "$(RESLIB1TARGETN)"!="" + +$(RSC_MULTI1) : \ + $(RESLIB1SRSFILES) \ + $(RESLIB1TARGETN) \ + $(RESLIB1BMPS) + @echo Compiling: $(@:f) +.IF "$(common_build_reslib)"!="" + $(COMMAND_ECHO)$(RSC) -presponse $(VERBOSITY) @$(mktmp \ + -r -p \ + $(foreach,i,$(alllangiso) -lg$i \ + $(null,$(rescharset_{$i}) $(default$(LANG_GUI)) $(rescharset_{$i})) \ + -fs={$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(BIN))/$(RESLIB1NAME)$i.res} \ + $(foreach,j,$(subst,$(PRJ),$(SOLARDEFIMG)/$(PRJNAME) $(RESLIB1IMAGES)) -lip={$j}/$i \ + -lip={$j} ) \ + -lip=$(SOLARDEFIMG)/res/$i -lip=$(SOLARDEFIMG)/res ) \ + -subMODULE=$(SOLARDEFIMG) \ + -subGLOBALRES=$(SOLARDEFIMG)/res \ + -oil={$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(BIN))} \ + -ft=$@ \ + $(RSC1HEADER) $(RESLIB1SRSFILES) \ + ) > $(NULLDEV) +.ELSE # "$(common_build_reslib)"!="" + $(COMMAND_ECHO)$(RSC) -presponse $(VERBOSITY) @$(mktmp \ + -r -p \ + $(foreach,i,$(alllangiso) -lg$i \ + $(null,$(rescharset_{$i}) $(default$(LANG_GUI)) $(rescharset_{$i})) \ + -fs={$(BIN)/$(RESLIB1NAME)$i.res} \ + $(foreach,j,$(subst,$(PRJ),$(SOLARDEFIMG)/$(PRJNAME) $(RESLIB1IMAGES)) -lip={$j}/$i \ + -lip={$j} ) \ + -lip=$(SOLARDEFIMG)/res/$i -lip=$(SOLARDEFIMG)/res ) \ + -subMODULE=$(SOLARDEFIMG) \ + -subGLOBALRES=$(SOLARDEFIMG)/res \ + -oil=$(BIN) \ + -ft=$@ \ + $(RSC1HEADER) $(RESLIB1SRSFILES) \ + ) > $(NULLDEV) +.ENDIF # "$(common_build_reslib)"!="" + +$(RESLIB1TARGETN): \ + $(RESLIB1SRSFILES) \ + $(RESLIB1BMPS) + @echo "Making: " $(@:f) +.IF "$(GUI)"=="UNX" +.IF "$(common_build_reslib)"!="" + @@-$(RM) $(RSC_MULTI1) +.ELSE # "$(common_build_reslib)"!="" + @@-$(RM) $(RSC_MULTI1) +.ENDIF # "$(common_build_reslib)"!="" +.ELSE # "$(GUI)"=="UNX" +.IF "$(common_build_reslib)"!="" + @@-$(RM) $(RSC_MULTI1) +.ELSE # "$(common_build_reslib)"!="" + @@-$(RM) $(RSC_MULTI1) +.ENDIF # "$(common_build_reslib)"!="" +.ENDIF # "$(GUI)"=="UNX" +.ENDIF # "$(RESLIB1TARGETN)"!="" + + +# unroll begin + +.IF "$(RESLIB2TARGETN)"!="" + +$(RSC_MULTI2) : \ + $(RESLIB2SRSFILES) \ + $(RESLIB2TARGETN) \ + $(RESLIB2BMPS) + @echo Compiling: $(@:f) +.IF "$(common_build_reslib)"!="" + $(COMMAND_ECHO)$(RSC) -presponse $(VERBOSITY) @$(mktmp \ + -r -p \ + $(foreach,i,$(alllangiso) -lg$i \ + $(null,$(rescharset_{$i}) $(default$(LANG_GUI)) $(rescharset_{$i})) \ + -fs={$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(BIN))/$(RESLIB2NAME)$i.res} \ + $(foreach,j,$(subst,$(PRJ),$(SOLARDEFIMG)/$(PRJNAME) $(RESLIB2IMAGES)) -lip={$j}/$i \ + -lip={$j} ) \ + -lip=$(SOLARDEFIMG)/res/$i -lip=$(SOLARDEFIMG)/res ) \ + -subMODULE=$(SOLARDEFIMG) \ + -subGLOBALRES=$(SOLARDEFIMG)/res \ + -oil={$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(BIN))} \ + -ft=$@ \ + $(RSC2HEADER) $(RESLIB2SRSFILES) \ + ) > $(NULLDEV) +.ELSE # "$(common_build_reslib)"!="" + $(COMMAND_ECHO)$(RSC) -presponse $(VERBOSITY) @$(mktmp \ + -r -p \ + $(foreach,i,$(alllangiso) -lg$i \ + $(null,$(rescharset_{$i}) $(default$(LANG_GUI)) $(rescharset_{$i})) \ + -fs={$(BIN)/$(RESLIB2NAME)$i.res} \ + $(foreach,j,$(subst,$(PRJ),$(SOLARDEFIMG)/$(PRJNAME) $(RESLIB2IMAGES)) -lip={$j}/$i \ + -lip={$j} ) \ + -lip=$(SOLARDEFIMG)/res/$i -lip=$(SOLARDEFIMG)/res ) \ + -subMODULE=$(SOLARDEFIMG) \ + -subGLOBALRES=$(SOLARDEFIMG)/res \ + -oil=$(BIN) \ + -ft=$@ \ + $(RSC2HEADER) $(RESLIB2SRSFILES) \ + ) > $(NULLDEV) +.ENDIF # "$(common_build_reslib)"!="" + +$(RESLIB2TARGETN): \ + $(RESLIB2SRSFILES) \ + $(RESLIB2BMPS) + @echo "Making: " $(@:f) +.IF "$(GUI)"=="UNX" +.IF "$(common_build_reslib)"!="" + @@-$(RM) $(RSC_MULTI2) +.ELSE # "$(common_build_reslib)"!="" + @@-$(RM) $(RSC_MULTI2) +.ENDIF # "$(common_build_reslib)"!="" +.ELSE # "$(GUI)"=="UNX" +.IF "$(common_build_reslib)"!="" + @@-$(RM) $(RSC_MULTI2) +.ELSE # "$(common_build_reslib)"!="" + @@-$(RM) $(RSC_MULTI2) +.ENDIF # "$(common_build_reslib)"!="" +.ENDIF # "$(GUI)"=="UNX" +.ENDIF # "$(RESLIB2TARGETN)"!="" + + +# unroll begin + +.IF "$(RESLIB3TARGETN)"!="" + +$(RSC_MULTI3) : \ + $(RESLIB3SRSFILES) \ + $(RESLIB3TARGETN) \ + $(RESLIB3BMPS) + @echo Compiling: $(@:f) +.IF "$(common_build_reslib)"!="" + $(COMMAND_ECHO)$(RSC) -presponse $(VERBOSITY) @$(mktmp \ + -r -p \ + $(foreach,i,$(alllangiso) -lg$i \ + $(null,$(rescharset_{$i}) $(default$(LANG_GUI)) $(rescharset_{$i})) \ + -fs={$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(BIN))/$(RESLIB3NAME)$i.res} \ + $(foreach,j,$(subst,$(PRJ),$(SOLARDEFIMG)/$(PRJNAME) $(RESLIB3IMAGES)) -lip={$j}/$i \ + -lip={$j} ) \ + -lip=$(SOLARDEFIMG)/res/$i -lip=$(SOLARDEFIMG)/res ) \ + -subMODULE=$(SOLARDEFIMG) \ + -subGLOBALRES=$(SOLARDEFIMG)/res \ + -oil={$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(BIN))} \ + -ft=$@ \ + $(RSC3HEADER) $(RESLIB3SRSFILES) \ + ) > $(NULLDEV) +.ELSE # "$(common_build_reslib)"!="" + $(COMMAND_ECHO)$(RSC) -presponse $(VERBOSITY) @$(mktmp \ + -r -p \ + $(foreach,i,$(alllangiso) -lg$i \ + $(null,$(rescharset_{$i}) $(default$(LANG_GUI)) $(rescharset_{$i})) \ + -fs={$(BIN)/$(RESLIB3NAME)$i.res} \ + $(foreach,j,$(subst,$(PRJ),$(SOLARDEFIMG)/$(PRJNAME) $(RESLIB3IMAGES)) -lip={$j}/$i \ + -lip={$j} ) \ + -lip=$(SOLARDEFIMG)/res/$i -lip=$(SOLARDEFIMG)/res ) \ + -subMODULE=$(SOLARDEFIMG) \ + -subGLOBALRES=$(SOLARDEFIMG)/res \ + -oil=$(BIN) \ + -ft=$@ \ + $(RSC3HEADER) $(RESLIB3SRSFILES) \ + ) > $(NULLDEV) +.ENDIF # "$(common_build_reslib)"!="" + +$(RESLIB3TARGETN): \ + $(RESLIB3SRSFILES) \ + $(RESLIB3BMPS) + @echo "Making: " $(@:f) +.IF "$(GUI)"=="UNX" +.IF "$(common_build_reslib)"!="" + @@-$(RM) $(RSC_MULTI3) +.ELSE # "$(common_build_reslib)"!="" + @@-$(RM) $(RSC_MULTI3) +.ENDIF # "$(common_build_reslib)"!="" +.ELSE # "$(GUI)"=="UNX" +.IF "$(common_build_reslib)"!="" + @@-$(RM) $(RSC_MULTI3) +.ELSE # "$(common_build_reslib)"!="" + @@-$(RM) $(RSC_MULTI3) +.ENDIF # "$(common_build_reslib)"!="" +.ENDIF # "$(GUI)"=="UNX" +.ENDIF # "$(RESLIB3TARGETN)"!="" + + +# unroll begin + +.IF "$(RESLIB4TARGETN)"!="" + +$(RSC_MULTI4) : \ + $(RESLIB4SRSFILES) \ + $(RESLIB4TARGETN) \ + $(RESLIB4BMPS) + @echo Compiling: $(@:f) +.IF "$(common_build_reslib)"!="" + $(COMMAND_ECHO)$(RSC) -presponse $(VERBOSITY) @$(mktmp \ + -r -p \ + $(foreach,i,$(alllangiso) -lg$i \ + $(null,$(rescharset_{$i}) $(default$(LANG_GUI)) $(rescharset_{$i})) \ + -fs={$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(BIN))/$(RESLIB4NAME)$i.res} \ + $(foreach,j,$(subst,$(PRJ),$(SOLARDEFIMG)/$(PRJNAME) $(RESLIB4IMAGES)) -lip={$j}/$i \ + -lip={$j} ) \ + -lip=$(SOLARDEFIMG)/res/$i -lip=$(SOLARDEFIMG)/res ) \ + -subMODULE=$(SOLARDEFIMG) \ + -subGLOBALRES=$(SOLARDEFIMG)/res \ + -oil={$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(BIN))} \ + -ft=$@ \ + $(RSC4HEADER) $(RESLIB4SRSFILES) \ + ) > $(NULLDEV) +.ELSE # "$(common_build_reslib)"!="" + $(COMMAND_ECHO)$(RSC) -presponse $(VERBOSITY) @$(mktmp \ + -r -p \ + $(foreach,i,$(alllangiso) -lg$i \ + $(null,$(rescharset_{$i}) $(default$(LANG_GUI)) $(rescharset_{$i})) \ + -fs={$(BIN)/$(RESLIB4NAME)$i.res} \ + $(foreach,j,$(subst,$(PRJ),$(SOLARDEFIMG)/$(PRJNAME) $(RESLIB4IMAGES)) -lip={$j}/$i \ + -lip={$j} ) \ + -lip=$(SOLARDEFIMG)/res/$i -lip=$(SOLARDEFIMG)/res ) \ + -subMODULE=$(SOLARDEFIMG) \ + -subGLOBALRES=$(SOLARDEFIMG)/res \ + -oil=$(BIN) \ + -ft=$@ \ + $(RSC4HEADER) $(RESLIB4SRSFILES) \ + ) > $(NULLDEV) +.ENDIF # "$(common_build_reslib)"!="" + +$(RESLIB4TARGETN): \ + $(RESLIB4SRSFILES) \ + $(RESLIB4BMPS) + @echo "Making: " $(@:f) +.IF "$(GUI)"=="UNX" +.IF "$(common_build_reslib)"!="" + @@-$(RM) $(RSC_MULTI4) +.ELSE # "$(common_build_reslib)"!="" + @@-$(RM) $(RSC_MULTI4) +.ENDIF # "$(common_build_reslib)"!="" +.ELSE # "$(GUI)"=="UNX" +.IF "$(common_build_reslib)"!="" + @@-$(RM) $(RSC_MULTI4) +.ELSE # "$(common_build_reslib)"!="" + @@-$(RM) $(RSC_MULTI4) +.ENDIF # "$(common_build_reslib)"!="" +.ENDIF # "$(GUI)"=="UNX" +.ENDIF # "$(RESLIB4TARGETN)"!="" + + +# unroll begin + +.IF "$(RESLIB5TARGETN)"!="" + +$(RSC_MULTI5) : \ + $(RESLIB5SRSFILES) \ + $(RESLIB5TARGETN) \ + $(RESLIB5BMPS) + @echo Compiling: $(@:f) +.IF "$(common_build_reslib)"!="" + $(COMMAND_ECHO)$(RSC) -presponse $(VERBOSITY) @$(mktmp \ + -r -p \ + $(foreach,i,$(alllangiso) -lg$i \ + $(null,$(rescharset_{$i}) $(default$(LANG_GUI)) $(rescharset_{$i})) \ + -fs={$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(BIN))/$(RESLIB5NAME)$i.res} \ + $(foreach,j,$(subst,$(PRJ),$(SOLARDEFIMG)/$(PRJNAME) $(RESLIB5IMAGES)) -lip={$j}/$i \ + -lip={$j} ) \ + -lip=$(SOLARDEFIMG)/res/$i -lip=$(SOLARDEFIMG)/res ) \ + -subMODULE=$(SOLARDEFIMG) \ + -subGLOBALRES=$(SOLARDEFIMG)/res \ + -oil={$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(BIN))} \ + -ft=$@ \ + $(RSC5HEADER) $(RESLIB5SRSFILES) \ + ) > $(NULLDEV) +.ELSE # "$(common_build_reslib)"!="" + $(COMMAND_ECHO)$(RSC) -presponse $(VERBOSITY) @$(mktmp \ + -r -p \ + $(foreach,i,$(alllangiso) -lg$i \ + $(null,$(rescharset_{$i}) $(default$(LANG_GUI)) $(rescharset_{$i})) \ + -fs={$(BIN)/$(RESLIB5NAME)$i.res} \ + $(foreach,j,$(subst,$(PRJ),$(SOLARDEFIMG)/$(PRJNAME) $(RESLIB5IMAGES)) -lip={$j}/$i \ + -lip={$j} ) \ + -lip=$(SOLARDEFIMG)/res/$i -lip=$(SOLARDEFIMG)/res ) \ + -subMODULE=$(SOLARDEFIMG) \ + -subGLOBALRES=$(SOLARDEFIMG)/res \ + -oil=$(BIN) \ + -ft=$@ \ + $(RSC5HEADER) $(RESLIB5SRSFILES) \ + ) > $(NULLDEV) +.ENDIF # "$(common_build_reslib)"!="" + +$(RESLIB5TARGETN): \ + $(RESLIB5SRSFILES) \ + $(RESLIB5BMPS) + @echo "Making: " $(@:f) +.IF "$(GUI)"=="UNX" +.IF "$(common_build_reslib)"!="" + @@-$(RM) $(RSC_MULTI5) +.ELSE # "$(common_build_reslib)"!="" + @@-$(RM) $(RSC_MULTI5) +.ENDIF # "$(common_build_reslib)"!="" +.ELSE # "$(GUI)"=="UNX" +.IF "$(common_build_reslib)"!="" + @@-$(RM) $(RSC_MULTI5) +.ELSE # "$(common_build_reslib)"!="" + @@-$(RM) $(RSC_MULTI5) +.ENDIF # "$(common_build_reslib)"!="" +.ENDIF # "$(GUI)"=="UNX" +.ENDIF # "$(RESLIB5TARGETN)"!="" + + +# unroll begin + +.IF "$(RESLIB6TARGETN)"!="" + +$(RSC_MULTI6) : \ + $(RESLIB6SRSFILES) \ + $(RESLIB6TARGETN) \ + $(RESLIB6BMPS) + @echo Compiling: $(@:f) +.IF "$(common_build_reslib)"!="" + $(COMMAND_ECHO)$(RSC) -presponse $(VERBOSITY) @$(mktmp \ + -r -p \ + $(foreach,i,$(alllangiso) -lg$i \ + $(null,$(rescharset_{$i}) $(default$(LANG_GUI)) $(rescharset_{$i})) \ + -fs={$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(BIN))/$(RESLIB6NAME)$i.res} \ + $(foreach,j,$(subst,$(PRJ),$(SOLARDEFIMG)/$(PRJNAME) $(RESLIB6IMAGES)) -lip={$j}/$i \ + -lip={$j} ) \ + -lip=$(SOLARDEFIMG)/res/$i -lip=$(SOLARDEFIMG)/res ) \ + -subMODULE=$(SOLARDEFIMG) \ + -subGLOBALRES=$(SOLARDEFIMG)/res \ + -oil={$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(BIN))} \ + -ft=$@ \ + $(RSC6HEADER) $(RESLIB6SRSFILES) \ + ) > $(NULLDEV) +.ELSE # "$(common_build_reslib)"!="" + $(COMMAND_ECHO)$(RSC) -presponse $(VERBOSITY) @$(mktmp \ + -r -p \ + $(foreach,i,$(alllangiso) -lg$i \ + $(null,$(rescharset_{$i}) $(default$(LANG_GUI)) $(rescharset_{$i})) \ + -fs={$(BIN)/$(RESLIB6NAME)$i.res} \ + $(foreach,j,$(subst,$(PRJ),$(SOLARDEFIMG)/$(PRJNAME) $(RESLIB6IMAGES)) -lip={$j}/$i \ + -lip={$j} ) \ + -lip=$(SOLARDEFIMG)/res/$i -lip=$(SOLARDEFIMG)/res ) \ + -subMODULE=$(SOLARDEFIMG) \ + -subGLOBALRES=$(SOLARDEFIMG)/res \ + -oil=$(BIN) \ + -ft=$@ \ + $(RSC6HEADER) $(RESLIB6SRSFILES) \ + ) > $(NULLDEV) +.ENDIF # "$(common_build_reslib)"!="" + +$(RESLIB6TARGETN): \ + $(RESLIB6SRSFILES) \ + $(RESLIB6BMPS) + @echo "Making: " $(@:f) +.IF "$(GUI)"=="UNX" +.IF "$(common_build_reslib)"!="" + @@-$(RM) $(RSC_MULTI6) +.ELSE # "$(common_build_reslib)"!="" + @@-$(RM) $(RSC_MULTI6) +.ENDIF # "$(common_build_reslib)"!="" +.ELSE # "$(GUI)"=="UNX" +.IF "$(common_build_reslib)"!="" + @@-$(RM) $(RSC_MULTI6) +.ELSE # "$(common_build_reslib)"!="" + @@-$(RM) $(RSC_MULTI6) +.ENDIF # "$(common_build_reslib)"!="" +.ENDIF # "$(GUI)"=="UNX" +.ENDIF # "$(RESLIB6TARGETN)"!="" + + +# unroll begin + +.IF "$(RESLIB7TARGETN)"!="" + +$(RSC_MULTI7) : \ + $(RESLIB7SRSFILES) \ + $(RESLIB7TARGETN) \ + $(RESLIB7BMPS) + @echo Compiling: $(@:f) +.IF "$(common_build_reslib)"!="" + $(COMMAND_ECHO)$(RSC) -presponse $(VERBOSITY) @$(mktmp \ + -r -p \ + $(foreach,i,$(alllangiso) -lg$i \ + $(null,$(rescharset_{$i}) $(default$(LANG_GUI)) $(rescharset_{$i})) \ + -fs={$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(BIN))/$(RESLIB7NAME)$i.res} \ + $(foreach,j,$(subst,$(PRJ),$(SOLARDEFIMG)/$(PRJNAME) $(RESLIB7IMAGES)) -lip={$j}/$i \ + -lip={$j} ) \ + -lip=$(SOLARDEFIMG)/res/$i -lip=$(SOLARDEFIMG)/res ) \ + -subMODULE=$(SOLARDEFIMG) \ + -subGLOBALRES=$(SOLARDEFIMG)/res \ + -oil={$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(BIN))} \ + -ft=$@ \ + $(RSC7HEADER) $(RESLIB7SRSFILES) \ + ) > $(NULLDEV) +.ELSE # "$(common_build_reslib)"!="" + $(COMMAND_ECHO)$(RSC) -presponse $(VERBOSITY) @$(mktmp \ + -r -p \ + $(foreach,i,$(alllangiso) -lg$i \ + $(null,$(rescharset_{$i}) $(default$(LANG_GUI)) $(rescharset_{$i})) \ + -fs={$(BIN)/$(RESLIB7NAME)$i.res} \ + $(foreach,j,$(subst,$(PRJ),$(SOLARDEFIMG)/$(PRJNAME) $(RESLIB7IMAGES)) -lip={$j}/$i \ + -lip={$j} ) \ + -lip=$(SOLARDEFIMG)/res/$i -lip=$(SOLARDEFIMG)/res ) \ + -subMODULE=$(SOLARDEFIMG) \ + -subGLOBALRES=$(SOLARDEFIMG)/res \ + -oil=$(BIN) \ + -ft=$@ \ + $(RSC7HEADER) $(RESLIB7SRSFILES) \ + ) > $(NULLDEV) +.ENDIF # "$(common_build_reslib)"!="" + +$(RESLIB7TARGETN): \ + $(RESLIB7SRSFILES) \ + $(RESLIB7BMPS) + @echo "Making: " $(@:f) +.IF "$(GUI)"=="UNX" +.IF "$(common_build_reslib)"!="" + @@-$(RM) $(RSC_MULTI7) +.ELSE # "$(common_build_reslib)"!="" + @@-$(RM) $(RSC_MULTI7) +.ENDIF # "$(common_build_reslib)"!="" +.ELSE # "$(GUI)"=="UNX" +.IF "$(common_build_reslib)"!="" + @@-$(RM) $(RSC_MULTI7) +.ELSE # "$(common_build_reslib)"!="" + @@-$(RM) $(RSC_MULTI7) +.ENDIF # "$(common_build_reslib)"!="" +.ENDIF # "$(GUI)"=="UNX" +.ENDIF # "$(RESLIB7TARGETN)"!="" + + +# unroll begin + +.IF "$(RESLIB8TARGETN)"!="" + +$(RSC_MULTI8) : \ + $(RESLIB8SRSFILES) \ + $(RESLIB8TARGETN) \ + $(RESLIB8BMPS) + @echo Compiling: $(@:f) +.IF "$(common_build_reslib)"!="" + $(COMMAND_ECHO)$(RSC) -presponse $(VERBOSITY) @$(mktmp \ + -r -p \ + $(foreach,i,$(alllangiso) -lg$i \ + $(null,$(rescharset_{$i}) $(default$(LANG_GUI)) $(rescharset_{$i})) \ + -fs={$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(BIN))/$(RESLIB8NAME)$i.res} \ + $(foreach,j,$(subst,$(PRJ),$(SOLARDEFIMG)/$(PRJNAME) $(RESLIB8IMAGES)) -lip={$j}/$i \ + -lip={$j} ) \ + -lip=$(SOLARDEFIMG)/res/$i -lip=$(SOLARDEFIMG)/res ) \ + -subMODULE=$(SOLARDEFIMG) \ + -subGLOBALRES=$(SOLARDEFIMG)/res \ + -oil={$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(BIN))} \ + -ft=$@ \ + $(RSC8HEADER) $(RESLIB8SRSFILES) \ + ) > $(NULLDEV) +.ELSE # "$(common_build_reslib)"!="" + $(COMMAND_ECHO)$(RSC) -presponse $(VERBOSITY) @$(mktmp \ + -r -p \ + $(foreach,i,$(alllangiso) -lg$i \ + $(null,$(rescharset_{$i}) $(default$(LANG_GUI)) $(rescharset_{$i})) \ + -fs={$(BIN)/$(RESLIB8NAME)$i.res} \ + $(foreach,j,$(subst,$(PRJ),$(SOLARDEFIMG)/$(PRJNAME) $(RESLIB8IMAGES)) -lip={$j}/$i \ + -lip={$j} ) \ + -lip=$(SOLARDEFIMG)/res/$i -lip=$(SOLARDEFIMG)/res ) \ + -subMODULE=$(SOLARDEFIMG) \ + -subGLOBALRES=$(SOLARDEFIMG)/res \ + -oil=$(BIN) \ + -ft=$@ \ + $(RSC8HEADER) $(RESLIB8SRSFILES) \ + ) > $(NULLDEV) +.ENDIF # "$(common_build_reslib)"!="" + +$(RESLIB8TARGETN): \ + $(RESLIB8SRSFILES) \ + $(RESLIB8BMPS) + @echo "Making: " $(@:f) +.IF "$(GUI)"=="UNX" +.IF "$(common_build_reslib)"!="" + @@-$(RM) $(RSC_MULTI8) +.ELSE # "$(common_build_reslib)"!="" + @@-$(RM) $(RSC_MULTI8) +.ENDIF # "$(common_build_reslib)"!="" +.ELSE # "$(GUI)"=="UNX" +.IF "$(common_build_reslib)"!="" + @@-$(RM) $(RSC_MULTI8) +.ELSE # "$(common_build_reslib)"!="" + @@-$(RM) $(RSC_MULTI8) +.ENDIF # "$(common_build_reslib)"!="" +.ENDIF # "$(GUI)"=="UNX" +.ENDIF # "$(RESLIB8TARGETN)"!="" + + +# unroll begin + +.IF "$(RESLIB9TARGETN)"!="" + +$(RSC_MULTI9) : \ + $(RESLIB9SRSFILES) \ + $(RESLIB9TARGETN) \ + $(RESLIB9BMPS) + @echo Compiling: $(@:f) +.IF "$(common_build_reslib)"!="" + $(COMMAND_ECHO)$(RSC) -presponse $(VERBOSITY) @$(mktmp \ + -r -p \ + $(foreach,i,$(alllangiso) -lg$i \ + $(null,$(rescharset_{$i}) $(default$(LANG_GUI)) $(rescharset_{$i})) \ + -fs={$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(BIN))/$(RESLIB9NAME)$i.res} \ + $(foreach,j,$(subst,$(PRJ),$(SOLARDEFIMG)/$(PRJNAME) $(RESLIB9IMAGES)) -lip={$j}/$i \ + -lip={$j} ) \ + -lip=$(SOLARDEFIMG)/res/$i -lip=$(SOLARDEFIMG)/res ) \ + -subMODULE=$(SOLARDEFIMG) \ + -subGLOBALRES=$(SOLARDEFIMG)/res \ + -oil={$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(BIN))} \ + -ft=$@ \ + $(RSC9HEADER) $(RESLIB9SRSFILES) \ + ) > $(NULLDEV) +.ELSE # "$(common_build_reslib)"!="" + $(COMMAND_ECHO)$(RSC) -presponse $(VERBOSITY) @$(mktmp \ + -r -p \ + $(foreach,i,$(alllangiso) -lg$i \ + $(null,$(rescharset_{$i}) $(default$(LANG_GUI)) $(rescharset_{$i})) \ + -fs={$(BIN)/$(RESLIB9NAME)$i.res} \ + $(foreach,j,$(subst,$(PRJ),$(SOLARDEFIMG)/$(PRJNAME) $(RESLIB9IMAGES)) -lip={$j}/$i \ + -lip={$j} ) \ + -lip=$(SOLARDEFIMG)/res/$i -lip=$(SOLARDEFIMG)/res ) \ + -subMODULE=$(SOLARDEFIMG) \ + -subGLOBALRES=$(SOLARDEFIMG)/res \ + -oil=$(BIN) \ + -ft=$@ \ + $(RSC9HEADER) $(RESLIB9SRSFILES) \ + ) > $(NULLDEV) +.ENDIF # "$(common_build_reslib)"!="" + +$(RESLIB9TARGETN): \ + $(RESLIB9SRSFILES) \ + $(RESLIB9BMPS) + @echo "Making: " $(@:f) +.IF "$(GUI)"=="UNX" +.IF "$(common_build_reslib)"!="" + @@-$(RM) $(RSC_MULTI9) +.ELSE # "$(common_build_reslib)"!="" + @@-$(RM) $(RSC_MULTI9) +.ENDIF # "$(common_build_reslib)"!="" +.ELSE # "$(GUI)"=="UNX" +.IF "$(common_build_reslib)"!="" + @@-$(RM) $(RSC_MULTI9) +.ELSE # "$(common_build_reslib)"!="" + @@-$(RM) $(RSC_MULTI9) +.ENDIF # "$(common_build_reslib)"!="" +.ENDIF # "$(GUI)"=="UNX" +.ENDIF # "$(RESLIB9TARGETN)"!="" + + +# unroll begin + +.IF "$(RESLIB10TARGETN)"!="" + +$(RSC_MULTI10) : \ + $(RESLIB10SRSFILES) \ + $(RESLIB10TARGETN) \ + $(RESLIB10BMPS) + @echo Compiling: $(@:f) +.IF "$(common_build_reslib)"!="" + $(COMMAND_ECHO)$(RSC) -presponse $(VERBOSITY) @$(mktmp \ + -r -p \ + $(foreach,i,$(alllangiso) -lg$i \ + $(null,$(rescharset_{$i}) $(default$(LANG_GUI)) $(rescharset_{$i})) \ + -fs={$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(BIN))/$(RESLIB10NAME)$i.res} \ + $(foreach,j,$(subst,$(PRJ),$(SOLARDEFIMG)/$(PRJNAME) $(RESLIB10IMAGES)) -lip={$j}/$i \ + -lip={$j} ) \ + -lip=$(SOLARDEFIMG)/res/$i -lip=$(SOLARDEFIMG)/res ) \ + -subMODULE=$(SOLARDEFIMG) \ + -subGLOBALRES=$(SOLARDEFIMG)/res \ + -oil={$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(BIN))} \ + -ft=$@ \ + $(RSC10HEADER) $(RESLIB10SRSFILES) \ + ) > $(NULLDEV) +.ELSE # "$(common_build_reslib)"!="" + $(COMMAND_ECHO)$(RSC) -presponse $(VERBOSITY) @$(mktmp \ + -r -p \ + $(foreach,i,$(alllangiso) -lg$i \ + $(null,$(rescharset_{$i}) $(default$(LANG_GUI)) $(rescharset_{$i})) \ + -fs={$(BIN)/$(RESLIB10NAME)$i.res} \ + $(foreach,j,$(subst,$(PRJ),$(SOLARDEFIMG)/$(PRJNAME) $(RESLIB10IMAGES)) -lip={$j}/$i \ + -lip={$j} ) \ + -lip=$(SOLARDEFIMG)/res/$i -lip=$(SOLARDEFIMG)/res ) \ + -subMODULE=$(SOLARDEFIMG) \ + -subGLOBALRES=$(SOLARDEFIMG)/res \ + -oil=$(BIN) \ + -ft=$@ \ + $(RSC10HEADER) $(RESLIB10SRSFILES) \ + ) > $(NULLDEV) +.ENDIF # "$(common_build_reslib)"!="" + +$(RESLIB10TARGETN): \ + $(RESLIB10SRSFILES) \ + $(RESLIB10BMPS) + @echo "Making: " $(@:f) +.IF "$(GUI)"=="UNX" +.IF "$(common_build_reslib)"!="" + @@-$(RM) $(RSC_MULTI10) +.ELSE # "$(common_build_reslib)"!="" + @@-$(RM) $(RSC_MULTI10) +.ENDIF # "$(common_build_reslib)"!="" +.ELSE # "$(GUI)"=="UNX" +.IF "$(common_build_reslib)"!="" + @@-$(RM) $(RSC_MULTI10) +.ELSE # "$(common_build_reslib)"!="" + @@-$(RM) $(RSC_MULTI10) +.ENDIF # "$(common_build_reslib)"!="" +.ENDIF # "$(GUI)"=="UNX" +.ENDIF # "$(RESLIB10TARGETN)"!="" + + diff --git a/solenv/inc/_tg_scp.mk b/solenv/inc/_tg_scp.mk new file mode 100644 index 000000000000..d13e57990592 --- /dev/null +++ b/solenv/inc/_tg_scp.mk @@ -0,0 +1,180 @@ +# unroll begin + +.IF "$(SCP1TARGETN)"!="" + +# try to get missing parfiles +$(PAR)/%.par : $(SOLARPARDIR)/%.par + @@-$(MKDIRHIER) $(@:d:d) + $(COMMAND_ECHO)$(COPY) $< $@ + +LOCALSCP1FILES+=$(foreach,i,$(SCP1FILES) $(foreach,j,$(SCP1LINK_PRODUCT_TYPE) $(PAR)/$j/$i )) + +$(SCP1TARGETN): $(LOCALSCP1FILES) + @echo "Making: " $(@:f) + @@-$(MKDIRHIER) $(BIN)/$(SCP1LINK_PRODUCT_TYPE) + $(COMMAND_ECHO)$(SCPLINK) $(SCPLINKFLAGS) @@$(mktmp $(foreach,i,$(SCP1FILES) $(subst,$(@:d:d:d), $(@:d:d))/$(i:+","))) -o $@ +.ENDIF + +# Anweisungen fuer das Linken +# unroll begin + +.IF "$(SCP2TARGETN)"!="" + +# try to get missing parfiles +$(PAR)/%.par : $(SOLARPARDIR)/%.par + @@-$(MKDIRHIER) $(@:d:d) + $(COMMAND_ECHO)$(COPY) $< $@ + +LOCALSCP2FILES+=$(foreach,i,$(SCP2FILES) $(foreach,j,$(SCP2LINK_PRODUCT_TYPE) $(PAR)/$j/$i )) + +$(SCP2TARGETN): $(LOCALSCP2FILES) + @echo "Making: " $(@:f) + @@-$(MKDIRHIER) $(BIN)/$(SCP2LINK_PRODUCT_TYPE) + $(COMMAND_ECHO)$(SCPLINK) $(SCPLINKFLAGS) @@$(mktmp $(foreach,i,$(SCP2FILES) $(subst,$(@:d:d:d), $(@:d:d))/$(i:+","))) -o $@ +.ENDIF + +# Anweisungen fuer das Linken +# unroll begin + +.IF "$(SCP3TARGETN)"!="" + +# try to get missing parfiles +$(PAR)/%.par : $(SOLARPARDIR)/%.par + @@-$(MKDIRHIER) $(@:d:d) + $(COMMAND_ECHO)$(COPY) $< $@ + +LOCALSCP3FILES+=$(foreach,i,$(SCP3FILES) $(foreach,j,$(SCP3LINK_PRODUCT_TYPE) $(PAR)/$j/$i )) + +$(SCP3TARGETN): $(LOCALSCP3FILES) + @echo "Making: " $(@:f) + @@-$(MKDIRHIER) $(BIN)/$(SCP3LINK_PRODUCT_TYPE) + $(COMMAND_ECHO)$(SCPLINK) $(SCPLINKFLAGS) @@$(mktmp $(foreach,i,$(SCP3FILES) $(subst,$(@:d:d:d), $(@:d:d))/$(i:+","))) -o $@ +.ENDIF + +# Anweisungen fuer das Linken +# unroll begin + +.IF "$(SCP4TARGETN)"!="" + +# try to get missing parfiles +$(PAR)/%.par : $(SOLARPARDIR)/%.par + @@-$(MKDIRHIER) $(@:d:d) + $(COMMAND_ECHO)$(COPY) $< $@ + +LOCALSCP4FILES+=$(foreach,i,$(SCP4FILES) $(foreach,j,$(SCP4LINK_PRODUCT_TYPE) $(PAR)/$j/$i )) + +$(SCP4TARGETN): $(LOCALSCP4FILES) + @echo "Making: " $(@:f) + @@-$(MKDIRHIER) $(BIN)/$(SCP4LINK_PRODUCT_TYPE) + $(COMMAND_ECHO)$(SCPLINK) $(SCPLINKFLAGS) @@$(mktmp $(foreach,i,$(SCP4FILES) $(subst,$(@:d:d:d), $(@:d:d))/$(i:+","))) -o $@ +.ENDIF + +# Anweisungen fuer das Linken +# unroll begin + +.IF "$(SCP5TARGETN)"!="" + +# try to get missing parfiles +$(PAR)/%.par : $(SOLARPARDIR)/%.par + @@-$(MKDIRHIER) $(@:d:d) + $(COMMAND_ECHO)$(COPY) $< $@ + +LOCALSCP5FILES+=$(foreach,i,$(SCP5FILES) $(foreach,j,$(SCP5LINK_PRODUCT_TYPE) $(PAR)/$j/$i )) + +$(SCP5TARGETN): $(LOCALSCP5FILES) + @echo "Making: " $(@:f) + @@-$(MKDIRHIER) $(BIN)/$(SCP5LINK_PRODUCT_TYPE) + $(COMMAND_ECHO)$(SCPLINK) $(SCPLINKFLAGS) @@$(mktmp $(foreach,i,$(SCP5FILES) $(subst,$(@:d:d:d), $(@:d:d))/$(i:+","))) -o $@ +.ENDIF + +# Anweisungen fuer das Linken +# unroll begin + +.IF "$(SCP6TARGETN)"!="" + +# try to get missing parfiles +$(PAR)/%.par : $(SOLARPARDIR)/%.par + @@-$(MKDIRHIER) $(@:d:d) + $(COMMAND_ECHO)$(COPY) $< $@ + +LOCALSCP6FILES+=$(foreach,i,$(SCP6FILES) $(foreach,j,$(SCP6LINK_PRODUCT_TYPE) $(PAR)/$j/$i )) + +$(SCP6TARGETN): $(LOCALSCP6FILES) + @echo "Making: " $(@:f) + @@-$(MKDIRHIER) $(BIN)/$(SCP6LINK_PRODUCT_TYPE) + $(COMMAND_ECHO)$(SCPLINK) $(SCPLINKFLAGS) @@$(mktmp $(foreach,i,$(SCP6FILES) $(subst,$(@:d:d:d), $(@:d:d))/$(i:+","))) -o $@ +.ENDIF + +# Anweisungen fuer das Linken +# unroll begin + +.IF "$(SCP7TARGETN)"!="" + +# try to get missing parfiles +$(PAR)/%.par : $(SOLARPARDIR)/%.par + @@-$(MKDIRHIER) $(@:d:d) + $(COMMAND_ECHO)$(COPY) $< $@ + +LOCALSCP7FILES+=$(foreach,i,$(SCP7FILES) $(foreach,j,$(SCP7LINK_PRODUCT_TYPE) $(PAR)/$j/$i )) + +$(SCP7TARGETN): $(LOCALSCP7FILES) + @echo "Making: " $(@:f) + @@-$(MKDIRHIER) $(BIN)/$(SCP7LINK_PRODUCT_TYPE) + $(COMMAND_ECHO)$(SCPLINK) $(SCPLINKFLAGS) @@$(mktmp $(foreach,i,$(SCP7FILES) $(subst,$(@:d:d:d), $(@:d:d))/$(i:+","))) -o $@ +.ENDIF + +# Anweisungen fuer das Linken +# unroll begin + +.IF "$(SCP8TARGETN)"!="" + +# try to get missing parfiles +$(PAR)/%.par : $(SOLARPARDIR)/%.par + @@-$(MKDIRHIER) $(@:d:d) + $(COMMAND_ECHO)$(COPY) $< $@ + +LOCALSCP8FILES+=$(foreach,i,$(SCP8FILES) $(foreach,j,$(SCP8LINK_PRODUCT_TYPE) $(PAR)/$j/$i )) + +$(SCP8TARGETN): $(LOCALSCP8FILES) + @echo "Making: " $(@:f) + @@-$(MKDIRHIER) $(BIN)/$(SCP8LINK_PRODUCT_TYPE) + $(COMMAND_ECHO)$(SCPLINK) $(SCPLINKFLAGS) @@$(mktmp $(foreach,i,$(SCP8FILES) $(subst,$(@:d:d:d), $(@:d:d))/$(i:+","))) -o $@ +.ENDIF + +# Anweisungen fuer das Linken +# unroll begin + +.IF "$(SCP9TARGETN)"!="" + +# try to get missing parfiles +$(PAR)/%.par : $(SOLARPARDIR)/%.par + @@-$(MKDIRHIER) $(@:d:d) + $(COMMAND_ECHO)$(COPY) $< $@ + +LOCALSCP9FILES+=$(foreach,i,$(SCP9FILES) $(foreach,j,$(SCP9LINK_PRODUCT_TYPE) $(PAR)/$j/$i )) + +$(SCP9TARGETN): $(LOCALSCP9FILES) + @echo "Making: " $(@:f) + @@-$(MKDIRHIER) $(BIN)/$(SCP9LINK_PRODUCT_TYPE) + $(COMMAND_ECHO)$(SCPLINK) $(SCPLINKFLAGS) @@$(mktmp $(foreach,i,$(SCP9FILES) $(subst,$(@:d:d:d), $(@:d:d))/$(i:+","))) -o $@ +.ENDIF + +# Anweisungen fuer das Linken +# unroll begin + +.IF "$(SCP10TARGETN)"!="" + +# try to get missing parfiles +$(PAR)/%.par : $(SOLARPARDIR)/%.par + @@-$(MKDIRHIER) $(@:d:d) + $(COMMAND_ECHO)$(COPY) $< $@ + +LOCALSCP10FILES+=$(foreach,i,$(SCP10FILES) $(foreach,j,$(SCP10LINK_PRODUCT_TYPE) $(PAR)/$j/$i )) + +$(SCP10TARGETN): $(LOCALSCP10FILES) + @echo "Making: " $(@:f) + @@-$(MKDIRHIER) $(BIN)/$(SCP10LINK_PRODUCT_TYPE) + $(COMMAND_ECHO)$(SCPLINK) $(SCPLINKFLAGS) @@$(mktmp $(foreach,i,$(SCP10FILES) $(subst,$(@:d:d:d), $(@:d:d))/$(i:+","))) -o $@ +.ENDIF + +# Anweisungen fuer das Linken diff --git a/solenv/inc/_tg_sdi.mk b/solenv/inc/_tg_sdi.mk new file mode 100644 index 000000000000..45ea433b04b2 --- /dev/null +++ b/solenv/inc/_tg_sdi.mk @@ -0,0 +1,180 @@ +# unroll begin + +.IF "$(SDI1TARGET)"!="" +$(SDI1TARGET): $(SVSDI1DEPEND) $(SDI1NAME).sdi + @echo "Making: " $(@:f) + @-$(RM) $@ + $(COMMAND_ECHO)$(SVIDL) @$(mktmp \ + $(VERBOSITY) \ + -fs$(INCCOMX)/$(SDI1NAME).hxx \ + -fd$(INCCOMX)/$(SDI1NAME).ilb \ + -fm$(MISC)/$(SDI1NAME).don \ + -fl$(MISC)/$(SDI1NAME).lst \ + -fx$(SDI1EXPORT).sdi \ + -fz$(MISC)/$(SDI1NAME).sid \ + $(SDI1NAME).sdi -I$(MISC) -I$(SVSDIINC) -I$(INC) $(INCLUDE)) +.ENDIF # "$(SDI1TARGET)"!="" + +# Instruction for ??? +# unroll begin + +.IF "$(SDI2TARGET)"!="" +$(SDI2TARGET): $(SVSDI2DEPEND) $(SDI2NAME).sdi + @echo "Making: " $(@:f) + @-$(RM) $@ + $(COMMAND_ECHO)$(SVIDL) @$(mktmp \ + $(VERBOSITY) \ + -fs$(INCCOMX)/$(SDI2NAME).hxx \ + -fd$(INCCOMX)/$(SDI2NAME).ilb \ + -fm$(MISC)/$(SDI2NAME).don \ + -fl$(MISC)/$(SDI2NAME).lst \ + -fx$(SDI2EXPORT).sdi \ + -fz$(MISC)/$(SDI2NAME).sid \ + $(SDI2NAME).sdi -I$(MISC) -I$(SVSDIINC) -I$(INC) $(INCLUDE)) +.ENDIF # "$(SDI2TARGET)"!="" + +# Instruction for ??? +# unroll begin + +.IF "$(SDI3TARGET)"!="" +$(SDI3TARGET): $(SVSDI3DEPEND) $(SDI3NAME).sdi + @echo "Making: " $(@:f) + @-$(RM) $@ + $(COMMAND_ECHO)$(SVIDL) @$(mktmp \ + $(VERBOSITY) \ + -fs$(INCCOMX)/$(SDI3NAME).hxx \ + -fd$(INCCOMX)/$(SDI3NAME).ilb \ + -fm$(MISC)/$(SDI3NAME).don \ + -fl$(MISC)/$(SDI3NAME).lst \ + -fx$(SDI3EXPORT).sdi \ + -fz$(MISC)/$(SDI3NAME).sid \ + $(SDI3NAME).sdi -I$(MISC) -I$(SVSDIINC) -I$(INC) $(INCLUDE)) +.ENDIF # "$(SDI3TARGET)"!="" + +# Instruction for ??? +# unroll begin + +.IF "$(SDI4TARGET)"!="" +$(SDI4TARGET): $(SVSDI4DEPEND) $(SDI4NAME).sdi + @echo "Making: " $(@:f) + @-$(RM) $@ + $(COMMAND_ECHO)$(SVIDL) @$(mktmp \ + $(VERBOSITY) \ + -fs$(INCCOMX)/$(SDI4NAME).hxx \ + -fd$(INCCOMX)/$(SDI4NAME).ilb \ + -fm$(MISC)/$(SDI4NAME).don \ + -fl$(MISC)/$(SDI4NAME).lst \ + -fx$(SDI4EXPORT).sdi \ + -fz$(MISC)/$(SDI4NAME).sid \ + $(SDI4NAME).sdi -I$(MISC) -I$(SVSDIINC) -I$(INC) $(INCLUDE)) +.ENDIF # "$(SDI4TARGET)"!="" + +# Instruction for ??? +# unroll begin + +.IF "$(SDI5TARGET)"!="" +$(SDI5TARGET): $(SVSDI5DEPEND) $(SDI5NAME).sdi + @echo "Making: " $(@:f) + @-$(RM) $@ + $(COMMAND_ECHO)$(SVIDL) @$(mktmp \ + $(VERBOSITY) \ + -fs$(INCCOMX)/$(SDI5NAME).hxx \ + -fd$(INCCOMX)/$(SDI5NAME).ilb \ + -fm$(MISC)/$(SDI5NAME).don \ + -fl$(MISC)/$(SDI5NAME).lst \ + -fx$(SDI5EXPORT).sdi \ + -fz$(MISC)/$(SDI5NAME).sid \ + $(SDI5NAME).sdi -I$(MISC) -I$(SVSDIINC) -I$(INC) $(INCLUDE)) +.ENDIF # "$(SDI5TARGET)"!="" + +# Instruction for ??? +# unroll begin + +.IF "$(SDI6TARGET)"!="" +$(SDI6TARGET): $(SVSDI6DEPEND) $(SDI6NAME).sdi + @echo "Making: " $(@:f) + @-$(RM) $@ + $(COMMAND_ECHO)$(SVIDL) @$(mktmp \ + $(VERBOSITY) \ + -fs$(INCCOMX)/$(SDI6NAME).hxx \ + -fd$(INCCOMX)/$(SDI6NAME).ilb \ + -fm$(MISC)/$(SDI6NAME).don \ + -fl$(MISC)/$(SDI6NAME).lst \ + -fx$(SDI6EXPORT).sdi \ + -fz$(MISC)/$(SDI6NAME).sid \ + $(SDI6NAME).sdi -I$(MISC) -I$(SVSDIINC) -I$(INC) $(INCLUDE)) +.ENDIF # "$(SDI6TARGET)"!="" + +# Instruction for ??? +# unroll begin + +.IF "$(SDI7TARGET)"!="" +$(SDI7TARGET): $(SVSDI7DEPEND) $(SDI7NAME).sdi + @echo "Making: " $(@:f) + @-$(RM) $@ + $(COMMAND_ECHO)$(SVIDL) @$(mktmp \ + $(VERBOSITY) \ + -fs$(INCCOMX)/$(SDI7NAME).hxx \ + -fd$(INCCOMX)/$(SDI7NAME).ilb \ + -fm$(MISC)/$(SDI7NAME).don \ + -fl$(MISC)/$(SDI7NAME).lst \ + -fx$(SDI7EXPORT).sdi \ + -fz$(MISC)/$(SDI7NAME).sid \ + $(SDI7NAME).sdi -I$(MISC) -I$(SVSDIINC) -I$(INC) $(INCLUDE)) +.ENDIF # "$(SDI7TARGET)"!="" + +# Instruction for ??? +# unroll begin + +.IF "$(SDI8TARGET)"!="" +$(SDI8TARGET): $(SVSDI8DEPEND) $(SDI8NAME).sdi + @echo "Making: " $(@:f) + @-$(RM) $@ + $(COMMAND_ECHO)$(SVIDL) @$(mktmp \ + $(VERBOSITY) \ + -fs$(INCCOMX)/$(SDI8NAME).hxx \ + -fd$(INCCOMX)/$(SDI8NAME).ilb \ + -fm$(MISC)/$(SDI8NAME).don \ + -fl$(MISC)/$(SDI8NAME).lst \ + -fx$(SDI8EXPORT).sdi \ + -fz$(MISC)/$(SDI8NAME).sid \ + $(SDI8NAME).sdi -I$(MISC) -I$(SVSDIINC) -I$(INC) $(INCLUDE)) +.ENDIF # "$(SDI8TARGET)"!="" + +# Instruction for ??? +# unroll begin + +.IF "$(SDI9TARGET)"!="" +$(SDI9TARGET): $(SVSDI9DEPEND) $(SDI9NAME).sdi + @echo "Making: " $(@:f) + @-$(RM) $@ + $(COMMAND_ECHO)$(SVIDL) @$(mktmp \ + $(VERBOSITY) \ + -fs$(INCCOMX)/$(SDI9NAME).hxx \ + -fd$(INCCOMX)/$(SDI9NAME).ilb \ + -fm$(MISC)/$(SDI9NAME).don \ + -fl$(MISC)/$(SDI9NAME).lst \ + -fx$(SDI9EXPORT).sdi \ + -fz$(MISC)/$(SDI9NAME).sid \ + $(SDI9NAME).sdi -I$(MISC) -I$(SVSDIINC) -I$(INC) $(INCLUDE)) +.ENDIF # "$(SDI9TARGET)"!="" + +# Instruction for ??? +# unroll begin + +.IF "$(SDI10TARGET)"!="" +$(SDI10TARGET): $(SVSDI10DEPEND) $(SDI10NAME).sdi + @echo "Making: " $(@:f) + @-$(RM) $@ + $(COMMAND_ECHO)$(SVIDL) @$(mktmp \ + $(VERBOSITY) \ + -fs$(INCCOMX)/$(SDI10NAME).hxx \ + -fd$(INCCOMX)/$(SDI10NAME).ilb \ + -fm$(MISC)/$(SDI10NAME).don \ + -fl$(MISC)/$(SDI10NAME).lst \ + -fx$(SDI10EXPORT).sdi \ + -fz$(MISC)/$(SDI10NAME).sid \ + $(SDI10NAME).sdi -I$(MISC) -I$(SVSDIINC) -I$(INC) $(INCLUDE)) +.ENDIF # "$(SDI10TARGET)"!="" + +# Instruction for ??? diff --git a/solenv/inc/_tg_shl.mk b/solenv/inc/_tg_shl.mk new file mode 100644 index 000000000000..a60f9cec8a47 --- /dev/null +++ b/solenv/inc/_tg_shl.mk @@ -0,0 +1,5470 @@ +# unroll begin + +.IF "$(SHL1TARGETN)"!="" + +.IF "$(SHLLINKARCONLY)" != "" +SHL1STDLIBS= +STDSHL= +.ELSE +SHL1ARCHIVES= +.ENDIF + +# decide how to link +.IF "$(SHL1CODETYPE)"=="C" +SHL1LINKER=$(LINKC) +SHL1STDSHL=$(subst,CPPRUNTIME, $(STDSHL)) +SHL1LINKFLAGS+=$(LINKCFLAGS) +.ELSE # "$(SHL1CODETYPE)"=="C" +SHL1LINKER=$(LINK) +SHL1STDSHL=$(subst,CPPRUNTIME,$(STDLIBCPP) $(STDSHL)) +SHL1LINKFLAGS+=$(LINKFLAGS) +.ENDIF # "$(SHL1CODETYPE)"=="C" + +SHL1RPATH*=OOO +LINKFLAGSRUNPATH_$(SHL1RPATH)*=/ERROR:/Bad_SHL1RPATH_value +SHL1LINKFLAGS+=$(LINKFLAGSRUNPATH_$(SHL1RPATH)) + +.IF "$(SHL1USE_EXPORTS)"=="" +SHL1DEF*=$(MISC)/$(SHL1TARGET).def +.ENDIF # "$(SHL1USE_EXPORTS)"=="" + +EXTRALIBPATHS1=$(EXTRALIBPATHS) +.IF "$(UPDATER)"=="YES" +.IF "$(SHL1NOCHECK)"=="" +.IF "$(SOLAR_STLLIBPATH)"!="" +EXTRALIBPATHS1+=-L$(SOLAR_STLLIBPATH) +.ENDIF +.ENDIF # "$(SHL1NOCHECK)"!="" +.ENDIF +#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +#+++++++++++ version object ++++++++++++++++++++++++++++++++++++++++ +#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + +.IF "$(L10N_framework)"=="" +.IF "$(VERSIONOBJ)"!="" +SHL1VERSIONOBJ:=$(VERSIONOBJ:d){$(subst,$(DLLPOSTFIX),_dflt $(SHL1TARGET))}$(VERSIONOBJ:f) +USE_VERSIONH:=$(INCCOM)/$(SHL1VERSIONOBJ:b).h +.IF "$(GUI)" == "UNX" +SHL1VERSIONOBJDEP:=$(VERSIONOBJ:d){$(subst,$(DLLPOSTFIX),_dflt $(SHL1TARGET))}$(VERSIONOBJ:f:s/.o/.obj/) +.ELSE # "$(GUI)" == "UNX" +SHL1VERSIONOBJDEP:=$(VERSIONOBJ:d){$(subst,$(DLLPOSTFIX),_dflt $(SHL1TARGET))}$(VERSIONOBJ:f) +.ENDIF # "$(GUI)" == "UNX" +$(MISC)/$(SHL1VERSIONOBJ:b).c : $(SOLARENV)/src/version.c $(INCCOM)/$(SHL1VERSIONOBJ:b).h +# $(COPY) $(SOLARENV)/src/version.c $@ + $(COMMAND_ECHO)$(TYPE) $(SOLARENV)/src/version.c | $(SED) s/_version.h/$(SHL1VERSIONOBJ:b).h/ > $@ + +.INIT : $(SHL1VERSIONOBJDEP) +.ENDIF # "$(VERSIONOBJ)"!="" +.ENDIF + +.IF "$(GUI)" != "UNX" +.IF "$(GUI)" == "WNT" +.IF "$(SHL1IMPLIB)" == "" +SHL1IMPLIB=i$(TARGET)_t1 +.ENDIF # "$(SHL1IMPLIB)" == "" +.IF "$(COM)" != "GCC" +USE_1IMPLIB=-implib:$(LB)/$(SHL1IMPLIB).lib +SHL1IMPLIBN=$(LB)/$(SHL1IMPLIB).lib +.ELSE +USE_1IMPLIB=-Wl,--out-implib=$(SHL1IMPLIBN) +SHL1IMPLIBN=$(LB)/lib$(SHL1IMPLIB).dll.a +.ENDIF # "$(COM)" != "GCC" +ALLTAR : $(SHL1IMPLIBN) + +.IF "$(USE_DEFFILE)"=="" +.IF "$(COM)" != "GCC" +USE_1IMPLIB_DEPS=$(LB)/$(SHL1IMPLIB).lib +.ENDIF +.ENDIF # "$(USE_DEFFILE)"=="" +.ENDIF # "$(GUI)" == "WNT" +USE_SHL1DEF=$(SHL1DEF) +.ELSE # "$(GUI)" != "UNX" +USE_SHL1DEF= +SHL1DEPN+:=$(SHL1DEPNU) + +.IF "$(SHL1VERSIONMAP)"=="" +# to activate vmaps remove "#" +USE_SHL1VERSIONMAP=$(MISC)/$(SHL1TARGET).vmap +.ENDIF # "$(SHL1VERSIONMAP)"=="" + +.IF "$(USE_SHL1VERSIONMAP)"!="" + +.IF "$(SHL1FILTERFILE)"!="" +.IF "$(SHL1VERSIONMAP)"!="" +#eine von beiden ist zuviel +USE_SHL1VERSIONMAP=$(MISC)/$(SHL1TARGET).vmap +$(USE_SHL1VERSIONMAP) .PHONY: + @echo ----------------------------- + @echo you should only use versionmap OR exportfile + @echo ----------------------------- +# force_dmake_to_error + +.ENDIF # "$(SHL1VERSIONMAP)"!="" + +.IF "$(OS)" != "AIX" +SHL1VERSIONMAPPARA=$(LINKVERSIONMAPFLAG) $(USE_SHL1VERSIONMAP) +.ENDIF + +$(USE_SHL1VERSIONMAP): \ + $(SHL1OBJS)\ + $(SHL1LIBS)\ + $(SHL1FILTERFILE) + @$(RM) $@.dump +.IF "$(SHL1OBJS)"!="" +# dump remaining objects on the fly +.IF "$(OS)"=="MACOSX" + @-nm $(SHL1OBJS:s/.obj/.o/) > $@.dump +.ELSE + @nm $(SHL1OBJS:s/.obj/.o/) > $@.dump +.ENDIF +.ENDIF # "$(SHL1OBJS)!"="" + @$(TYPE) /dev/null $(SHL1LIBS:s/.lib/.dump/) >> $@.dump + $(COMMAND_ECHO) $(PERL) $(SOLARENV)/bin/mapgen.pl -d $@.dump -s $(SHL1INTERFACE) -f $(SHL1FILTERFILE) -m $@ + +.ELSE # "$(SHL1FILTERFILE)"!="" +USE_SHL1VERSIONMAP=$(MISC)/$(SHL1TARGET).vmap +$(USE_SHL1VERSIONMAP) : +.IF "$(VERBOSE)" == "TRUE" + @echo ----------------------------- + @echo SHL1FILTERFILE not set! + @echo ----------------------------- + @$(TOUCH) $@ + @echo dummy file to keep the dependencies for later use. +.ELSE + @$(TOUCH) $@ +.ENDIF +# force_dmake_to_error +.ENDIF # "$(SHL1FILTERFILE)"!="" +.ELSE # "$(USE_SHL1VERSIONMAP)"!="" + +#and now for the plain non-generic way... +.IF "$(SHL1VERSIONMAP)"!="" +USE_SHL1VERSIONMAP=$(MISC)/$(SHL1VERSIONMAP:b)_$(SHL1TARGET)$(SHL1VERSIONMAP:e) +.IF "$(OS)" != "AIX" +SHL1VERSIONMAPPARA=$(LINKVERSIONMAPFLAG) $(USE_SHL1VERSIONMAP) +.ENDIF + +.IF "$(OS)"=="MACOSX" +$(USE_SHL1VERSIONMAP): $(SHL1OBJS) $(SHL1LIBS) +.ENDIF + +# .ERRREMOVE is needed as a recipe line like "$(AWK) ... > $@" would create $@ +# even if the $(AWK) part fails: +$(USE_SHL1VERSIONMAP) .ERRREMOVE: $(SHL1VERSIONMAP) + @@-$(RM) -f $@ +# The following files will only be generated and needed on Mac OS X as temporary files +# in order to generate exported symbols list out of Linux/Solaris map files +.IF "$(OS)"=="MACOSX" + @-$(RM) -f $@.symregexp >& $(NULLDEV) + @-$(RM) -f $@.expsymlist >& $(NULLDEV) +.ENDIF +# Its questionable if the following condition '.IF "$(COMID)"=="gcc3"' makes sense and what +# happens if somebody will change it in the future +.IF "$(COMID)"=="gcc3" + $(COMMAND_ECHO) tr -d "\015" < $(SHL1VERSIONMAP) | $(AWK) -f $(SOLARENV)/bin/addsym.awk > $@ +.ELIF "$(COMNAME)"=="sunpro5" + $(COMMAND_ECHO) tr -d "\015" < $(SHL1VERSIONMAP) | $(GREP) -v $(IGNORE_SYMBOLS) > $@ +.ELSE # "$(COMID)"=="gcc3" + $(COMMAND_ECHO) tr -d "\015" < $(SHL1VERSIONMAP) > $@ +.ENDIF # "$(COMID)"=="gcc3" + @chmod a+w $@ +# Mac OS X post-processing generate an exported symbols list from the generated map file +# for details on exported symbols list see man ld on Mac OS X +.IF "$(OS)"=="MACOSX" + @-cat $@ | $(AWK) -f $(SOLARENV)/bin/unxmap-to-macosx-explist.awk | grep -v "\*\|?" > $@.exported-symbols + @-cat $@ | $(AWK) -f $(SOLARENV)/bin/unxmap-to-macosx-explist.awk | grep "\*\|?" > $@.symbols-regexp +# Shared libraries will be build out of the *.obj files specified in SHL?OBJS and SHL?LIBS +# Extract RTTI symbols from all the objects that will be used to build a shared library +.IF "$(SHL1OBJS)"!="" + -echo $(foreach,i,$(SHL1OBJS:s/.obj/.o/) $i) | xargs -n1 nm -gx | $(SOLARENV)/bin/addsym-macosx.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols +.ENDIF +.IF "$(SHL1LIBS)"!="" + $(COMMAND_ECHO)-$(TYPE) $(foreach,j,$(SHL1LIBS) $j) | $(SED) s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g | xargs -n1 nm -gx | $(SOLARENV)/bin/addsym-macosx.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols +.ENDIF +# overwrite the map file generate into the local output tree with the generated +# exported symbols list + cp $@.exported-symbols $@ +.ENDIF # .IF "$(OS)"=="MACOSX" +.ENDIF # "$(SHL1VERSIONMAP)"!="" +.ENDIF # "$(USE_SHL1VERSIONMAP)"!="" +.ENDIF # "$(GUI)" != "UNX" + +.IF "$(UNIXVERSIONNAMES)"!="" +.IF "$(OS)"!="MACOSX" && "$(OS)"!="IOS" && "$(OS)"!="AIX" +.IF "$(GUI)"=="UNX" +SHL1SONAME=\"$(SONAME_SWITCH)$(SHL1TARGETN:f)\" +.ENDIF # "$(GUI)"!="UNX" +.ENDIF # "$(OS)"!="MACOSX" +.ENDIF # "$(UNIXVERSIONNAMES)"!="" + +.IF "$(SHL1RES)"!="" +SHL1ALLRES+=$(SHL1RES) +SHL1LINKRES*=$(MISC)/$(SHL1TARGET).res +SHL1LINKRESO*=$(MISC)/$(SHL1TARGET)_res.o +.ENDIF # "$(SHL1RES)"!="" + +.IF "$(SHL1DEFAULTRES)$(use_shl_versions)"!="" +SHL1DEFAULTRES*=$(MISC)/$(SHL1TARGET)_def.res +SHL1ALLRES+=$(SHL1DEFAULTRES) +SHL1LINKRES*=$(MISC)/$(SHL1TARGET).res +SHL1LINKRESO*=$(MISC)/$(SHL1TARGET)_res.o +.ENDIF # "$(SHL1DEFAULTRES)$(use_shl_versions)"!="" + +#.IF "$(SHL1TARGETN)"!="" + +.IF "$(linkinc)"!="" +.IF "$(GUI)"=="WNT" +.IF "$(SHL1LIBS)"!="" +$(MISC)/$(SHL1TARGET)_linkinc.ls .PHONY: + @@-$(RM) $@ + $(COMMAND_ECHO)$(SED) -f $(SOLARENV)/bin/chrel.sed $(foreach,i,$(SHL1LIBS) $(i:s/.lib/.lin/)) >> $@ +.ENDIF # "$(SHL1LIBS)"!="" +.ENDIF + +LINKINCTARGETS+=$(MISC)/$(SHL1TARGETN:b)_linkinc.ls +$(SHL1TARGETN) : $(LINKINCTARGETS) + +.ELSE +.IF "$(SHL1USE_EXPORTS)"=="name" +.IF "$(GUI)"=="WNT" +.IF "$(COM)"!="GCC" +.IF "$(SHL1LIBS)"!="" +SHL1LINKLIST=$(MISC)/$(SHL1TARGET)_link.lst +SHL1LINKLISTPARAM=@$(SHL1LINKLIST) +$(SHL1LINKLIST) : $(SHL1LIBS) + @@-$(RM) $@ + $(COMMAND_ECHO)$(SED) -f $(SOLARENV)/bin/chrel.sed $(foreach,i,$(SHL1LIBS) $(i:s/.lib/.lin/)) >> $@ +.ENDIF # "$(SHL1LIBS)"!="" +.ENDIF # "$(COM)"!="GCC" +.ENDIF +.ENDIF # "$(SHL1USE_EXPORTS)"=="name" + +$(MISC)/%linkinc.ls: + @echo . > $@ +.ENDIF # "$(linkinc)"!="" + +.IF "$(COM)" == "GCC" && "$(SHL1IMPLIBN)" != "" +$(SHL1IMPLIBN) : $(SHL1TARGETN) +.ENDIF + +$(SHL1TARGETN) : \ + $(SHL1OBJS)\ + $(SHL1LIBS)\ + $(USE_1IMPLIB_DEPS)\ + $(USE_SHL1DEF)\ + $(USE_SHL1VERSIONMAP)\ + $(SHL1RES)\ + $(SHL1DEPN) \ + $(SHL1LINKLIST) + @echo "Making: " $(@:f) +.IF "$(GUI)" == "WNT" +.IF "$(SHL1DEFAULTRES)"!="" + @@-$(RM) $(MISC)/$(SHL1DEFAULTRES:b).rc +.IF "$(SHL1ICON)" != "" + @echo 1 ICON $(SHL1ICON) >> $(MISC)/$(SHL1DEFAULTRES:b).rc +.ENDIF +.IF "$(use_shl_versions)" != "" +.IF "$(SHL1ADD_VERINFO)"!="" + @echo $(EMQ)#include $(EMQ)"$(SHL1ADD_VERINFO)$(EMQ)" >> $(MISC)/$(SHL1DEFAULTRES:b).rc +.ELSE # "$(SHL1ADD_VERINFO)"!="" + @echo $(EMQ)#define ADDITIONAL_VERINFO1 >> $(MISC)/$(SHL1DEFAULTRES:b).rc + @echo $(EMQ)#define ADDITIONAL_VERINFO2 >> $(MISC)/$(SHL1DEFAULTRES:b).rc + @echo $(EMQ)#define ADDITIONAL_VERINFO3 >> $(MISC)/$(SHL1DEFAULTRES:b).rc +.ENDIF # "$(SHL1ADD_VERINFO)"!="" + @echo $(EMQ)#define VERVARIANT $(BUILD) >> $(MISC)/$(SHL1DEFAULTRES:b).rc + @echo $(EMQ)#define ORG_NAME $(SHL1TARGET)$(DLLPOST) >> $(MISC)/$(SHL1DEFAULTRES:b).rc + @echo $(EMQ)#define INTERNAL_NAME $(SHL1TARGET:b) >> $(MISC)/$(SHL1DEFAULTRES:b).rc + @echo $(EMQ)#include $(EMQ)"shlinfo.rc$(EMQ)" >> $(MISC)/$(SHL1DEFAULTRES:b).rc +.ENDIF # "$(use_shl_versions)" != "" +.IF "$(RCFLAGSOUTRES)"!="" +# rc, takes separate flag naming output file, source .rc file last + $(COMMAND_ECHO)$(RC) -DWIN32 $(INCLUDE) $(RCLINKFLAGS) $(RCFLAGSOUTRES)$(SHL1DEFAULTRES) $(MISC)/$(SHL1DEFAULTRES:b).rc +.ELSE +# windres, just takes output file last + $(COMMAND_ECHO)$(RC) -DWIN32 $(INCLUDE) $(RCLINKFLAGS) $(MISC)/$(SHL1DEFAULTRES:b).rc $(SHL1DEFAULTRES) +.ENDIF +.ENDIF # "$(SHL1DEFAULTRES)"!="" +.IF "$(SHL1ALLRES)"!="" + $(COMMAND_ECHO)$(TYPE) $(SHL1ALLRES) > $(SHL1LINKRES) +.IF "$(COM)"=="GCC" + $(WINDRES) $(SHL1LINKRES) $(SHL1LINKRESO) +.ENDIF # "$(COM)"=="GCC" +.ENDIF # "$(SHL1ALLRES)"!="" +.IF "$(COM)"=="GCC" +# GNU ld since 2.17 supports @cmdfile syntax +.IF "$(USE_DEFFILE)"!="" + $(COMMAND_ECHO)$(LINK) @$(mktmp $(strip \ + $(SHL1LINKFLAGS) \ + $(LINKFLAGSSHL) \ + $(SOLARLIB) \ + $(MINGWSSTDOBJ) \ + -o $@ \ + -Wl,-Map,$(MISC)/$(@:b).map \ + $(SHL1DEF) \ + $(USE_1IMPLIB) \ + $(STDOBJ) \ + $(SHL1VERSIONOBJ) $(SHL1OBJS) \ + $(subst,$(ROUT),$(PRJ)/$(ROUT) $(shell cat /dev/null $(SHL1LIBS))) \ + -Wl,--exclude-libs,ALL,--start-group $(SHL1STDLIBS) -Wl,--end-group \ + $(SHL1STDSHL) $(STDSHL1) \ + $(SHL1LINKRESO) \ + )) +.ELSE + @noop $(assign ALL1OBJLIST:=$(STDOBJ) $(SHL1OBJS) $(SHL1LINKRESO) $(shell $(TYPE) /dev/null $(SHL1LIBS) | $(SED) s?$(ROUT)?$(PRJ)/$(ROUT)?g)) +.IF "$(DEFLIB1NAME)"!="" # do not have to include objs + @noop $(assign DEF1OBJLIST:=$(shell $(TYPE) $(foreach,i,$(DEFLIB1NAME) $(SLB)/$(i).lib) | sed s?$(ROUT)?$(PRJ)/$(ROUT)?g)) + @noop $(foreach,i,$(DEF1OBJLIST) $(assign ALL1OBJLIST:=$(ALL1OBJLIST:s?$i??))) +.ENDIF # "$(DEFLIB1NAME)"!="" + $(COMMAND_ECHO)$(LINK) @$(mktmp $(strip \ + $(SHL1LINKFLAGS) \ + $(LINKFLAGSSHL) \ + $(SOLARLIB) \ + $(MINGWSSTDOBJ) \ + -o $@ \ + -Wl,-Map,$(MISC)/$(@:b).map \ + $(SHL1DEF) \ + $(USE_1IMPLIB) \ + $(STDOBJ) \ + $(SHL1VERSIONOBJ) $(SHL1OBJS) \ + $(subst,$(ROUT),$(PRJ)/$(ROUT) $(shell cat /dev/null $(SHL1LIBS))) \ + -Wl,--exclude-libs,ALL,--start-group $(SHL1STDLIBS) -Wl,--end-group \ + $(SHL1STDSHL) $(STDSHL1) \ + $(SHL1LINKRESO) \ + )) +.ENDIF +.ELSE +.IF "$(linkinc)"=="" +.IF "$(SHL1USE_EXPORTS)"!="name" +.IF "$(USE_DEFFILE)"!="" + $(COMMAND_ECHO)$(SHL1LINKER) @$(mktmp \ + $(SHL1LINKFLAGS) \ + $(LINKFLAGSSHL) \ + $(SHL1STACK) $(SHL1BASEX) \ + -out:$@ \ + -map:$(MISC)/$(@:b).map \ + -def:$(SHL1DEF) \ + $(USE_1IMPLIB) \ + $(STDOBJ) \ + $(SHL1VERSIONOBJ) $(SHL1OBJS) \ + $(SHL1LIBS) \ + $(SHL1STDLIBS) \ + $(SHL1STDSHL) $(STDSHL1) \ + $(SHL1LINKRES) \ + ) +# double check if target was really written... still making sense? + @@$(LS) $@ + @echo linking $@.manifest ... +.IF "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI) +.ELSE + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI) +.ENDIF # "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI) +.ELSE # "$(USE_DEFFILE)"!="" + $(COMMAND_ECHO)$(SHL1LINKER) @$(mktmp $(SHL1LINKFLAGS) \ + $(LINKFLAGSSHL) $(SHL1BASEX) \ + $(SHL1STACK) -out:$(SHL1TARGETN) \ + -map:$(MISC)/$(@:B).map \ + $(LB)/$(SHL1IMPLIB).exp \ + $(STDOBJ) \ + $(SHL1OBJS) $(SHL1VERSIONOBJ) \ + $(SHL1LIBS) \ + $(SHL1STDLIBS) \ + $(SHL1STDSHL) $(STDSHL1) \ + $(SHL1LINKRES) \ + ) +# double check if target was really written... still making sense? + @@$(LS) $@ + @echo linking $@.manifest ... +.IF "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI) +.ELSE + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI) +.ENDIF # "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI) +.ENDIF # "$(USE_DEFFILE)"!="" +.ELSE # "$(SHL1USE_EXPORTS)"!="name" + $(COMMAND_ECHO)$(SHL1LINKER) @$(mktmp $(SHL1LINKFLAGS) \ + $(LINKFLAGSSHL) $(SHL1BASEX) \ + $(SHL1STACK) -out:$(SHL1TARGETN) \ + -map:$(MISC)/$(@:B).map \ + $(USE_1IMPLIB) \ + $(STDOBJ) \ + $(SHL1OBJS) $(SHL1VERSIONOBJ)) \ + $(SHL1LINKLISTPARAM) \ + @$(mktmp $(SHL1STDLIBS) \ + $(SHL1STDSHL) $(STDSHL1) \ + $(SHL1LINKRES) \ + ) + @echo linking $@.manifest ... +.IF "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI) +.ELSE + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI) +.ENDIF # "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI) +.ENDIF # "$(SHL1USE_EXPORTS)"!="name" +.ELSE # "$(linkinc)"=="" + $(COMMAND_ECHO)-$(RM) del $(MISC)/$(SHL1TARGET).lnk + $(COMMAND_ECHO)-$(RM) $(MISC)/$(SHL1TARGET).lst + $(COMMAND_ECHO)$(TYPE) $(mktmp \ + $(SHL1LINKFLAGS) \ + $(LINKFLAGSSHL) $(SHL1BASEX) \ + $(SHL1STACK) $(MAPFILE) \ + -out:$@ \ + $(LB)/$(SHL1IMPLIB).exp \ + $(STDOBJ) \ + $(SHL1OBJS) \ + $(SHL1STDLIBS) \ + $(SHL1STDSHL) $(STDSHL1) \ + $(SHL1LINKRES) \ + ) >> $(MISC)/$(SHL1TARGET).lnk + $(COMMAND_ECHO)$(TYPE) $(MISC)/$(SHL1TARGETN:b)_linkinc.ls >> $(MISC)/$(SHL1TARGET).lnk + $(COMMAND_ECHO)$(SHL1LINKER) @$(MISC)/$(SHL1TARGET).lnk + @echo linking $@.manifest ... +.IF "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI) +.ELSE + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI) +.ENDIF # "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI) +.ENDIF # "$(linkinc)"=="" +.ENDIF # "$(COM)"=="GCC" +.ENDIF # "$(GUI)" == "WNT" +.IF "$(GUI)"=="UNX" +.IF "$(OS)"=="MACOSX" + @-$(RM) $(MISC)/$(@:b).list + @-$(RM) $(MISC)/$(TARGET).$(@:b)_1.cmd + @echo $(STDSLO) $(SHL1OBJS:s/.obj/.o/) \ + $(SHL1VERSIONOBJ) \ + `cat /dev/null $(SHL1LIBS) | sed s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g` | tr -s " " "\n" > $(MISC)/$(@:b).list + @/bin/echo -n $(SHL1LINKER) $(SHL1LINKFLAGS) $(SHL1VERSIONMAPPARA) $(LINKFLAGSSHL) -L$(PRJ)/$(ROUT)/lib $(SOLARLIB) -o $@ \ + $(SHL1STDLIBS) $(SHL1ARCHIVES) $(SHL1STDSHL) $(STDSHL1) -filelist $(MISC)/$(@:b).list $(LINKOUTPUT_FILTER) > $(MISC)/$(TARGET).$(@:b)_1.cmd + @$(PERL) $(SOLARENV)/bin/macosx-dylib-link-list.pl \ + `cat $(MISC)/$(TARGET).$(@:b)_1.cmd` \ + >> $(MISC)/$(TARGET).$(@:b)_1.cmd + .IF "$(VERBOSE)" == "TRUE" + @cat $(MISC)/$(TARGET).$(@:b)_1.cmd + .ENDIF + @+source $(MISC)/$(TARGET).$(@:b)_1.cmd + @$(PERL) $(SOLARENV)/bin/macosx-change-install-names.pl \ + shl $(SHL1RPATH) $@ +.IF "$(SHL1CREATEJNILIB)"!="" + @echo "Making: " $(@:f).jnilib + @macosx-create-bundle $@ +.ENDIF # "$(SHL1CREATEJNILIB)"!="" +.IF "$(UPDATER)"=="YES" +.IF "$(SHL1NOCHECK)"=="" + $(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS1) $(SHL1TARGETN) +.ENDIF # "$(SHL1NOCHECK)"!="" +.ENDIF +.ELIF "$(OS)"=="IOS" + $(COMMAND_ECHO)$(AR) $(LIB1FLAGS) $(LIBFLAGS) $@ $(subst,.obj,.o $(SHL1OBJS)) $(shell cat /dev/null $(LIB1TARGET) $(SHL1LIBS) | sed s\#'^'$(ROUT)\#$(PRJ)/$(ROUT)\#g) + $(COMMAND_ECHO)$(RANLIB) $@ +.ELSE # "$(OS)"=="MACOSX" + @-$(RM) $(MISC)/$(TARGET).$(@:b)_1.cmd + @echo $(SHL1LINKER) $(SHL1LINKFLAGS) $(SHL1SONAME) $(LINKFLAGSSHL) $(SHL1VERSIONMAPPARA) -L$(PRJ)/$(ROUT)/lib $(SOLARLIB) $(STDSLO) $(SHL1OBJS:s/.obj/.o/) \ + $(SHL1VERSIONOBJ) -o $@ \ + `cat /dev/null $(SHL1LIBS) | tr -s " " "\n" | $(SED) s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g` \ + $(SHL1STDLIBS) $(SHL1ARCHIVES) $(SHL1STDSHL) $(STDSHL1) $(LINKOUTPUT_FILTER) > $(MISC)/$(TARGET).$(@:b)_1.cmd + .IF "$(VERBOSE)" == "TRUE" + @cat $(MISC)/$(TARGET).$(@:b)_1.cmd + .ENDIF + @+source $(MISC)/$(TARGET).$(@:b)_1.cmd +.IF "$(UPDATER)"=="YES" +.IF "$(SHL1NOCHECK)"=="" + $(COMMAND_ECHO)-$(RM) $(SHL1TARGETN:d)check_$(SHL1TARGETN:f) + $(COMMAND_ECHO)$(RENAME) $(SHL1TARGETN) $(SHL1TARGETN:d)check_$(SHL1TARGETN:f) +.IF "$(VERBOSE)"=="TRUE" + $(COMMAND_ECHO)$(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS1) $(SHL1TARGETN:d)check_$(SHL1TARGETN:f) +.ELSE + $(COMMAND_ECHO)$(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS1) -- -s $(SHL1TARGETN:d)check_$(SHL1TARGETN:f) +.ENDIF +.ENDIF # "$(SHL1NOCHECK)"!="" +.ENDIF # "$(UPDATER)"=="YES" +.ENDIF # "$(OS)"=="MACOSX" +.IF "$(UNIXVERSIONNAMES)"!="" && "$(OS)"!="IOS" + $(COMMAND_ECHO)$(RM) $(LB)/$(SHL1TARGETN:b) + $(COMMAND_ECHO)cd $(LB) && ln -s $(SHL1TARGETN:f) $(SHL1TARGETN:b) +.ENDIF # "$(UNIXVERSIONNAMES)"!="" +.IF "$(VERBOSE)" == "TRUE" + @ls -l $@ +.ENDIF +.ENDIF # "$(GUI)" == "UNX" + +.ENDIF # "$(SHL1TARGETN)"!="" + +# unroll begin + +.IF "$(SHL2TARGETN)"!="" + +.IF "$(SHLLINKARCONLY)" != "" +SHL2STDLIBS= +STDSHL= +.ELSE +SHL2ARCHIVES= +.ENDIF + +# decide how to link +.IF "$(SHL2CODETYPE)"=="C" +SHL2LINKER=$(LINKC) +SHL2STDSHL=$(subst,CPPRUNTIME, $(STDSHL)) +SHL2LINKFLAGS+=$(LINKCFLAGS) +.ELSE # "$(SHL2CODETYPE)"=="C" +SHL2LINKER=$(LINK) +SHL2STDSHL=$(subst,CPPRUNTIME,$(STDLIBCPP) $(STDSHL)) +SHL2LINKFLAGS+=$(LINKFLAGS) +.ENDIF # "$(SHL2CODETYPE)"=="C" + +SHL2RPATH*=OOO +LINKFLAGSRUNPATH_$(SHL2RPATH)*=/ERROR:/Bad_SHL2RPATH_value +SHL2LINKFLAGS+=$(LINKFLAGSRUNPATH_$(SHL2RPATH)) + +.IF "$(SHL2USE_EXPORTS)"=="" +SHL2DEF*=$(MISC)/$(SHL2TARGET).def +.ENDIF # "$(SHL2USE_EXPORTS)"=="" + +EXTRALIBPATHS2=$(EXTRALIBPATHS) +.IF "$(UPDATER)"=="YES" +.IF "$(SHL2NOCHECK)"=="" +.IF "$(SOLAR_STLLIBPATH)"!="" +EXTRALIBPATHS2+=-L$(SOLAR_STLLIBPATH) +.ENDIF +.ENDIF # "$(SHL2NOCHECK)"!="" +.ENDIF +#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +#+++++++++++ version object ++++++++++++++++++++++++++++++++++++++++ +#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + +.IF "$(L10N_framework)"=="" +.IF "$(VERSIONOBJ)"!="" +SHL2VERSIONOBJ:=$(VERSIONOBJ:d){$(subst,$(DLLPOSTFIX),_dflt $(SHL2TARGET))}$(VERSIONOBJ:f) +USE_VERSIONH:=$(INCCOM)/$(SHL2VERSIONOBJ:b).h +.IF "$(GUI)" == "UNX" +SHL2VERSIONOBJDEP:=$(VERSIONOBJ:d){$(subst,$(DLLPOSTFIX),_dflt $(SHL2TARGET))}$(VERSIONOBJ:f:s/.o/.obj/) +.ELSE # "$(GUI)" == "UNX" +SHL2VERSIONOBJDEP:=$(VERSIONOBJ:d){$(subst,$(DLLPOSTFIX),_dflt $(SHL2TARGET))}$(VERSIONOBJ:f) +.ENDIF # "$(GUI)" == "UNX" +$(MISC)/$(SHL2VERSIONOBJ:b).c : $(SOLARENV)/src/version.c $(INCCOM)/$(SHL2VERSIONOBJ:b).h +# $(COPY) $(SOLARENV)/src/version.c $@ + $(COMMAND_ECHO)$(TYPE) $(SOLARENV)/src/version.c | $(SED) s/_version.h/$(SHL2VERSIONOBJ:b).h/ > $@ + +.INIT : $(SHL2VERSIONOBJDEP) +.ENDIF # "$(VERSIONOBJ)"!="" +.ENDIF + +.IF "$(GUI)" != "UNX" +.IF "$(GUI)" == "WNT" +.IF "$(SHL2IMPLIB)" == "" +SHL2IMPLIB=i$(TARGET)_t2 +.ENDIF # "$(SHL2IMPLIB)" == "" +.IF "$(COM)" != "GCC" +USE_2IMPLIB=-implib:$(LB)/$(SHL2IMPLIB).lib +SHL2IMPLIBN=$(LB)/$(SHL2IMPLIB).lib +.ELSE +USE_2IMPLIB=-Wl,--out-implib=$(SHL2IMPLIBN) +SHL2IMPLIBN=$(LB)/lib$(SHL2IMPLIB).dll.a +.ENDIF # "$(COM)" != "GCC" +ALLTAR : $(SHL2IMPLIBN) + +.IF "$(USE_DEFFILE)"=="" +.IF "$(COM)" != "GCC" +USE_2IMPLIB_DEPS=$(LB)/$(SHL2IMPLIB).lib +.ENDIF +.ENDIF # "$(USE_DEFFILE)"=="" +.ENDIF # "$(GUI)" == "WNT" +USE_SHL2DEF=$(SHL2DEF) +.ELSE # "$(GUI)" != "UNX" +USE_SHL2DEF= +SHL2DEPN+:=$(SHL2DEPNU) + +.IF "$(SHL2VERSIONMAP)"=="" +# to activate vmaps remove "#" +USE_SHL2VERSIONMAP=$(MISC)/$(SHL2TARGET).vmap +.ENDIF # "$(SHL2VERSIONMAP)"=="" + +.IF "$(USE_SHL2VERSIONMAP)"!="" + +.IF "$(SHL2FILTERFILE)"!="" +.IF "$(SHL2VERSIONMAP)"!="" +#eine von beiden ist zuviel +USE_SHL2VERSIONMAP=$(MISC)/$(SHL2TARGET).vmap +$(USE_SHL2VERSIONMAP) .PHONY: + @echo ----------------------------- + @echo you should only use versionmap OR exportfile + @echo ----------------------------- +# force_dmake_to_error + +.ENDIF # "$(SHL2VERSIONMAP)"!="" + +.IF "$(OS)" != "AIX" +SHL2VERSIONMAPPARA=$(LINKVERSIONMAPFLAG) $(USE_SHL2VERSIONMAP) +.ENDIF + +$(USE_SHL2VERSIONMAP): \ + $(SHL2OBJS)\ + $(SHL2LIBS)\ + $(SHL2FILTERFILE) + @$(RM) $@.dump +.IF "$(SHL2OBJS)"!="" +# dump remaining objects on the fly +.IF "$(OS)"=="MACOSX" + @-nm $(SHL2OBJS:s/.obj/.o/) > $@.dump +.ELSE + @nm $(SHL2OBJS:s/.obj/.o/) > $@.dump +.ENDIF +.ENDIF # "$(SHL2OBJS)!"="" + @$(TYPE) /dev/null $(SHL2LIBS:s/.lib/.dump/) >> $@.dump + $(COMMAND_ECHO) $(PERL) $(SOLARENV)/bin/mapgen.pl -d $@.dump -s $(SHL2INTERFACE) -f $(SHL2FILTERFILE) -m $@ + +.ELSE # "$(SHL2FILTERFILE)"!="" +USE_SHL2VERSIONMAP=$(MISC)/$(SHL2TARGET).vmap +$(USE_SHL2VERSIONMAP) : +.IF "$(VERBOSE)" == "TRUE" + @echo ----------------------------- + @echo SHL2FILTERFILE not set! + @echo ----------------------------- + @$(TOUCH) $@ + @echo dummy file to keep the dependencies for later use. +.ELSE + @$(TOUCH) $@ +.ENDIF +# force_dmake_to_error +.ENDIF # "$(SHL2FILTERFILE)"!="" +.ELSE # "$(USE_SHL2VERSIONMAP)"!="" + +#and now for the plain non-generic way... +.IF "$(SHL2VERSIONMAP)"!="" +USE_SHL2VERSIONMAP=$(MISC)/$(SHL2VERSIONMAP:b)_$(SHL2TARGET)$(SHL2VERSIONMAP:e) +.IF "$(OS)" != "AIX" +SHL2VERSIONMAPPARA=$(LINKVERSIONMAPFLAG) $(USE_SHL2VERSIONMAP) +.ENDIF + +.IF "$(OS)"=="MACOSX" +$(USE_SHL2VERSIONMAP): $(SHL2OBJS) $(SHL2LIBS) +.ENDIF + +# .ERRREMOVE is needed as a recipe line like "$(AWK) ... > $@" would create $@ +# even if the $(AWK) part fails: +$(USE_SHL2VERSIONMAP) .ERRREMOVE: $(SHL2VERSIONMAP) + @@-$(RM) -f $@ +# The following files will only be generated and needed on Mac OS X as temporary files +# in order to generate exported symbols list out of Linux/Solaris map files +.IF "$(OS)"=="MACOSX" + @-$(RM) -f $@.symregexp >& $(NULLDEV) + @-$(RM) -f $@.expsymlist >& $(NULLDEV) +.ENDIF +# Its questionable if the following condition '.IF "$(COMID)"=="gcc3"' makes sense and what +# happens if somebody will change it in the future +.IF "$(COMID)"=="gcc3" + $(COMMAND_ECHO) tr -d "\015" < $(SHL2VERSIONMAP) | $(AWK) -f $(SOLARENV)/bin/addsym.awk > $@ +.ELIF "$(COMNAME)"=="sunpro5" + $(COMMAND_ECHO) tr -d "\015" < $(SHL2VERSIONMAP) | $(GREP) -v $(IGNORE_SYMBOLS) > $@ +.ELSE # "$(COMID)"=="gcc3" + $(COMMAND_ECHO) tr -d "\015" < $(SHL2VERSIONMAP) > $@ +.ENDIF # "$(COMID)"=="gcc3" + @chmod a+w $@ +# Mac OS X post-processing generate an exported symbols list from the generated map file +# for details on exported symbols list see man ld on Mac OS X +.IF "$(OS)"=="MACOSX" + @-cat $@ | $(AWK) -f $(SOLARENV)/bin/unxmap-to-macosx-explist.awk | grep -v "\*\|?" > $@.exported-symbols + @-cat $@ | $(AWK) -f $(SOLARENV)/bin/unxmap-to-macosx-explist.awk | grep "\*\|?" > $@.symbols-regexp +# Shared libraries will be build out of the *.obj files specified in SHL?OBJS and SHL?LIBS +# Extract RTTI symbols from all the objects that will be used to build a shared library +.IF "$(SHL2OBJS)"!="" + -echo $(foreach,i,$(SHL2OBJS:s/.obj/.o/) $i) | xargs -n1 nm -gx | $(SOLARENV)/bin/addsym-macosx.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols +.ENDIF +.IF "$(SHL2LIBS)"!="" + $(COMMAND_ECHO)-$(TYPE) $(foreach,j,$(SHL2LIBS) $j) | $(SED) s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g | xargs -n1 nm -gx | $(SOLARENV)/bin/addsym-macosx.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols +.ENDIF +# overwrite the map file generate into the local output tree with the generated +# exported symbols list + cp $@.exported-symbols $@ +.ENDIF # .IF "$(OS)"=="MACOSX" +.ENDIF # "$(SHL2VERSIONMAP)"!="" +.ENDIF # "$(USE_SHL2VERSIONMAP)"!="" +.ENDIF # "$(GUI)" != "UNX" + +.IF "$(UNIXVERSIONNAMES)"!="" +.IF "$(OS)"!="MACOSX" && "$(OS)"!="IOS" && "$(OS)"!="AIX" +.IF "$(GUI)"=="UNX" +SHL2SONAME=\"$(SONAME_SWITCH)$(SHL2TARGETN:f)\" +.ENDIF # "$(GUI)"!="UNX" +.ENDIF # "$(OS)"!="MACOSX" +.ENDIF # "$(UNIXVERSIONNAMES)"!="" + +.IF "$(SHL2RES)"!="" +SHL2ALLRES+=$(SHL2RES) +SHL2LINKRES*=$(MISC)/$(SHL2TARGET).res +SHL2LINKRESO*=$(MISC)/$(SHL2TARGET)_res.o +.ENDIF # "$(SHL2RES)"!="" + +.IF "$(SHL2DEFAULTRES)$(use_shl_versions)"!="" +SHL2DEFAULTRES*=$(MISC)/$(SHL2TARGET)_def.res +SHL2ALLRES+=$(SHL2DEFAULTRES) +SHL2LINKRES*=$(MISC)/$(SHL2TARGET).res +SHL2LINKRESO*=$(MISC)/$(SHL2TARGET)_res.o +.ENDIF # "$(SHL2DEFAULTRES)$(use_shl_versions)"!="" + +#.IF "$(SHL2TARGETN)"!="" + +.IF "$(linkinc)"!="" +.IF "$(GUI)"=="WNT" +.IF "$(SHL2LIBS)"!="" +$(MISC)/$(SHL2TARGET)_linkinc.ls .PHONY: + @@-$(RM) $@ + $(COMMAND_ECHO)$(SED) -f $(SOLARENV)/bin/chrel.sed $(foreach,i,$(SHL2LIBS) $(i:s/.lib/.lin/)) >> $@ +.ENDIF # "$(SHL2LIBS)"!="" +.ENDIF + +LINKINCTARGETS+=$(MISC)/$(SHL2TARGETN:b)_linkinc.ls +$(SHL2TARGETN) : $(LINKINCTARGETS) + +.ELSE +.IF "$(SHL2USE_EXPORTS)"=="name" +.IF "$(GUI)"=="WNT" +.IF "$(COM)"!="GCC" +.IF "$(SHL2LIBS)"!="" +SHL2LINKLIST=$(MISC)/$(SHL2TARGET)_link.lst +SHL2LINKLISTPARAM=@$(SHL2LINKLIST) +$(SHL2LINKLIST) : $(SHL2LIBS) + @@-$(RM) $@ + $(COMMAND_ECHO)$(SED) -f $(SOLARENV)/bin/chrel.sed $(foreach,i,$(SHL2LIBS) $(i:s/.lib/.lin/)) >> $@ +.ENDIF # "$(SHL2LIBS)"!="" +.ENDIF # "$(COM)"!="GCC" +.ENDIF +.ENDIF # "$(SHL2USE_EXPORTS)"=="name" + +$(MISC)/%linkinc.ls: + @echo . > $@ +.ENDIF # "$(linkinc)"!="" + +.IF "$(COM)" == "GCC" && "$(SHL2IMPLIBN)" != "" +$(SHL2IMPLIBN) : $(SHL2TARGETN) +.ENDIF + +$(SHL2TARGETN) : \ + $(SHL2OBJS)\ + $(SHL2LIBS)\ + $(USE_2IMPLIB_DEPS)\ + $(USE_SHL2DEF)\ + $(USE_SHL2VERSIONMAP)\ + $(SHL2RES)\ + $(SHL2DEPN) \ + $(SHL2LINKLIST) + @echo "Making: " $(@:f) +.IF "$(GUI)" == "WNT" +.IF "$(SHL2DEFAULTRES)"!="" + @@-$(RM) $(MISC)/$(SHL2DEFAULTRES:b).rc +.IF "$(SHL2ICON)" != "" + @echo 1 ICON $(SHL2ICON) >> $(MISC)/$(SHL2DEFAULTRES:b).rc +.ENDIF +.IF "$(use_shl_versions)" != "" +.IF "$(SHL2ADD_VERINFO)"!="" + @echo $(EMQ)#include $(EMQ)"$(SHL2ADD_VERINFO)$(EMQ)" >> $(MISC)/$(SHL2DEFAULTRES:b).rc +.ELSE # "$(SHL2ADD_VERINFO)"!="" + @echo $(EMQ)#define ADDITIONAL_VERINFO1 >> $(MISC)/$(SHL2DEFAULTRES:b).rc + @echo $(EMQ)#define ADDITIONAL_VERINFO2 >> $(MISC)/$(SHL2DEFAULTRES:b).rc + @echo $(EMQ)#define ADDITIONAL_VERINFO3 >> $(MISC)/$(SHL2DEFAULTRES:b).rc +.ENDIF # "$(SHL2ADD_VERINFO)"!="" + @echo $(EMQ)#define VERVARIANT $(BUILD) >> $(MISC)/$(SHL2DEFAULTRES:b).rc + @echo $(EMQ)#define ORG_NAME $(SHL2TARGET)$(DLLPOST) >> $(MISC)/$(SHL2DEFAULTRES:b).rc + @echo $(EMQ)#define INTERNAL_NAME $(SHL2TARGET:b) >> $(MISC)/$(SHL2DEFAULTRES:b).rc + @echo $(EMQ)#include $(EMQ)"shlinfo.rc$(EMQ)" >> $(MISC)/$(SHL2DEFAULTRES:b).rc +.ENDIF # "$(use_shl_versions)" != "" +.IF "$(RCFLAGSOUTRES)"!="" +# rc, takes separate flag naming output file, source .rc file last + $(COMMAND_ECHO)$(RC) -DWIN32 $(INCLUDE) $(RCLINKFLAGS) $(RCFLAGSOUTRES)$(SHL2DEFAULTRES) $(MISC)/$(SHL2DEFAULTRES:b).rc +.ELSE +# windres, just takes output file last + $(COMMAND_ECHO)$(RC) -DWIN32 $(INCLUDE) $(RCLINKFLAGS) $(MISC)/$(SHL2DEFAULTRES:b).rc $(SHL2DEFAULTRES) +.ENDIF +.ENDIF # "$(SHL2DEFAULTRES)"!="" +.IF "$(SHL2ALLRES)"!="" + $(COMMAND_ECHO)$(TYPE) $(SHL2ALLRES) > $(SHL2LINKRES) +.IF "$(COM)"=="GCC" + $(WINDRES) $(SHL2LINKRES) $(SHL2LINKRESO) +.ENDIF # "$(COM)"=="GCC" +.ENDIF # "$(SHL2ALLRES)"!="" +.IF "$(COM)"=="GCC" +# GNU ld since 2.17 supports @cmdfile syntax +.IF "$(USE_DEFFILE)"!="" + $(COMMAND_ECHO)$(LINK) @$(mktmp $(strip \ + $(SHL2LINKFLAGS) \ + $(LINKFLAGSSHL) \ + $(SOLARLIB) \ + $(MINGWSSTDOBJ) \ + -o $@ \ + -Wl,-Map,$(MISC)/$(@:b).map \ + $(SHL2DEF) \ + $(USE_2IMPLIB) \ + $(STDOBJ) \ + $(SHL2VERSIONOBJ) $(SHL2OBJS) \ + $(subst,$(ROUT),$(PRJ)/$(ROUT) $(shell cat /dev/null $(SHL2LIBS))) \ + -Wl,--exclude-libs,ALL,--start-group $(SHL2STDLIBS) -Wl,--end-group \ + $(SHL2STDSHL) $(STDSHL2) \ + $(SHL2LINKRESO) \ + )) +.ELSE + @noop $(assign ALL2OBJLIST:=$(STDOBJ) $(SHL2OBJS) $(SHL2LINKRESO) $(shell $(TYPE) /dev/null $(SHL2LIBS) | $(SED) s?$(ROUT)?$(PRJ)/$(ROUT)?g)) +.IF "$(DEFLIB2NAME)"!="" # do not have to include objs + @noop $(assign DEF2OBJLIST:=$(shell $(TYPE) $(foreach,i,$(DEFLIB2NAME) $(SLB)/$(i).lib) | sed s?$(ROUT)?$(PRJ)/$(ROUT)?g)) + @noop $(foreach,i,$(DEF2OBJLIST) $(assign ALL2OBJLIST:=$(ALL2OBJLIST:s?$i??))) +.ENDIF # "$(DEFLIB2NAME)"!="" + $(COMMAND_ECHO)$(LINK) @$(mktmp $(strip \ + $(SHL2LINKFLAGS) \ + $(LINKFLAGSSHL) \ + $(SOLARLIB) \ + $(MINGWSSTDOBJ) \ + -o $@ \ + -Wl,-Map,$(MISC)/$(@:b).map \ + $(SHL2DEF) \ + $(USE_2IMPLIB) \ + $(STDOBJ) \ + $(SHL2VERSIONOBJ) $(SHL2OBJS) \ + $(subst,$(ROUT),$(PRJ)/$(ROUT) $(shell cat /dev/null $(SHL2LIBS))) \ + -Wl,--exclude-libs,ALL,--start-group $(SHL2STDLIBS) -Wl,--end-group \ + $(SHL2STDSHL) $(STDSHL2) \ + $(SHL2LINKRESO) \ + )) +.ENDIF +.ELSE +.IF "$(linkinc)"=="" +.IF "$(SHL2USE_EXPORTS)"!="name" +.IF "$(USE_DEFFILE)"!="" + $(COMMAND_ECHO)$(SHL2LINKER) @$(mktmp \ + $(SHL2LINKFLAGS) \ + $(LINKFLAGSSHL) \ + $(SHL2STACK) $(SHL2BASEX) \ + -out:$@ \ + -map:$(MISC)/$(@:b).map \ + -def:$(SHL2DEF) \ + $(USE_2IMPLIB) \ + $(STDOBJ) \ + $(SHL2VERSIONOBJ) $(SHL2OBJS) \ + $(SHL2LIBS) \ + $(SHL2STDLIBS) \ + $(SHL2STDSHL) $(STDSHL2) \ + $(SHL2LINKRES) \ + ) +# double check if target was really written... still making sense? + @@$(LS) $@ + @echo linking $@.manifest ... +.IF "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI) +.ELSE + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI) +.ENDIF # "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI) +.ELSE # "$(USE_DEFFILE)"!="" + $(COMMAND_ECHO)$(SHL2LINKER) @$(mktmp $(SHL2LINKFLAGS) \ + $(LINKFLAGSSHL) $(SHL2BASEX) \ + $(SHL2STACK) -out:$(SHL2TARGETN) \ + -map:$(MISC)/$(@:B).map \ + $(LB)/$(SHL2IMPLIB).exp \ + $(STDOBJ) \ + $(SHL2OBJS) $(SHL2VERSIONOBJ) \ + $(SHL2LIBS) \ + $(SHL2STDLIBS) \ + $(SHL2STDSHL) $(STDSHL2) \ + $(SHL2LINKRES) \ + ) +# double check if target was really written... still making sense? + @@$(LS) $@ + @echo linking $@.manifest ... +.IF "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI) +.ELSE + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI) +.ENDIF # "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI) +.ENDIF # "$(USE_DEFFILE)"!="" +.ELSE # "$(SHL2USE_EXPORTS)"!="name" + $(COMMAND_ECHO)$(SHL2LINKER) @$(mktmp $(SHL2LINKFLAGS) \ + $(LINKFLAGSSHL) $(SHL2BASEX) \ + $(SHL2STACK) -out:$(SHL2TARGETN) \ + -map:$(MISC)/$(@:B).map \ + $(USE_2IMPLIB) \ + $(STDOBJ) \ + $(SHL2OBJS) $(SHL2VERSIONOBJ)) \ + $(SHL2LINKLISTPARAM) \ + @$(mktmp $(SHL2STDLIBS) \ + $(SHL2STDSHL) $(STDSHL2) \ + $(SHL2LINKRES) \ + ) + @echo linking $@.manifest ... +.IF "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI) +.ELSE + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI) +.ENDIF # "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI) +.ENDIF # "$(SHL2USE_EXPORTS)"!="name" +.ELSE # "$(linkinc)"=="" + $(COMMAND_ECHO)-$(RM) del $(MISC)/$(SHL2TARGET).lnk + $(COMMAND_ECHO)-$(RM) $(MISC)/$(SHL2TARGET).lst + $(COMMAND_ECHO)$(TYPE) $(mktmp \ + $(SHL2LINKFLAGS) \ + $(LINKFLAGSSHL) $(SHL2BASEX) \ + $(SHL2STACK) $(MAPFILE) \ + -out:$@ \ + $(LB)/$(SHL2IMPLIB).exp \ + $(STDOBJ) \ + $(SHL2OBJS) \ + $(SHL2STDLIBS) \ + $(SHL2STDSHL) $(STDSHL2) \ + $(SHL2LINKRES) \ + ) >> $(MISC)/$(SHL2TARGET).lnk + $(COMMAND_ECHO)$(TYPE) $(MISC)/$(SHL2TARGETN:b)_linkinc.ls >> $(MISC)/$(SHL2TARGET).lnk + $(COMMAND_ECHO)$(SHL2LINKER) @$(MISC)/$(SHL2TARGET).lnk + @echo linking $@.manifest ... +.IF "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI) +.ELSE + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI) +.ENDIF # "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI) +.ENDIF # "$(linkinc)"=="" +.ENDIF # "$(COM)"=="GCC" +.ENDIF # "$(GUI)" == "WNT" +.IF "$(GUI)"=="UNX" +.IF "$(OS)"=="MACOSX" + @-$(RM) $(MISC)/$(@:b).list + @-$(RM) $(MISC)/$(TARGET).$(@:b)_2.cmd + @echo $(STDSLO) $(SHL2OBJS:s/.obj/.o/) \ + $(SHL2VERSIONOBJ) \ + `cat /dev/null $(SHL2LIBS) | sed s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g` | tr -s " " "\n" > $(MISC)/$(@:b).list + @/bin/echo -n $(SHL2LINKER) $(SHL2LINKFLAGS) $(SHL2VERSIONMAPPARA) $(LINKFLAGSSHL) -L$(PRJ)/$(ROUT)/lib $(SOLARLIB) -o $@ \ + $(SHL2STDLIBS) $(SHL2ARCHIVES) $(SHL2STDSHL) $(STDSHL2) -filelist $(MISC)/$(@:b).list $(LINKOUTPUT_FILTER) > $(MISC)/$(TARGET).$(@:b)_2.cmd + @$(PERL) $(SOLARENV)/bin/macosx-dylib-link-list.pl \ + `cat $(MISC)/$(TARGET).$(@:b)_2.cmd` \ + >> $(MISC)/$(TARGET).$(@:b)_2.cmd + .IF "$(VERBOSE)" == "TRUE" + @cat $(MISC)/$(TARGET).$(@:b)_2.cmd + .ENDIF + @+source $(MISC)/$(TARGET).$(@:b)_2.cmd + @$(PERL) $(SOLARENV)/bin/macosx-change-install-names.pl \ + shl $(SHL2RPATH) $@ +.IF "$(SHL2CREATEJNILIB)"!="" + @echo "Making: " $(@:f).jnilib + @macosx-create-bundle $@ +.ENDIF # "$(SHL2CREATEJNILIB)"!="" +.IF "$(UPDATER)"=="YES" +.IF "$(SHL2NOCHECK)"=="" + $(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS2) $(SHL2TARGETN) +.ENDIF # "$(SHL2NOCHECK)"!="" +.ENDIF +.ELIF "$(OS)"=="IOS" + $(COMMAND_ECHO)$(AR) $(LIB2FLAGS) $(LIBFLAGS) $@ $(subst,.obj,.o $(SHL2OBJS)) $(shell cat /dev/null $(LIB2TARGET) $(SHL2LIBS) | sed s\#'^'$(ROUT)\#$(PRJ)/$(ROUT)\#g) + $(COMMAND_ECHO)$(RANLIB) $@ +.ELSE # "$(OS)"=="MACOSX" + @-$(RM) $(MISC)/$(TARGET).$(@:b)_2.cmd + @echo $(SHL2LINKER) $(SHL2LINKFLAGS) $(SHL2SONAME) $(LINKFLAGSSHL) $(SHL2VERSIONMAPPARA) -L$(PRJ)/$(ROUT)/lib $(SOLARLIB) $(STDSLO) $(SHL2OBJS:s/.obj/.o/) \ + $(SHL2VERSIONOBJ) -o $@ \ + `cat /dev/null $(SHL2LIBS) | tr -s " " "\n" | $(SED) s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g` \ + $(SHL2STDLIBS) $(SHL2ARCHIVES) $(SHL2STDSHL) $(STDSHL2) $(LINKOUTPUT_FILTER) > $(MISC)/$(TARGET).$(@:b)_2.cmd + .IF "$(VERBOSE)" == "TRUE" + @cat $(MISC)/$(TARGET).$(@:b)_2.cmd + .ENDIF + @+source $(MISC)/$(TARGET).$(@:b)_2.cmd +.IF "$(UPDATER)"=="YES" +.IF "$(SHL2NOCHECK)"=="" + $(COMMAND_ECHO)-$(RM) $(SHL2TARGETN:d)check_$(SHL2TARGETN:f) + $(COMMAND_ECHO)$(RENAME) $(SHL2TARGETN) $(SHL2TARGETN:d)check_$(SHL2TARGETN:f) +.IF "$(VERBOSE)"=="TRUE" + $(COMMAND_ECHO)$(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS2) $(SHL2TARGETN:d)check_$(SHL2TARGETN:f) +.ELSE + $(COMMAND_ECHO)$(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS2) -- -s $(SHL2TARGETN:d)check_$(SHL2TARGETN:f) +.ENDIF +.ENDIF # "$(SHL2NOCHECK)"!="" +.ENDIF # "$(UPDATER)"=="YES" +.ENDIF # "$(OS)"=="MACOSX" +.IF "$(UNIXVERSIONNAMES)"!="" && "$(OS)"!="IOS" + $(COMMAND_ECHO)$(RM) $(LB)/$(SHL2TARGETN:b) + $(COMMAND_ECHO)cd $(LB) && ln -s $(SHL2TARGETN:f) $(SHL2TARGETN:b) +.ENDIF # "$(UNIXVERSIONNAMES)"!="" +.IF "$(VERBOSE)" == "TRUE" + @ls -l $@ +.ENDIF +.ENDIF # "$(GUI)" == "UNX" + +.ENDIF # "$(SHL2TARGETN)"!="" + +# unroll begin + +.IF "$(SHL3TARGETN)"!="" + +.IF "$(SHLLINKARCONLY)" != "" +SHL3STDLIBS= +STDSHL= +.ELSE +SHL3ARCHIVES= +.ENDIF + +# decide how to link +.IF "$(SHL3CODETYPE)"=="C" +SHL3LINKER=$(LINKC) +SHL3STDSHL=$(subst,CPPRUNTIME, $(STDSHL)) +SHL3LINKFLAGS+=$(LINKCFLAGS) +.ELSE # "$(SHL3CODETYPE)"=="C" +SHL3LINKER=$(LINK) +SHL3STDSHL=$(subst,CPPRUNTIME,$(STDLIBCPP) $(STDSHL)) +SHL3LINKFLAGS+=$(LINKFLAGS) +.ENDIF # "$(SHL3CODETYPE)"=="C" + +SHL3RPATH*=OOO +LINKFLAGSRUNPATH_$(SHL3RPATH)*=/ERROR:/Bad_SHL3RPATH_value +SHL3LINKFLAGS+=$(LINKFLAGSRUNPATH_$(SHL3RPATH)) + +.IF "$(SHL3USE_EXPORTS)"=="" +SHL3DEF*=$(MISC)/$(SHL3TARGET).def +.ENDIF # "$(SHL3USE_EXPORTS)"=="" + +EXTRALIBPATHS3=$(EXTRALIBPATHS) +.IF "$(UPDATER)"=="YES" +.IF "$(SHL3NOCHECK)"=="" +.IF "$(SOLAR_STLLIBPATH)"!="" +EXTRALIBPATHS3+=-L$(SOLAR_STLLIBPATH) +.ENDIF +.ENDIF # "$(SHL3NOCHECK)"!="" +.ENDIF +#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +#+++++++++++ version object ++++++++++++++++++++++++++++++++++++++++ +#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + +.IF "$(L10N_framework)"=="" +.IF "$(VERSIONOBJ)"!="" +SHL3VERSIONOBJ:=$(VERSIONOBJ:d){$(subst,$(DLLPOSTFIX),_dflt $(SHL3TARGET))}$(VERSIONOBJ:f) +USE_VERSIONH:=$(INCCOM)/$(SHL3VERSIONOBJ:b).h +.IF "$(GUI)" == "UNX" +SHL3VERSIONOBJDEP:=$(VERSIONOBJ:d){$(subst,$(DLLPOSTFIX),_dflt $(SHL3TARGET))}$(VERSIONOBJ:f:s/.o/.obj/) +.ELSE # "$(GUI)" == "UNX" +SHL3VERSIONOBJDEP:=$(VERSIONOBJ:d){$(subst,$(DLLPOSTFIX),_dflt $(SHL3TARGET))}$(VERSIONOBJ:f) +.ENDIF # "$(GUI)" == "UNX" +$(MISC)/$(SHL3VERSIONOBJ:b).c : $(SOLARENV)/src/version.c $(INCCOM)/$(SHL3VERSIONOBJ:b).h +# $(COPY) $(SOLARENV)/src/version.c $@ + $(COMMAND_ECHO)$(TYPE) $(SOLARENV)/src/version.c | $(SED) s/_version.h/$(SHL3VERSIONOBJ:b).h/ > $@ + +.INIT : $(SHL3VERSIONOBJDEP) +.ENDIF # "$(VERSIONOBJ)"!="" +.ENDIF + +.IF "$(GUI)" != "UNX" +.IF "$(GUI)" == "WNT" +.IF "$(SHL3IMPLIB)" == "" +SHL3IMPLIB=i$(TARGET)_t3 +.ENDIF # "$(SHL3IMPLIB)" == "" +.IF "$(COM)" != "GCC" +USE_3IMPLIB=-implib:$(LB)/$(SHL3IMPLIB).lib +SHL3IMPLIBN=$(LB)/$(SHL3IMPLIB).lib +.ELSE +USE_3IMPLIB=-Wl,--out-implib=$(SHL3IMPLIBN) +SHL3IMPLIBN=$(LB)/lib$(SHL3IMPLIB).dll.a +.ENDIF # "$(COM)" != "GCC" +ALLTAR : $(SHL3IMPLIBN) + +.IF "$(USE_DEFFILE)"=="" +.IF "$(COM)" != "GCC" +USE_3IMPLIB_DEPS=$(LB)/$(SHL3IMPLIB).lib +.ENDIF +.ENDIF # "$(USE_DEFFILE)"=="" +.ENDIF # "$(GUI)" == "WNT" +USE_SHL3DEF=$(SHL3DEF) +.ELSE # "$(GUI)" != "UNX" +USE_SHL3DEF= +SHL3DEPN+:=$(SHL3DEPNU) + +.IF "$(SHL3VERSIONMAP)"=="" +# to activate vmaps remove "#" +USE_SHL3VERSIONMAP=$(MISC)/$(SHL3TARGET).vmap +.ENDIF # "$(SHL3VERSIONMAP)"=="" + +.IF "$(USE_SHL3VERSIONMAP)"!="" + +.IF "$(SHL3FILTERFILE)"!="" +.IF "$(SHL3VERSIONMAP)"!="" +#eine von beiden ist zuviel +USE_SHL3VERSIONMAP=$(MISC)/$(SHL3TARGET).vmap +$(USE_SHL3VERSIONMAP) .PHONY: + @echo ----------------------------- + @echo you should only use versionmap OR exportfile + @echo ----------------------------- +# force_dmake_to_error + +.ENDIF # "$(SHL3VERSIONMAP)"!="" + +.IF "$(OS)" != "AIX" +SHL3VERSIONMAPPARA=$(LINKVERSIONMAPFLAG) $(USE_SHL3VERSIONMAP) +.ENDIF + +$(USE_SHL3VERSIONMAP): \ + $(SHL3OBJS)\ + $(SHL3LIBS)\ + $(SHL3FILTERFILE) + @$(RM) $@.dump +.IF "$(SHL3OBJS)"!="" +# dump remaining objects on the fly +.IF "$(OS)"=="MACOSX" + @-nm $(SHL3OBJS:s/.obj/.o/) > $@.dump +.ELSE + @nm $(SHL3OBJS:s/.obj/.o/) > $@.dump +.ENDIF +.ENDIF # "$(SHL3OBJS)!"="" + @$(TYPE) /dev/null $(SHL3LIBS:s/.lib/.dump/) >> $@.dump + $(COMMAND_ECHO) $(PERL) $(SOLARENV)/bin/mapgen.pl -d $@.dump -s $(SHL3INTERFACE) -f $(SHL3FILTERFILE) -m $@ + +.ELSE # "$(SHL3FILTERFILE)"!="" +USE_SHL3VERSIONMAP=$(MISC)/$(SHL3TARGET).vmap +$(USE_SHL3VERSIONMAP) : +.IF "$(VERBOSE)" == "TRUE" + @echo ----------------------------- + @echo SHL3FILTERFILE not set! + @echo ----------------------------- + @$(TOUCH) $@ + @echo dummy file to keep the dependencies for later use. +.ELSE + @$(TOUCH) $@ +.ENDIF +# force_dmake_to_error +.ENDIF # "$(SHL3FILTERFILE)"!="" +.ELSE # "$(USE_SHL3VERSIONMAP)"!="" + +#and now for the plain non-generic way... +.IF "$(SHL3VERSIONMAP)"!="" +USE_SHL3VERSIONMAP=$(MISC)/$(SHL3VERSIONMAP:b)_$(SHL3TARGET)$(SHL3VERSIONMAP:e) +.IF "$(OS)" != "AIX" +SHL3VERSIONMAPPARA=$(LINKVERSIONMAPFLAG) $(USE_SHL3VERSIONMAP) +.ENDIF + +.IF "$(OS)"=="MACOSX" +$(USE_SHL3VERSIONMAP): $(SHL3OBJS) $(SHL3LIBS) +.ENDIF + +# .ERRREMOVE is needed as a recipe line like "$(AWK) ... > $@" would create $@ +# even if the $(AWK) part fails: +$(USE_SHL3VERSIONMAP) .ERRREMOVE: $(SHL3VERSIONMAP) + @@-$(RM) -f $@ +# The following files will only be generated and needed on Mac OS X as temporary files +# in order to generate exported symbols list out of Linux/Solaris map files +.IF "$(OS)"=="MACOSX" + @-$(RM) -f $@.symregexp >& $(NULLDEV) + @-$(RM) -f $@.expsymlist >& $(NULLDEV) +.ENDIF +# Its questionable if the following condition '.IF "$(COMID)"=="gcc3"' makes sense and what +# happens if somebody will change it in the future +.IF "$(COMID)"=="gcc3" + $(COMMAND_ECHO) tr -d "\015" < $(SHL3VERSIONMAP) | $(AWK) -f $(SOLARENV)/bin/addsym.awk > $@ +.ELIF "$(COMNAME)"=="sunpro5" + $(COMMAND_ECHO) tr -d "\015" < $(SHL3VERSIONMAP) | $(GREP) -v $(IGNORE_SYMBOLS) > $@ +.ELSE # "$(COMID)"=="gcc3" + $(COMMAND_ECHO) tr -d "\015" < $(SHL3VERSIONMAP) > $@ +.ENDIF # "$(COMID)"=="gcc3" + @chmod a+w $@ +# Mac OS X post-processing generate an exported symbols list from the generated map file +# for details on exported symbols list see man ld on Mac OS X +.IF "$(OS)"=="MACOSX" + @-cat $@ | $(AWK) -f $(SOLARENV)/bin/unxmap-to-macosx-explist.awk | grep -v "\*\|?" > $@.exported-symbols + @-cat $@ | $(AWK) -f $(SOLARENV)/bin/unxmap-to-macosx-explist.awk | grep "\*\|?" > $@.symbols-regexp +# Shared libraries will be build out of the *.obj files specified in SHL?OBJS and SHL?LIBS +# Extract RTTI symbols from all the objects that will be used to build a shared library +.IF "$(SHL3OBJS)"!="" + -echo $(foreach,i,$(SHL3OBJS:s/.obj/.o/) $i) | xargs -n1 nm -gx | $(SOLARENV)/bin/addsym-macosx.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols +.ENDIF +.IF "$(SHL3LIBS)"!="" + $(COMMAND_ECHO)-$(TYPE) $(foreach,j,$(SHL3LIBS) $j) | $(SED) s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g | xargs -n1 nm -gx | $(SOLARENV)/bin/addsym-macosx.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols +.ENDIF +# overwrite the map file generate into the local output tree with the generated +# exported symbols list + cp $@.exported-symbols $@ +.ENDIF # .IF "$(OS)"=="MACOSX" +.ENDIF # "$(SHL3VERSIONMAP)"!="" +.ENDIF # "$(USE_SHL3VERSIONMAP)"!="" +.ENDIF # "$(GUI)" != "UNX" + +.IF "$(UNIXVERSIONNAMES)"!="" +.IF "$(OS)"!="MACOSX" && "$(OS)"!="IOS" && "$(OS)"!="AIX" +.IF "$(GUI)"=="UNX" +SHL3SONAME=\"$(SONAME_SWITCH)$(SHL3TARGETN:f)\" +.ENDIF # "$(GUI)"!="UNX" +.ENDIF # "$(OS)"!="MACOSX" +.ENDIF # "$(UNIXVERSIONNAMES)"!="" + +.IF "$(SHL3RES)"!="" +SHL3ALLRES+=$(SHL3RES) +SHL3LINKRES*=$(MISC)/$(SHL3TARGET).res +SHL3LINKRESO*=$(MISC)/$(SHL3TARGET)_res.o +.ENDIF # "$(SHL3RES)"!="" + +.IF "$(SHL3DEFAULTRES)$(use_shl_versions)"!="" +SHL3DEFAULTRES*=$(MISC)/$(SHL3TARGET)_def.res +SHL3ALLRES+=$(SHL3DEFAULTRES) +SHL3LINKRES*=$(MISC)/$(SHL3TARGET).res +SHL3LINKRESO*=$(MISC)/$(SHL3TARGET)_res.o +.ENDIF # "$(SHL3DEFAULTRES)$(use_shl_versions)"!="" + +#.IF "$(SHL3TARGETN)"!="" + +.IF "$(linkinc)"!="" +.IF "$(GUI)"=="WNT" +.IF "$(SHL3LIBS)"!="" +$(MISC)/$(SHL3TARGET)_linkinc.ls .PHONY: + @@-$(RM) $@ + $(COMMAND_ECHO)$(SED) -f $(SOLARENV)/bin/chrel.sed $(foreach,i,$(SHL3LIBS) $(i:s/.lib/.lin/)) >> $@ +.ENDIF # "$(SHL3LIBS)"!="" +.ENDIF + +LINKINCTARGETS+=$(MISC)/$(SHL3TARGETN:b)_linkinc.ls +$(SHL3TARGETN) : $(LINKINCTARGETS) + +.ELSE +.IF "$(SHL3USE_EXPORTS)"=="name" +.IF "$(GUI)"=="WNT" +.IF "$(COM)"!="GCC" +.IF "$(SHL3LIBS)"!="" +SHL3LINKLIST=$(MISC)/$(SHL3TARGET)_link.lst +SHL3LINKLISTPARAM=@$(SHL3LINKLIST) +$(SHL3LINKLIST) : $(SHL3LIBS) + @@-$(RM) $@ + $(COMMAND_ECHO)$(SED) -f $(SOLARENV)/bin/chrel.sed $(foreach,i,$(SHL3LIBS) $(i:s/.lib/.lin/)) >> $@ +.ENDIF # "$(SHL3LIBS)"!="" +.ENDIF # "$(COM)"!="GCC" +.ENDIF +.ENDIF # "$(SHL3USE_EXPORTS)"=="name" + +$(MISC)/%linkinc.ls: + @echo . > $@ +.ENDIF # "$(linkinc)"!="" + +.IF "$(COM)" == "GCC" && "$(SHL3IMPLIBN)" != "" +$(SHL3IMPLIBN) : $(SHL3TARGETN) +.ENDIF + +$(SHL3TARGETN) : \ + $(SHL3OBJS)\ + $(SHL3LIBS)\ + $(USE_3IMPLIB_DEPS)\ + $(USE_SHL3DEF)\ + $(USE_SHL3VERSIONMAP)\ + $(SHL3RES)\ + $(SHL3DEPN) \ + $(SHL3LINKLIST) + @echo "Making: " $(@:f) +.IF "$(GUI)" == "WNT" +.IF "$(SHL3DEFAULTRES)"!="" + @@-$(RM) $(MISC)/$(SHL3DEFAULTRES:b).rc +.IF "$(SHL3ICON)" != "" + @echo 1 ICON $(SHL3ICON) >> $(MISC)/$(SHL3DEFAULTRES:b).rc +.ENDIF +.IF "$(use_shl_versions)" != "" +.IF "$(SHL3ADD_VERINFO)"!="" + @echo $(EMQ)#include $(EMQ)"$(SHL3ADD_VERINFO)$(EMQ)" >> $(MISC)/$(SHL3DEFAULTRES:b).rc +.ELSE # "$(SHL3ADD_VERINFO)"!="" + @echo $(EMQ)#define ADDITIONAL_VERINFO1 >> $(MISC)/$(SHL3DEFAULTRES:b).rc + @echo $(EMQ)#define ADDITIONAL_VERINFO2 >> $(MISC)/$(SHL3DEFAULTRES:b).rc + @echo $(EMQ)#define ADDITIONAL_VERINFO3 >> $(MISC)/$(SHL3DEFAULTRES:b).rc +.ENDIF # "$(SHL3ADD_VERINFO)"!="" + @echo $(EMQ)#define VERVARIANT $(BUILD) >> $(MISC)/$(SHL3DEFAULTRES:b).rc + @echo $(EMQ)#define ORG_NAME $(SHL3TARGET)$(DLLPOST) >> $(MISC)/$(SHL3DEFAULTRES:b).rc + @echo $(EMQ)#define INTERNAL_NAME $(SHL3TARGET:b) >> $(MISC)/$(SHL3DEFAULTRES:b).rc + @echo $(EMQ)#include $(EMQ)"shlinfo.rc$(EMQ)" >> $(MISC)/$(SHL3DEFAULTRES:b).rc +.ENDIF # "$(use_shl_versions)" != "" +.IF "$(RCFLAGSOUTRES)"!="" +# rc, takes separate flag naming output file, source .rc file last + $(COMMAND_ECHO)$(RC) -DWIN32 $(INCLUDE) $(RCLINKFLAGS) $(RCFLAGSOUTRES)$(SHL3DEFAULTRES) $(MISC)/$(SHL3DEFAULTRES:b).rc +.ELSE +# windres, just takes output file last + $(COMMAND_ECHO)$(RC) -DWIN32 $(INCLUDE) $(RCLINKFLAGS) $(MISC)/$(SHL3DEFAULTRES:b).rc $(SHL3DEFAULTRES) +.ENDIF +.ENDIF # "$(SHL3DEFAULTRES)"!="" +.IF "$(SHL3ALLRES)"!="" + $(COMMAND_ECHO)$(TYPE) $(SHL3ALLRES) > $(SHL3LINKRES) +.IF "$(COM)"=="GCC" + $(WINDRES) $(SHL3LINKRES) $(SHL3LINKRESO) +.ENDIF # "$(COM)"=="GCC" +.ENDIF # "$(SHL3ALLRES)"!="" +.IF "$(COM)"=="GCC" +# GNU ld since 2.17 supports @cmdfile syntax +.IF "$(USE_DEFFILE)"!="" + $(COMMAND_ECHO)$(LINK) @$(mktmp $(strip \ + $(SHL3LINKFLAGS) \ + $(LINKFLAGSSHL) \ + $(SOLARLIB) \ + $(MINGWSSTDOBJ) \ + -o $@ \ + -Wl,-Map,$(MISC)/$(@:b).map \ + $(SHL3DEF) \ + $(USE_3IMPLIB) \ + $(STDOBJ) \ + $(SHL3VERSIONOBJ) $(SHL3OBJS) \ + $(subst,$(ROUT),$(PRJ)/$(ROUT) $(shell cat /dev/null $(SHL3LIBS))) \ + -Wl,--exclude-libs,ALL,--start-group $(SHL3STDLIBS) -Wl,--end-group \ + $(SHL3STDSHL) $(STDSHL3) \ + $(SHL3LINKRESO) \ + )) +.ELSE + @noop $(assign ALL3OBJLIST:=$(STDOBJ) $(SHL3OBJS) $(SHL3LINKRESO) $(shell $(TYPE) /dev/null $(SHL3LIBS) | $(SED) s?$(ROUT)?$(PRJ)/$(ROUT)?g)) +.IF "$(DEFLIB3NAME)"!="" # do not have to include objs + @noop $(assign DEF3OBJLIST:=$(shell $(TYPE) $(foreach,i,$(DEFLIB3NAME) $(SLB)/$(i).lib) | sed s?$(ROUT)?$(PRJ)/$(ROUT)?g)) + @noop $(foreach,i,$(DEF3OBJLIST) $(assign ALL3OBJLIST:=$(ALL3OBJLIST:s?$i??))) +.ENDIF # "$(DEFLIB3NAME)"!="" + $(COMMAND_ECHO)$(LINK) @$(mktmp $(strip \ + $(SHL3LINKFLAGS) \ + $(LINKFLAGSSHL) \ + $(SOLARLIB) \ + $(MINGWSSTDOBJ) \ + -o $@ \ + -Wl,-Map,$(MISC)/$(@:b).map \ + $(SHL3DEF) \ + $(USE_3IMPLIB) \ + $(STDOBJ) \ + $(SHL3VERSIONOBJ) $(SHL3OBJS) \ + $(subst,$(ROUT),$(PRJ)/$(ROUT) $(shell cat /dev/null $(SHL3LIBS))) \ + -Wl,--exclude-libs,ALL,--start-group $(SHL3STDLIBS) -Wl,--end-group \ + $(SHL3STDSHL) $(STDSHL3) \ + $(SHL3LINKRESO) \ + )) +.ENDIF +.ELSE +.IF "$(linkinc)"=="" +.IF "$(SHL3USE_EXPORTS)"!="name" +.IF "$(USE_DEFFILE)"!="" + $(COMMAND_ECHO)$(SHL3LINKER) @$(mktmp \ + $(SHL3LINKFLAGS) \ + $(LINKFLAGSSHL) \ + $(SHL3STACK) $(SHL3BASEX) \ + -out:$@ \ + -map:$(MISC)/$(@:b).map \ + -def:$(SHL3DEF) \ + $(USE_3IMPLIB) \ + $(STDOBJ) \ + $(SHL3VERSIONOBJ) $(SHL3OBJS) \ + $(SHL3LIBS) \ + $(SHL3STDLIBS) \ + $(SHL3STDSHL) $(STDSHL3) \ + $(SHL3LINKRES) \ + ) +# double check if target was really written... still making sense? + @@$(LS) $@ + @echo linking $@.manifest ... +.IF "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI) +.ELSE + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI) +.ENDIF # "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI) +.ELSE # "$(USE_DEFFILE)"!="" + $(COMMAND_ECHO)$(SHL3LINKER) @$(mktmp $(SHL3LINKFLAGS) \ + $(LINKFLAGSSHL) $(SHL3BASEX) \ + $(SHL3STACK) -out:$(SHL3TARGETN) \ + -map:$(MISC)/$(@:B).map \ + $(LB)/$(SHL3IMPLIB).exp \ + $(STDOBJ) \ + $(SHL3OBJS) $(SHL3VERSIONOBJ) \ + $(SHL3LIBS) \ + $(SHL3STDLIBS) \ + $(SHL3STDSHL) $(STDSHL3) \ + $(SHL3LINKRES) \ + ) +# double check if target was really written... still making sense? + @@$(LS) $@ + @echo linking $@.manifest ... +.IF "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI) +.ELSE + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI) +.ENDIF # "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI) +.ENDIF # "$(USE_DEFFILE)"!="" +.ELSE # "$(SHL3USE_EXPORTS)"!="name" + $(COMMAND_ECHO)$(SHL3LINKER) @$(mktmp $(SHL3LINKFLAGS) \ + $(LINKFLAGSSHL) $(SHL3BASEX) \ + $(SHL3STACK) -out:$(SHL3TARGETN) \ + -map:$(MISC)/$(@:B).map \ + $(USE_3IMPLIB) \ + $(STDOBJ) \ + $(SHL3OBJS) $(SHL3VERSIONOBJ)) \ + $(SHL3LINKLISTPARAM) \ + @$(mktmp $(SHL3STDLIBS) \ + $(SHL3STDSHL) $(STDSHL3) \ + $(SHL3LINKRES) \ + ) + @echo linking $@.manifest ... +.IF "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI) +.ELSE + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI) +.ENDIF # "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI) +.ENDIF # "$(SHL3USE_EXPORTS)"!="name" +.ELSE # "$(linkinc)"=="" + $(COMMAND_ECHO)-$(RM) del $(MISC)/$(SHL3TARGET).lnk + $(COMMAND_ECHO)-$(RM) $(MISC)/$(SHL3TARGET).lst + $(COMMAND_ECHO)$(TYPE) $(mktmp \ + $(SHL3LINKFLAGS) \ + $(LINKFLAGSSHL) $(SHL3BASEX) \ + $(SHL3STACK) $(MAPFILE) \ + -out:$@ \ + $(LB)/$(SHL3IMPLIB).exp \ + $(STDOBJ) \ + $(SHL3OBJS) \ + $(SHL3STDLIBS) \ + $(SHL3STDSHL) $(STDSHL3) \ + $(SHL3LINKRES) \ + ) >> $(MISC)/$(SHL3TARGET).lnk + $(COMMAND_ECHO)$(TYPE) $(MISC)/$(SHL3TARGETN:b)_linkinc.ls >> $(MISC)/$(SHL3TARGET).lnk + $(COMMAND_ECHO)$(SHL3LINKER) @$(MISC)/$(SHL3TARGET).lnk + @echo linking $@.manifest ... +.IF "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI) +.ELSE + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI) +.ENDIF # "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI) +.ENDIF # "$(linkinc)"=="" +.ENDIF # "$(COM)"=="GCC" +.ENDIF # "$(GUI)" == "WNT" +.IF "$(GUI)"=="UNX" +.IF "$(OS)"=="MACOSX" + @-$(RM) $(MISC)/$(@:b).list + @-$(RM) $(MISC)/$(TARGET).$(@:b)_3.cmd + @echo $(STDSLO) $(SHL3OBJS:s/.obj/.o/) \ + $(SHL3VERSIONOBJ) \ + `cat /dev/null $(SHL3LIBS) | sed s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g` | tr -s " " "\n" > $(MISC)/$(@:b).list + @/bin/echo -n $(SHL3LINKER) $(SHL3LINKFLAGS) $(SHL3VERSIONMAPPARA) $(LINKFLAGSSHL) -L$(PRJ)/$(ROUT)/lib $(SOLARLIB) -o $@ \ + $(SHL3STDLIBS) $(SHL3ARCHIVES) $(SHL3STDSHL) $(STDSHL3) -filelist $(MISC)/$(@:b).list $(LINKOUTPUT_FILTER) > $(MISC)/$(TARGET).$(@:b)_3.cmd + @$(PERL) $(SOLARENV)/bin/macosx-dylib-link-list.pl \ + `cat $(MISC)/$(TARGET).$(@:b)_3.cmd` \ + >> $(MISC)/$(TARGET).$(@:b)_3.cmd + .IF "$(VERBOSE)" == "TRUE" + @cat $(MISC)/$(TARGET).$(@:b)_3.cmd + .ENDIF + @+source $(MISC)/$(TARGET).$(@:b)_3.cmd + @$(PERL) $(SOLARENV)/bin/macosx-change-install-names.pl \ + shl $(SHL3RPATH) $@ +.IF "$(SHL3CREATEJNILIB)"!="" + @echo "Making: " $(@:f).jnilib + @macosx-create-bundle $@ +.ENDIF # "$(SHL3CREATEJNILIB)"!="" +.IF "$(UPDATER)"=="YES" +.IF "$(SHL3NOCHECK)"=="" + $(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS3) $(SHL3TARGETN) +.ENDIF # "$(SHL3NOCHECK)"!="" +.ENDIF +.ELIF "$(OS)"=="IOS" + $(COMMAND_ECHO)$(AR) $(LIB3FLAGS) $(LIBFLAGS) $@ $(subst,.obj,.o $(SHL3OBJS)) $(shell cat /dev/null $(LIB3TARGET) $(SHL3LIBS) | sed s\#'^'$(ROUT)\#$(PRJ)/$(ROUT)\#g) + $(COMMAND_ECHO)$(RANLIB) $@ +.ELSE # "$(OS)"=="MACOSX" + @-$(RM) $(MISC)/$(TARGET).$(@:b)_3.cmd + @echo $(SHL3LINKER) $(SHL3LINKFLAGS) $(SHL3SONAME) $(LINKFLAGSSHL) $(SHL3VERSIONMAPPARA) -L$(PRJ)/$(ROUT)/lib $(SOLARLIB) $(STDSLO) $(SHL3OBJS:s/.obj/.o/) \ + $(SHL3VERSIONOBJ) -o $@ \ + `cat /dev/null $(SHL3LIBS) | tr -s " " "\n" | $(SED) s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g` \ + $(SHL3STDLIBS) $(SHL3ARCHIVES) $(SHL3STDSHL) $(STDSHL3) $(LINKOUTPUT_FILTER) > $(MISC)/$(TARGET).$(@:b)_3.cmd + .IF "$(VERBOSE)" == "TRUE" + @cat $(MISC)/$(TARGET).$(@:b)_3.cmd + .ENDIF + @+source $(MISC)/$(TARGET).$(@:b)_3.cmd +.IF "$(UPDATER)"=="YES" +.IF "$(SHL3NOCHECK)"=="" + $(COMMAND_ECHO)-$(RM) $(SHL3TARGETN:d)check_$(SHL3TARGETN:f) + $(COMMAND_ECHO)$(RENAME) $(SHL3TARGETN) $(SHL3TARGETN:d)check_$(SHL3TARGETN:f) +.IF "$(VERBOSE)"=="TRUE" + $(COMMAND_ECHO)$(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS3) $(SHL3TARGETN:d)check_$(SHL3TARGETN:f) +.ELSE + $(COMMAND_ECHO)$(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS3) -- -s $(SHL3TARGETN:d)check_$(SHL3TARGETN:f) +.ENDIF +.ENDIF # "$(SHL3NOCHECK)"!="" +.ENDIF # "$(UPDATER)"=="YES" +.ENDIF # "$(OS)"=="MACOSX" +.IF "$(UNIXVERSIONNAMES)"!="" && "$(OS)"!="IOS" + $(COMMAND_ECHO)$(RM) $(LB)/$(SHL3TARGETN:b) + $(COMMAND_ECHO)cd $(LB) && ln -s $(SHL3TARGETN:f) $(SHL3TARGETN:b) +.ENDIF # "$(UNIXVERSIONNAMES)"!="" +.IF "$(VERBOSE)" == "TRUE" + @ls -l $@ +.ENDIF +.ENDIF # "$(GUI)" == "UNX" + +.ENDIF # "$(SHL3TARGETN)"!="" + +# unroll begin + +.IF "$(SHL4TARGETN)"!="" + +.IF "$(SHLLINKARCONLY)" != "" +SHL4STDLIBS= +STDSHL= +.ELSE +SHL4ARCHIVES= +.ENDIF + +# decide how to link +.IF "$(SHL4CODETYPE)"=="C" +SHL4LINKER=$(LINKC) +SHL4STDSHL=$(subst,CPPRUNTIME, $(STDSHL)) +SHL4LINKFLAGS+=$(LINKCFLAGS) +.ELSE # "$(SHL4CODETYPE)"=="C" +SHL4LINKER=$(LINK) +SHL4STDSHL=$(subst,CPPRUNTIME,$(STDLIBCPP) $(STDSHL)) +SHL4LINKFLAGS+=$(LINKFLAGS) +.ENDIF # "$(SHL4CODETYPE)"=="C" + +SHL4RPATH*=OOO +LINKFLAGSRUNPATH_$(SHL4RPATH)*=/ERROR:/Bad_SHL4RPATH_value +SHL4LINKFLAGS+=$(LINKFLAGSRUNPATH_$(SHL4RPATH)) + +.IF "$(SHL4USE_EXPORTS)"=="" +SHL4DEF*=$(MISC)/$(SHL4TARGET).def +.ENDIF # "$(SHL4USE_EXPORTS)"=="" + +EXTRALIBPATHS4=$(EXTRALIBPATHS) +.IF "$(UPDATER)"=="YES" +.IF "$(SHL4NOCHECK)"=="" +.IF "$(SOLAR_STLLIBPATH)"!="" +EXTRALIBPATHS4+=-L$(SOLAR_STLLIBPATH) +.ENDIF +.ENDIF # "$(SHL4NOCHECK)"!="" +.ENDIF +#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +#+++++++++++ version object ++++++++++++++++++++++++++++++++++++++++ +#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + +.IF "$(L10N_framework)"=="" +.IF "$(VERSIONOBJ)"!="" +SHL4VERSIONOBJ:=$(VERSIONOBJ:d){$(subst,$(DLLPOSTFIX),_dflt $(SHL4TARGET))}$(VERSIONOBJ:f) +USE_VERSIONH:=$(INCCOM)/$(SHL4VERSIONOBJ:b).h +.IF "$(GUI)" == "UNX" +SHL4VERSIONOBJDEP:=$(VERSIONOBJ:d){$(subst,$(DLLPOSTFIX),_dflt $(SHL4TARGET))}$(VERSIONOBJ:f:s/.o/.obj/) +.ELSE # "$(GUI)" == "UNX" +SHL4VERSIONOBJDEP:=$(VERSIONOBJ:d){$(subst,$(DLLPOSTFIX),_dflt $(SHL4TARGET))}$(VERSIONOBJ:f) +.ENDIF # "$(GUI)" == "UNX" +$(MISC)/$(SHL4VERSIONOBJ:b).c : $(SOLARENV)/src/version.c $(INCCOM)/$(SHL4VERSIONOBJ:b).h +# $(COPY) $(SOLARENV)/src/version.c $@ + $(COMMAND_ECHO)$(TYPE) $(SOLARENV)/src/version.c | $(SED) s/_version.h/$(SHL4VERSIONOBJ:b).h/ > $@ + +.INIT : $(SHL4VERSIONOBJDEP) +.ENDIF # "$(VERSIONOBJ)"!="" +.ENDIF + +.IF "$(GUI)" != "UNX" +.IF "$(GUI)" == "WNT" +.IF "$(SHL4IMPLIB)" == "" +SHL4IMPLIB=i$(TARGET)_t4 +.ENDIF # "$(SHL4IMPLIB)" == "" +.IF "$(COM)" != "GCC" +USE_4IMPLIB=-implib:$(LB)/$(SHL4IMPLIB).lib +SHL4IMPLIBN=$(LB)/$(SHL4IMPLIB).lib +.ELSE +USE_4IMPLIB=-Wl,--out-implib=$(SHL4IMPLIBN) +SHL4IMPLIBN=$(LB)/lib$(SHL4IMPLIB).dll.a +.ENDIF # "$(COM)" != "GCC" +ALLTAR : $(SHL4IMPLIBN) + +.IF "$(USE_DEFFILE)"=="" +.IF "$(COM)" != "GCC" +USE_4IMPLIB_DEPS=$(LB)/$(SHL4IMPLIB).lib +.ENDIF +.ENDIF # "$(USE_DEFFILE)"=="" +.ENDIF # "$(GUI)" == "WNT" +USE_SHL4DEF=$(SHL4DEF) +.ELSE # "$(GUI)" != "UNX" +USE_SHL4DEF= +SHL4DEPN+:=$(SHL4DEPNU) + +.IF "$(SHL4VERSIONMAP)"=="" +# to activate vmaps remove "#" +USE_SHL4VERSIONMAP=$(MISC)/$(SHL4TARGET).vmap +.ENDIF # "$(SHL4VERSIONMAP)"=="" + +.IF "$(USE_SHL4VERSIONMAP)"!="" + +.IF "$(SHL4FILTERFILE)"!="" +.IF "$(SHL4VERSIONMAP)"!="" +#eine von beiden ist zuviel +USE_SHL4VERSIONMAP=$(MISC)/$(SHL4TARGET).vmap +$(USE_SHL4VERSIONMAP) .PHONY: + @echo ----------------------------- + @echo you should only use versionmap OR exportfile + @echo ----------------------------- +# force_dmake_to_error + +.ENDIF # "$(SHL4VERSIONMAP)"!="" + +.IF "$(OS)" != "AIX" +SHL4VERSIONMAPPARA=$(LINKVERSIONMAPFLAG) $(USE_SHL4VERSIONMAP) +.ENDIF + +$(USE_SHL4VERSIONMAP): \ + $(SHL4OBJS)\ + $(SHL4LIBS)\ + $(SHL4FILTERFILE) + @$(RM) $@.dump +.IF "$(SHL4OBJS)"!="" +# dump remaining objects on the fly +.IF "$(OS)"=="MACOSX" + @-nm $(SHL4OBJS:s/.obj/.o/) > $@.dump +.ELSE + @nm $(SHL4OBJS:s/.obj/.o/) > $@.dump +.ENDIF +.ENDIF # "$(SHL4OBJS)!"="" + @$(TYPE) /dev/null $(SHL4LIBS:s/.lib/.dump/) >> $@.dump + $(COMMAND_ECHO) $(PERL) $(SOLARENV)/bin/mapgen.pl -d $@.dump -s $(SHL4INTERFACE) -f $(SHL4FILTERFILE) -m $@ + +.ELSE # "$(SHL4FILTERFILE)"!="" +USE_SHL4VERSIONMAP=$(MISC)/$(SHL4TARGET).vmap +$(USE_SHL4VERSIONMAP) : +.IF "$(VERBOSE)" == "TRUE" + @echo ----------------------------- + @echo SHL4FILTERFILE not set! + @echo ----------------------------- + @$(TOUCH) $@ + @echo dummy file to keep the dependencies for later use. +.ELSE + @$(TOUCH) $@ +.ENDIF +# force_dmake_to_error +.ENDIF # "$(SHL4FILTERFILE)"!="" +.ELSE # "$(USE_SHL4VERSIONMAP)"!="" + +#and now for the plain non-generic way... +.IF "$(SHL4VERSIONMAP)"!="" +USE_SHL4VERSIONMAP=$(MISC)/$(SHL4VERSIONMAP:b)_$(SHL4TARGET)$(SHL4VERSIONMAP:e) +.IF "$(OS)" != "AIX" +SHL4VERSIONMAPPARA=$(LINKVERSIONMAPFLAG) $(USE_SHL4VERSIONMAP) +.ENDIF + +.IF "$(OS)"=="MACOSX" +$(USE_SHL4VERSIONMAP): $(SHL4OBJS) $(SHL4LIBS) +.ENDIF + +# .ERRREMOVE is needed as a recipe line like "$(AWK) ... > $@" would create $@ +# even if the $(AWK) part fails: +$(USE_SHL4VERSIONMAP) .ERRREMOVE: $(SHL4VERSIONMAP) + @@-$(RM) -f $@ +# The following files will only be generated and needed on Mac OS X as temporary files +# in order to generate exported symbols list out of Linux/Solaris map files +.IF "$(OS)"=="MACOSX" + @-$(RM) -f $@.symregexp >& $(NULLDEV) + @-$(RM) -f $@.expsymlist >& $(NULLDEV) +.ENDIF +# Its questionable if the following condition '.IF "$(COMID)"=="gcc3"' makes sense and what +# happens if somebody will change it in the future +.IF "$(COMID)"=="gcc3" + $(COMMAND_ECHO) tr -d "\015" < $(SHL4VERSIONMAP) | $(AWK) -f $(SOLARENV)/bin/addsym.awk > $@ +.ELIF "$(COMNAME)"=="sunpro5" + $(COMMAND_ECHO) tr -d "\015" < $(SHL4VERSIONMAP) | $(GREP) -v $(IGNORE_SYMBOLS) > $@ +.ELSE # "$(COMID)"=="gcc3" + $(COMMAND_ECHO) tr -d "\015" < $(SHL4VERSIONMAP) > $@ +.ENDIF # "$(COMID)"=="gcc3" + @chmod a+w $@ +# Mac OS X post-processing generate an exported symbols list from the generated map file +# for details on exported symbols list see man ld on Mac OS X +.IF "$(OS)"=="MACOSX" + @-cat $@ | $(AWK) -f $(SOLARENV)/bin/unxmap-to-macosx-explist.awk | grep -v "\*\|?" > $@.exported-symbols + @-cat $@ | $(AWK) -f $(SOLARENV)/bin/unxmap-to-macosx-explist.awk | grep "\*\|?" > $@.symbols-regexp +# Shared libraries will be build out of the *.obj files specified in SHL?OBJS and SHL?LIBS +# Extract RTTI symbols from all the objects that will be used to build a shared library +.IF "$(SHL4OBJS)"!="" + -echo $(foreach,i,$(SHL4OBJS:s/.obj/.o/) $i) | xargs -n1 nm -gx | $(SOLARENV)/bin/addsym-macosx.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols +.ENDIF +.IF "$(SHL4LIBS)"!="" + $(COMMAND_ECHO)-$(TYPE) $(foreach,j,$(SHL4LIBS) $j) | $(SED) s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g | xargs -n1 nm -gx | $(SOLARENV)/bin/addsym-macosx.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols +.ENDIF +# overwrite the map file generate into the local output tree with the generated +# exported symbols list + cp $@.exported-symbols $@ +.ENDIF # .IF "$(OS)"=="MACOSX" +.ENDIF # "$(SHL4VERSIONMAP)"!="" +.ENDIF # "$(USE_SHL4VERSIONMAP)"!="" +.ENDIF # "$(GUI)" != "UNX" + +.IF "$(UNIXVERSIONNAMES)"!="" +.IF "$(OS)"!="MACOSX" && "$(OS)"!="IOS" && "$(OS)"!="AIX" +.IF "$(GUI)"=="UNX" +SHL4SONAME=\"$(SONAME_SWITCH)$(SHL4TARGETN:f)\" +.ENDIF # "$(GUI)"!="UNX" +.ENDIF # "$(OS)"!="MACOSX" +.ENDIF # "$(UNIXVERSIONNAMES)"!="" + +.IF "$(SHL4RES)"!="" +SHL4ALLRES+=$(SHL4RES) +SHL4LINKRES*=$(MISC)/$(SHL4TARGET).res +SHL4LINKRESO*=$(MISC)/$(SHL4TARGET)_res.o +.ENDIF # "$(SHL4RES)"!="" + +.IF "$(SHL4DEFAULTRES)$(use_shl_versions)"!="" +SHL4DEFAULTRES*=$(MISC)/$(SHL4TARGET)_def.res +SHL4ALLRES+=$(SHL4DEFAULTRES) +SHL4LINKRES*=$(MISC)/$(SHL4TARGET).res +SHL4LINKRESO*=$(MISC)/$(SHL4TARGET)_res.o +.ENDIF # "$(SHL4DEFAULTRES)$(use_shl_versions)"!="" + +#.IF "$(SHL4TARGETN)"!="" + +.IF "$(linkinc)"!="" +.IF "$(GUI)"=="WNT" +.IF "$(SHL4LIBS)"!="" +$(MISC)/$(SHL4TARGET)_linkinc.ls .PHONY: + @@-$(RM) $@ + $(COMMAND_ECHO)$(SED) -f $(SOLARENV)/bin/chrel.sed $(foreach,i,$(SHL4LIBS) $(i:s/.lib/.lin/)) >> $@ +.ENDIF # "$(SHL4LIBS)"!="" +.ENDIF + +LINKINCTARGETS+=$(MISC)/$(SHL4TARGETN:b)_linkinc.ls +$(SHL4TARGETN) : $(LINKINCTARGETS) + +.ELSE +.IF "$(SHL4USE_EXPORTS)"=="name" +.IF "$(GUI)"=="WNT" +.IF "$(COM)"!="GCC" +.IF "$(SHL4LIBS)"!="" +SHL4LINKLIST=$(MISC)/$(SHL4TARGET)_link.lst +SHL4LINKLISTPARAM=@$(SHL4LINKLIST) +$(SHL4LINKLIST) : $(SHL4LIBS) + @@-$(RM) $@ + $(COMMAND_ECHO)$(SED) -f $(SOLARENV)/bin/chrel.sed $(foreach,i,$(SHL4LIBS) $(i:s/.lib/.lin/)) >> $@ +.ENDIF # "$(SHL4LIBS)"!="" +.ENDIF # "$(COM)"!="GCC" +.ENDIF +.ENDIF # "$(SHL4USE_EXPORTS)"=="name" + +$(MISC)/%linkinc.ls: + @echo . > $@ +.ENDIF # "$(linkinc)"!="" + +.IF "$(COM)" == "GCC" && "$(SHL4IMPLIBN)" != "" +$(SHL4IMPLIBN) : $(SHL4TARGETN) +.ENDIF + +$(SHL4TARGETN) : \ + $(SHL4OBJS)\ + $(SHL4LIBS)\ + $(USE_4IMPLIB_DEPS)\ + $(USE_SHL4DEF)\ + $(USE_SHL4VERSIONMAP)\ + $(SHL4RES)\ + $(SHL4DEPN) \ + $(SHL4LINKLIST) + @echo "Making: " $(@:f) +.IF "$(GUI)" == "WNT" +.IF "$(SHL4DEFAULTRES)"!="" + @@-$(RM) $(MISC)/$(SHL4DEFAULTRES:b).rc +.IF "$(SHL4ICON)" != "" + @echo 1 ICON $(SHL4ICON) >> $(MISC)/$(SHL4DEFAULTRES:b).rc +.ENDIF +.IF "$(use_shl_versions)" != "" +.IF "$(SHL4ADD_VERINFO)"!="" + @echo $(EMQ)#include $(EMQ)"$(SHL4ADD_VERINFO)$(EMQ)" >> $(MISC)/$(SHL4DEFAULTRES:b).rc +.ELSE # "$(SHL4ADD_VERINFO)"!="" + @echo $(EMQ)#define ADDITIONAL_VERINFO1 >> $(MISC)/$(SHL4DEFAULTRES:b).rc + @echo $(EMQ)#define ADDITIONAL_VERINFO2 >> $(MISC)/$(SHL4DEFAULTRES:b).rc + @echo $(EMQ)#define ADDITIONAL_VERINFO3 >> $(MISC)/$(SHL4DEFAULTRES:b).rc +.ENDIF # "$(SHL4ADD_VERINFO)"!="" + @echo $(EMQ)#define VERVARIANT $(BUILD) >> $(MISC)/$(SHL4DEFAULTRES:b).rc + @echo $(EMQ)#define ORG_NAME $(SHL4TARGET)$(DLLPOST) >> $(MISC)/$(SHL4DEFAULTRES:b).rc + @echo $(EMQ)#define INTERNAL_NAME $(SHL4TARGET:b) >> $(MISC)/$(SHL4DEFAULTRES:b).rc + @echo $(EMQ)#include $(EMQ)"shlinfo.rc$(EMQ)" >> $(MISC)/$(SHL4DEFAULTRES:b).rc +.ENDIF # "$(use_shl_versions)" != "" +.IF "$(RCFLAGSOUTRES)"!="" +# rc, takes separate flag naming output file, source .rc file last + $(COMMAND_ECHO)$(RC) -DWIN32 $(INCLUDE) $(RCLINKFLAGS) $(RCFLAGSOUTRES)$(SHL4DEFAULTRES) $(MISC)/$(SHL4DEFAULTRES:b).rc +.ELSE +# windres, just takes output file last + $(COMMAND_ECHO)$(RC) -DWIN32 $(INCLUDE) $(RCLINKFLAGS) $(MISC)/$(SHL4DEFAULTRES:b).rc $(SHL4DEFAULTRES) +.ENDIF +.ENDIF # "$(SHL4DEFAULTRES)"!="" +.IF "$(SHL4ALLRES)"!="" + $(COMMAND_ECHO)$(TYPE) $(SHL4ALLRES) > $(SHL4LINKRES) +.IF "$(COM)"=="GCC" + $(WINDRES) $(SHL4LINKRES) $(SHL4LINKRESO) +.ENDIF # "$(COM)"=="GCC" +.ENDIF # "$(SHL4ALLRES)"!="" +.IF "$(COM)"=="GCC" +# GNU ld since 2.17 supports @cmdfile syntax +.IF "$(USE_DEFFILE)"!="" + $(COMMAND_ECHO)$(LINK) @$(mktmp $(strip \ + $(SHL4LINKFLAGS) \ + $(LINKFLAGSSHL) \ + $(SOLARLIB) \ + $(MINGWSSTDOBJ) \ + -o $@ \ + -Wl,-Map,$(MISC)/$(@:b).map \ + $(SHL4DEF) \ + $(USE_4IMPLIB) \ + $(STDOBJ) \ + $(SHL4VERSIONOBJ) $(SHL4OBJS) \ + $(subst,$(ROUT),$(PRJ)/$(ROUT) $(shell cat /dev/null $(SHL4LIBS))) \ + -Wl,--exclude-libs,ALL,--start-group $(SHL4STDLIBS) -Wl,--end-group \ + $(SHL4STDSHL) $(STDSHL4) \ + $(SHL4LINKRESO) \ + )) +.ELSE + @noop $(assign ALL4OBJLIST:=$(STDOBJ) $(SHL4OBJS) $(SHL4LINKRESO) $(shell $(TYPE) /dev/null $(SHL4LIBS) | $(SED) s?$(ROUT)?$(PRJ)/$(ROUT)?g)) +.IF "$(DEFLIB4NAME)"!="" # do not have to include objs + @noop $(assign DEF4OBJLIST:=$(shell $(TYPE) $(foreach,i,$(DEFLIB4NAME) $(SLB)/$(i).lib) | sed s?$(ROUT)?$(PRJ)/$(ROUT)?g)) + @noop $(foreach,i,$(DEF4OBJLIST) $(assign ALL4OBJLIST:=$(ALL4OBJLIST:s?$i??))) +.ENDIF # "$(DEFLIB4NAME)"!="" + $(COMMAND_ECHO)$(LINK) @$(mktmp $(strip \ + $(SHL4LINKFLAGS) \ + $(LINKFLAGSSHL) \ + $(SOLARLIB) \ + $(MINGWSSTDOBJ) \ + -o $@ \ + -Wl,-Map,$(MISC)/$(@:b).map \ + $(SHL4DEF) \ + $(USE_4IMPLIB) \ + $(STDOBJ) \ + $(SHL4VERSIONOBJ) $(SHL4OBJS) \ + $(subst,$(ROUT),$(PRJ)/$(ROUT) $(shell cat /dev/null $(SHL4LIBS))) \ + -Wl,--exclude-libs,ALL,--start-group $(SHL4STDLIBS) -Wl,--end-group \ + $(SHL4STDSHL) $(STDSHL4) \ + $(SHL4LINKRESO) \ + )) +.ENDIF +.ELSE +.IF "$(linkinc)"=="" +.IF "$(SHL4USE_EXPORTS)"!="name" +.IF "$(USE_DEFFILE)"!="" + $(COMMAND_ECHO)$(SHL4LINKER) @$(mktmp \ + $(SHL4LINKFLAGS) \ + $(LINKFLAGSSHL) \ + $(SHL4STACK) $(SHL4BASEX) \ + -out:$@ \ + -map:$(MISC)/$(@:b).map \ + -def:$(SHL4DEF) \ + $(USE_4IMPLIB) \ + $(STDOBJ) \ + $(SHL4VERSIONOBJ) $(SHL4OBJS) \ + $(SHL4LIBS) \ + $(SHL4STDLIBS) \ + $(SHL4STDSHL) $(STDSHL4) \ + $(SHL4LINKRES) \ + ) +# double check if target was really written... still making sense? + @@$(LS) $@ + @echo linking $@.manifest ... +.IF "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI) +.ELSE + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI) +.ENDIF # "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI) +.ELSE # "$(USE_DEFFILE)"!="" + $(COMMAND_ECHO)$(SHL4LINKER) @$(mktmp $(SHL4LINKFLAGS) \ + $(LINKFLAGSSHL) $(SHL4BASEX) \ + $(SHL4STACK) -out:$(SHL4TARGETN) \ + -map:$(MISC)/$(@:B).map \ + $(LB)/$(SHL4IMPLIB).exp \ + $(STDOBJ) \ + $(SHL4OBJS) $(SHL4VERSIONOBJ) \ + $(SHL4LIBS) \ + $(SHL4STDLIBS) \ + $(SHL4STDSHL) $(STDSHL4) \ + $(SHL4LINKRES) \ + ) +# double check if target was really written... still making sense? + @@$(LS) $@ + @echo linking $@.manifest ... +.IF "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI) +.ELSE + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI) +.ENDIF # "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI) +.ENDIF # "$(USE_DEFFILE)"!="" +.ELSE # "$(SHL4USE_EXPORTS)"!="name" + $(COMMAND_ECHO)$(SHL4LINKER) @$(mktmp $(SHL4LINKFLAGS) \ + $(LINKFLAGSSHL) $(SHL4BASEX) \ + $(SHL4STACK) -out:$(SHL4TARGETN) \ + -map:$(MISC)/$(@:B).map \ + $(USE_4IMPLIB) \ + $(STDOBJ) \ + $(SHL4OBJS) $(SHL4VERSIONOBJ)) \ + $(SHL4LINKLISTPARAM) \ + @$(mktmp $(SHL4STDLIBS) \ + $(SHL4STDSHL) $(STDSHL4) \ + $(SHL4LINKRES) \ + ) + @echo linking $@.manifest ... +.IF "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI) +.ELSE + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI) +.ENDIF # "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI) +.ENDIF # "$(SHL4USE_EXPORTS)"!="name" +.ELSE # "$(linkinc)"=="" + $(COMMAND_ECHO)-$(RM) del $(MISC)/$(SHL4TARGET).lnk + $(COMMAND_ECHO)-$(RM) $(MISC)/$(SHL4TARGET).lst + $(COMMAND_ECHO)$(TYPE) $(mktmp \ + $(SHL4LINKFLAGS) \ + $(LINKFLAGSSHL) $(SHL4BASEX) \ + $(SHL4STACK) $(MAPFILE) \ + -out:$@ \ + $(LB)/$(SHL4IMPLIB).exp \ + $(STDOBJ) \ + $(SHL4OBJS) \ + $(SHL4STDLIBS) \ + $(SHL4STDSHL) $(STDSHL4) \ + $(SHL4LINKRES) \ + ) >> $(MISC)/$(SHL4TARGET).lnk + $(COMMAND_ECHO)$(TYPE) $(MISC)/$(SHL4TARGETN:b)_linkinc.ls >> $(MISC)/$(SHL4TARGET).lnk + $(COMMAND_ECHO)$(SHL4LINKER) @$(MISC)/$(SHL4TARGET).lnk + @echo linking $@.manifest ... +.IF "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI) +.ELSE + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI) +.ENDIF # "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI) +.ENDIF # "$(linkinc)"=="" +.ENDIF # "$(COM)"=="GCC" +.ENDIF # "$(GUI)" == "WNT" +.IF "$(GUI)"=="UNX" +.IF "$(OS)"=="MACOSX" + @-$(RM) $(MISC)/$(@:b).list + @-$(RM) $(MISC)/$(TARGET).$(@:b)_4.cmd + @echo $(STDSLO) $(SHL4OBJS:s/.obj/.o/) \ + $(SHL4VERSIONOBJ) \ + `cat /dev/null $(SHL4LIBS) | sed s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g` | tr -s " " "\n" > $(MISC)/$(@:b).list + @/bin/echo -n $(SHL4LINKER) $(SHL4LINKFLAGS) $(SHL4VERSIONMAPPARA) $(LINKFLAGSSHL) -L$(PRJ)/$(ROUT)/lib $(SOLARLIB) -o $@ \ + $(SHL4STDLIBS) $(SHL4ARCHIVES) $(SHL4STDSHL) $(STDSHL4) -filelist $(MISC)/$(@:b).list $(LINKOUTPUT_FILTER) > $(MISC)/$(TARGET).$(@:b)_4.cmd + @$(PERL) $(SOLARENV)/bin/macosx-dylib-link-list.pl \ + `cat $(MISC)/$(TARGET).$(@:b)_4.cmd` \ + >> $(MISC)/$(TARGET).$(@:b)_4.cmd + .IF "$(VERBOSE)" == "TRUE" + @cat $(MISC)/$(TARGET).$(@:b)_4.cmd + .ENDIF + @+source $(MISC)/$(TARGET).$(@:b)_4.cmd + @$(PERL) $(SOLARENV)/bin/macosx-change-install-names.pl \ + shl $(SHL4RPATH) $@ +.IF "$(SHL4CREATEJNILIB)"!="" + @echo "Making: " $(@:f).jnilib + @macosx-create-bundle $@ +.ENDIF # "$(SHL4CREATEJNILIB)"!="" +.IF "$(UPDATER)"=="YES" +.IF "$(SHL4NOCHECK)"=="" + $(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS4) $(SHL4TARGETN) +.ENDIF # "$(SHL4NOCHECK)"!="" +.ENDIF +.ELIF "$(OS)"=="IOS" + $(COMMAND_ECHO)$(AR) $(LIB4FLAGS) $(LIBFLAGS) $@ $(subst,.obj,.o $(SHL4OBJS)) $(shell cat /dev/null $(LIB4TARGET) $(SHL4LIBS) | sed s\#'^'$(ROUT)\#$(PRJ)/$(ROUT)\#g) + $(COMMAND_ECHO)$(RANLIB) $@ +.ELSE # "$(OS)"=="MACOSX" + @-$(RM) $(MISC)/$(TARGET).$(@:b)_4.cmd + @echo $(SHL4LINKER) $(SHL4LINKFLAGS) $(SHL4SONAME) $(LINKFLAGSSHL) $(SHL4VERSIONMAPPARA) -L$(PRJ)/$(ROUT)/lib $(SOLARLIB) $(STDSLO) $(SHL4OBJS:s/.obj/.o/) \ + $(SHL4VERSIONOBJ) -o $@ \ + `cat /dev/null $(SHL4LIBS) | tr -s " " "\n" | $(SED) s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g` \ + $(SHL4STDLIBS) $(SHL4ARCHIVES) $(SHL4STDSHL) $(STDSHL4) $(LINKOUTPUT_FILTER) > $(MISC)/$(TARGET).$(@:b)_4.cmd + .IF "$(VERBOSE)" == "TRUE" + @cat $(MISC)/$(TARGET).$(@:b)_4.cmd + .ENDIF + @+source $(MISC)/$(TARGET).$(@:b)_4.cmd +.IF "$(UPDATER)"=="YES" +.IF "$(SHL4NOCHECK)"=="" + $(COMMAND_ECHO)-$(RM) $(SHL4TARGETN:d)check_$(SHL4TARGETN:f) + $(COMMAND_ECHO)$(RENAME) $(SHL4TARGETN) $(SHL4TARGETN:d)check_$(SHL4TARGETN:f) +.IF "$(VERBOSE)"=="TRUE" + $(COMMAND_ECHO)$(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS4) $(SHL4TARGETN:d)check_$(SHL4TARGETN:f) +.ELSE + $(COMMAND_ECHO)$(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS4) -- -s $(SHL4TARGETN:d)check_$(SHL4TARGETN:f) +.ENDIF +.ENDIF # "$(SHL4NOCHECK)"!="" +.ENDIF # "$(UPDATER)"=="YES" +.ENDIF # "$(OS)"=="MACOSX" +.IF "$(UNIXVERSIONNAMES)"!="" && "$(OS)"!="IOS" + $(COMMAND_ECHO)$(RM) $(LB)/$(SHL4TARGETN:b) + $(COMMAND_ECHO)cd $(LB) && ln -s $(SHL4TARGETN:f) $(SHL4TARGETN:b) +.ENDIF # "$(UNIXVERSIONNAMES)"!="" +.IF "$(VERBOSE)" == "TRUE" + @ls -l $@ +.ENDIF +.ENDIF # "$(GUI)" == "UNX" + +.ENDIF # "$(SHL4TARGETN)"!="" + +# unroll begin + +.IF "$(SHL5TARGETN)"!="" + +.IF "$(SHLLINKARCONLY)" != "" +SHL5STDLIBS= +STDSHL= +.ELSE +SHL5ARCHIVES= +.ENDIF + +# decide how to link +.IF "$(SHL5CODETYPE)"=="C" +SHL5LINKER=$(LINKC) +SHL5STDSHL=$(subst,CPPRUNTIME, $(STDSHL)) +SHL5LINKFLAGS+=$(LINKCFLAGS) +.ELSE # "$(SHL5CODETYPE)"=="C" +SHL5LINKER=$(LINK) +SHL5STDSHL=$(subst,CPPRUNTIME,$(STDLIBCPP) $(STDSHL)) +SHL5LINKFLAGS+=$(LINKFLAGS) +.ENDIF # "$(SHL5CODETYPE)"=="C" + +SHL5RPATH*=OOO +LINKFLAGSRUNPATH_$(SHL5RPATH)*=/ERROR:/Bad_SHL5RPATH_value +SHL5LINKFLAGS+=$(LINKFLAGSRUNPATH_$(SHL5RPATH)) + +.IF "$(SHL5USE_EXPORTS)"=="" +SHL5DEF*=$(MISC)/$(SHL5TARGET).def +.ENDIF # "$(SHL5USE_EXPORTS)"=="" + +EXTRALIBPATHS5=$(EXTRALIBPATHS) +.IF "$(UPDATER)"=="YES" +.IF "$(SHL5NOCHECK)"=="" +.IF "$(SOLAR_STLLIBPATH)"!="" +EXTRALIBPATHS5+=-L$(SOLAR_STLLIBPATH) +.ENDIF +.ENDIF # "$(SHL5NOCHECK)"!="" +.ENDIF +#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +#+++++++++++ version object ++++++++++++++++++++++++++++++++++++++++ +#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + +.IF "$(L10N_framework)"=="" +.IF "$(VERSIONOBJ)"!="" +SHL5VERSIONOBJ:=$(VERSIONOBJ:d){$(subst,$(DLLPOSTFIX),_dflt $(SHL5TARGET))}$(VERSIONOBJ:f) +USE_VERSIONH:=$(INCCOM)/$(SHL5VERSIONOBJ:b).h +.IF "$(GUI)" == "UNX" +SHL5VERSIONOBJDEP:=$(VERSIONOBJ:d){$(subst,$(DLLPOSTFIX),_dflt $(SHL5TARGET))}$(VERSIONOBJ:f:s/.o/.obj/) +.ELSE # "$(GUI)" == "UNX" +SHL5VERSIONOBJDEP:=$(VERSIONOBJ:d){$(subst,$(DLLPOSTFIX),_dflt $(SHL5TARGET))}$(VERSIONOBJ:f) +.ENDIF # "$(GUI)" == "UNX" +$(MISC)/$(SHL5VERSIONOBJ:b).c : $(SOLARENV)/src/version.c $(INCCOM)/$(SHL5VERSIONOBJ:b).h +# $(COPY) $(SOLARENV)/src/version.c $@ + $(COMMAND_ECHO)$(TYPE) $(SOLARENV)/src/version.c | $(SED) s/_version.h/$(SHL5VERSIONOBJ:b).h/ > $@ + +.INIT : $(SHL5VERSIONOBJDEP) +.ENDIF # "$(VERSIONOBJ)"!="" +.ENDIF + +.IF "$(GUI)" != "UNX" +.IF "$(GUI)" == "WNT" +.IF "$(SHL5IMPLIB)" == "" +SHL5IMPLIB=i$(TARGET)_t5 +.ENDIF # "$(SHL5IMPLIB)" == "" +.IF "$(COM)" != "GCC" +USE_5IMPLIB=-implib:$(LB)/$(SHL5IMPLIB).lib +SHL5IMPLIBN=$(LB)/$(SHL5IMPLIB).lib +.ELSE +USE_5IMPLIB=-Wl,--out-implib=$(SHL5IMPLIBN) +SHL5IMPLIBN=$(LB)/lib$(SHL5IMPLIB).dll.a +.ENDIF # "$(COM)" != "GCC" +ALLTAR : $(SHL5IMPLIBN) + +.IF "$(USE_DEFFILE)"=="" +.IF "$(COM)" != "GCC" +USE_5IMPLIB_DEPS=$(LB)/$(SHL5IMPLIB).lib +.ENDIF +.ENDIF # "$(USE_DEFFILE)"=="" +.ENDIF # "$(GUI)" == "WNT" +USE_SHL5DEF=$(SHL5DEF) +.ELSE # "$(GUI)" != "UNX" +USE_SHL5DEF= +SHL5DEPN+:=$(SHL5DEPNU) + +.IF "$(SHL5VERSIONMAP)"=="" +# to activate vmaps remove "#" +USE_SHL5VERSIONMAP=$(MISC)/$(SHL5TARGET).vmap +.ENDIF # "$(SHL5VERSIONMAP)"=="" + +.IF "$(USE_SHL5VERSIONMAP)"!="" + +.IF "$(SHL5FILTERFILE)"!="" +.IF "$(SHL5VERSIONMAP)"!="" +#eine von beiden ist zuviel +USE_SHL5VERSIONMAP=$(MISC)/$(SHL5TARGET).vmap +$(USE_SHL5VERSIONMAP) .PHONY: + @echo ----------------------------- + @echo you should only use versionmap OR exportfile + @echo ----------------------------- +# force_dmake_to_error + +.ENDIF # "$(SHL5VERSIONMAP)"!="" + +.IF "$(OS)" != "AIX" +SHL5VERSIONMAPPARA=$(LINKVERSIONMAPFLAG) $(USE_SHL5VERSIONMAP) +.ENDIF + +$(USE_SHL5VERSIONMAP): \ + $(SHL5OBJS)\ + $(SHL5LIBS)\ + $(SHL5FILTERFILE) + @$(RM) $@.dump +.IF "$(SHL5OBJS)"!="" +# dump remaining objects on the fly +.IF "$(OS)"=="MACOSX" + @-nm $(SHL5OBJS:s/.obj/.o/) > $@.dump +.ELSE + @nm $(SHL5OBJS:s/.obj/.o/) > $@.dump +.ENDIF +.ENDIF # "$(SHL5OBJS)!"="" + @$(TYPE) /dev/null $(SHL5LIBS:s/.lib/.dump/) >> $@.dump + $(COMMAND_ECHO) $(PERL) $(SOLARENV)/bin/mapgen.pl -d $@.dump -s $(SHL5INTERFACE) -f $(SHL5FILTERFILE) -m $@ + +.ELSE # "$(SHL5FILTERFILE)"!="" +USE_SHL5VERSIONMAP=$(MISC)/$(SHL5TARGET).vmap +$(USE_SHL5VERSIONMAP) : +.IF "$(VERBOSE)" == "TRUE" + @echo ----------------------------- + @echo SHL5FILTERFILE not set! + @echo ----------------------------- + @$(TOUCH) $@ + @echo dummy file to keep the dependencies for later use. +.ELSE + @$(TOUCH) $@ +.ENDIF +# force_dmake_to_error +.ENDIF # "$(SHL5FILTERFILE)"!="" +.ELSE # "$(USE_SHL5VERSIONMAP)"!="" + +#and now for the plain non-generic way... +.IF "$(SHL5VERSIONMAP)"!="" +USE_SHL5VERSIONMAP=$(MISC)/$(SHL5VERSIONMAP:b)_$(SHL5TARGET)$(SHL5VERSIONMAP:e) +.IF "$(OS)" != "AIX" +SHL5VERSIONMAPPARA=$(LINKVERSIONMAPFLAG) $(USE_SHL5VERSIONMAP) +.ENDIF + +.IF "$(OS)"=="MACOSX" +$(USE_SHL5VERSIONMAP): $(SHL5OBJS) $(SHL5LIBS) +.ENDIF + +# .ERRREMOVE is needed as a recipe line like "$(AWK) ... > $@" would create $@ +# even if the $(AWK) part fails: +$(USE_SHL5VERSIONMAP) .ERRREMOVE: $(SHL5VERSIONMAP) + @@-$(RM) -f $@ +# The following files will only be generated and needed on Mac OS X as temporary files +# in order to generate exported symbols list out of Linux/Solaris map files +.IF "$(OS)"=="MACOSX" + @-$(RM) -f $@.symregexp >& $(NULLDEV) + @-$(RM) -f $@.expsymlist >& $(NULLDEV) +.ENDIF +# Its questionable if the following condition '.IF "$(COMID)"=="gcc3"' makes sense and what +# happens if somebody will change it in the future +.IF "$(COMID)"=="gcc3" + $(COMMAND_ECHO) tr -d "\015" < $(SHL5VERSIONMAP) | $(AWK) -f $(SOLARENV)/bin/addsym.awk > $@ +.ELIF "$(COMNAME)"=="sunpro5" + $(COMMAND_ECHO) tr -d "\015" < $(SHL5VERSIONMAP) | $(GREP) -v $(IGNORE_SYMBOLS) > $@ +.ELSE # "$(COMID)"=="gcc3" + $(COMMAND_ECHO) tr -d "\015" < $(SHL5VERSIONMAP) > $@ +.ENDIF # "$(COMID)"=="gcc3" + @chmod a+w $@ +# Mac OS X post-processing generate an exported symbols list from the generated map file +# for details on exported symbols list see man ld on Mac OS X +.IF "$(OS)"=="MACOSX" + @-cat $@ | $(AWK) -f $(SOLARENV)/bin/unxmap-to-macosx-explist.awk | grep -v "\*\|?" > $@.exported-symbols + @-cat $@ | $(AWK) -f $(SOLARENV)/bin/unxmap-to-macosx-explist.awk | grep "\*\|?" > $@.symbols-regexp +# Shared libraries will be build out of the *.obj files specified in SHL?OBJS and SHL?LIBS +# Extract RTTI symbols from all the objects that will be used to build a shared library +.IF "$(SHL5OBJS)"!="" + -echo $(foreach,i,$(SHL5OBJS:s/.obj/.o/) $i) | xargs -n1 nm -gx | $(SOLARENV)/bin/addsym-macosx.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols +.ENDIF +.IF "$(SHL5LIBS)"!="" + $(COMMAND_ECHO)-$(TYPE) $(foreach,j,$(SHL5LIBS) $j) | $(SED) s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g | xargs -n1 nm -gx | $(SOLARENV)/bin/addsym-macosx.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols +.ENDIF +# overwrite the map file generate into the local output tree with the generated +# exported symbols list + cp $@.exported-symbols $@ +.ENDIF # .IF "$(OS)"=="MACOSX" +.ENDIF # "$(SHL5VERSIONMAP)"!="" +.ENDIF # "$(USE_SHL5VERSIONMAP)"!="" +.ENDIF # "$(GUI)" != "UNX" + +.IF "$(UNIXVERSIONNAMES)"!="" +.IF "$(OS)"!="MACOSX" && "$(OS)"!="IOS" && "$(OS)"!="AIX" +.IF "$(GUI)"=="UNX" +SHL5SONAME=\"$(SONAME_SWITCH)$(SHL5TARGETN:f)\" +.ENDIF # "$(GUI)"!="UNX" +.ENDIF # "$(OS)"!="MACOSX" +.ENDIF # "$(UNIXVERSIONNAMES)"!="" + +.IF "$(SHL5RES)"!="" +SHL5ALLRES+=$(SHL5RES) +SHL5LINKRES*=$(MISC)/$(SHL5TARGET).res +SHL5LINKRESO*=$(MISC)/$(SHL5TARGET)_res.o +.ENDIF # "$(SHL5RES)"!="" + +.IF "$(SHL5DEFAULTRES)$(use_shl_versions)"!="" +SHL5DEFAULTRES*=$(MISC)/$(SHL5TARGET)_def.res +SHL5ALLRES+=$(SHL5DEFAULTRES) +SHL5LINKRES*=$(MISC)/$(SHL5TARGET).res +SHL5LINKRESO*=$(MISC)/$(SHL5TARGET)_res.o +.ENDIF # "$(SHL5DEFAULTRES)$(use_shl_versions)"!="" + +#.IF "$(SHL5TARGETN)"!="" + +.IF "$(linkinc)"!="" +.IF "$(GUI)"=="WNT" +.IF "$(SHL5LIBS)"!="" +$(MISC)/$(SHL5TARGET)_linkinc.ls .PHONY: + @@-$(RM) $@ + $(COMMAND_ECHO)$(SED) -f $(SOLARENV)/bin/chrel.sed $(foreach,i,$(SHL5LIBS) $(i:s/.lib/.lin/)) >> $@ +.ENDIF # "$(SHL5LIBS)"!="" +.ENDIF + +LINKINCTARGETS+=$(MISC)/$(SHL5TARGETN:b)_linkinc.ls +$(SHL5TARGETN) : $(LINKINCTARGETS) + +.ELSE +.IF "$(SHL5USE_EXPORTS)"=="name" +.IF "$(GUI)"=="WNT" +.IF "$(COM)"!="GCC" +.IF "$(SHL5LIBS)"!="" +SHL5LINKLIST=$(MISC)/$(SHL5TARGET)_link.lst +SHL5LINKLISTPARAM=@$(SHL5LINKLIST) +$(SHL5LINKLIST) : $(SHL5LIBS) + @@-$(RM) $@ + $(COMMAND_ECHO)$(SED) -f $(SOLARENV)/bin/chrel.sed $(foreach,i,$(SHL5LIBS) $(i:s/.lib/.lin/)) >> $@ +.ENDIF # "$(SHL5LIBS)"!="" +.ENDIF # "$(COM)"!="GCC" +.ENDIF +.ENDIF # "$(SHL5USE_EXPORTS)"=="name" + +$(MISC)/%linkinc.ls: + @echo . > $@ +.ENDIF # "$(linkinc)"!="" + +.IF "$(COM)" == "GCC" && "$(SHL5IMPLIBN)" != "" +$(SHL5IMPLIBN) : $(SHL5TARGETN) +.ENDIF + +$(SHL5TARGETN) : \ + $(SHL5OBJS)\ + $(SHL5LIBS)\ + $(USE_5IMPLIB_DEPS)\ + $(USE_SHL5DEF)\ + $(USE_SHL5VERSIONMAP)\ + $(SHL5RES)\ + $(SHL5DEPN) \ + $(SHL5LINKLIST) + @echo "Making: " $(@:f) +.IF "$(GUI)" == "WNT" +.IF "$(SHL5DEFAULTRES)"!="" + @@-$(RM) $(MISC)/$(SHL5DEFAULTRES:b).rc +.IF "$(SHL5ICON)" != "" + @echo 1 ICON $(SHL5ICON) >> $(MISC)/$(SHL5DEFAULTRES:b).rc +.ENDIF +.IF "$(use_shl_versions)" != "" +.IF "$(SHL5ADD_VERINFO)"!="" + @echo $(EMQ)#include $(EMQ)"$(SHL5ADD_VERINFO)$(EMQ)" >> $(MISC)/$(SHL5DEFAULTRES:b).rc +.ELSE # "$(SHL5ADD_VERINFO)"!="" + @echo $(EMQ)#define ADDITIONAL_VERINFO1 >> $(MISC)/$(SHL5DEFAULTRES:b).rc + @echo $(EMQ)#define ADDITIONAL_VERINFO2 >> $(MISC)/$(SHL5DEFAULTRES:b).rc + @echo $(EMQ)#define ADDITIONAL_VERINFO3 >> $(MISC)/$(SHL5DEFAULTRES:b).rc +.ENDIF # "$(SHL5ADD_VERINFO)"!="" + @echo $(EMQ)#define VERVARIANT $(BUILD) >> $(MISC)/$(SHL5DEFAULTRES:b).rc + @echo $(EMQ)#define ORG_NAME $(SHL5TARGET)$(DLLPOST) >> $(MISC)/$(SHL5DEFAULTRES:b).rc + @echo $(EMQ)#define INTERNAL_NAME $(SHL5TARGET:b) >> $(MISC)/$(SHL5DEFAULTRES:b).rc + @echo $(EMQ)#include $(EMQ)"shlinfo.rc$(EMQ)" >> $(MISC)/$(SHL5DEFAULTRES:b).rc +.ENDIF # "$(use_shl_versions)" != "" +.IF "$(RCFLAGSOUTRES)"!="" +# rc, takes separate flag naming output file, source .rc file last + $(COMMAND_ECHO)$(RC) -DWIN32 $(INCLUDE) $(RCLINKFLAGS) $(RCFLAGSOUTRES)$(SHL5DEFAULTRES) $(MISC)/$(SHL5DEFAULTRES:b).rc +.ELSE +# windres, just takes output file last + $(COMMAND_ECHO)$(RC) -DWIN32 $(INCLUDE) $(RCLINKFLAGS) $(MISC)/$(SHL5DEFAULTRES:b).rc $(SHL5DEFAULTRES) +.ENDIF +.ENDIF # "$(SHL5DEFAULTRES)"!="" +.IF "$(SHL5ALLRES)"!="" + $(COMMAND_ECHO)$(TYPE) $(SHL5ALLRES) > $(SHL5LINKRES) +.IF "$(COM)"=="GCC" + $(WINDRES) $(SHL5LINKRES) $(SHL5LINKRESO) +.ENDIF # "$(COM)"=="GCC" +.ENDIF # "$(SHL5ALLRES)"!="" +.IF "$(COM)"=="GCC" +# GNU ld since 2.17 supports @cmdfile syntax +.IF "$(USE_DEFFILE)"!="" + $(COMMAND_ECHO)$(LINK) @$(mktmp $(strip \ + $(SHL5LINKFLAGS) \ + $(LINKFLAGSSHL) \ + $(SOLARLIB) \ + $(MINGWSSTDOBJ) \ + -o $@ \ + -Wl,-Map,$(MISC)/$(@:b).map \ + $(SHL5DEF) \ + $(USE_5IMPLIB) \ + $(STDOBJ) \ + $(SHL5VERSIONOBJ) $(SHL5OBJS) \ + $(subst,$(ROUT),$(PRJ)/$(ROUT) $(shell cat /dev/null $(SHL5LIBS))) \ + -Wl,--exclude-libs,ALL,--start-group $(SHL5STDLIBS) -Wl,--end-group \ + $(SHL5STDSHL) $(STDSHL5) \ + $(SHL5LINKRESO) \ + )) +.ELSE + @noop $(assign ALL5OBJLIST:=$(STDOBJ) $(SHL5OBJS) $(SHL5LINKRESO) $(shell $(TYPE) /dev/null $(SHL5LIBS) | $(SED) s?$(ROUT)?$(PRJ)/$(ROUT)?g)) +.IF "$(DEFLIB5NAME)"!="" # do not have to include objs + @noop $(assign DEF5OBJLIST:=$(shell $(TYPE) $(foreach,i,$(DEFLIB5NAME) $(SLB)/$(i).lib) | sed s?$(ROUT)?$(PRJ)/$(ROUT)?g)) + @noop $(foreach,i,$(DEF5OBJLIST) $(assign ALL5OBJLIST:=$(ALL5OBJLIST:s?$i??))) +.ENDIF # "$(DEFLIB5NAME)"!="" + $(COMMAND_ECHO)$(LINK) @$(mktmp $(strip \ + $(SHL5LINKFLAGS) \ + $(LINKFLAGSSHL) \ + $(SOLARLIB) \ + $(MINGWSSTDOBJ) \ + -o $@ \ + -Wl,-Map,$(MISC)/$(@:b).map \ + $(SHL5DEF) \ + $(USE_5IMPLIB) \ + $(STDOBJ) \ + $(SHL5VERSIONOBJ) $(SHL5OBJS) \ + $(subst,$(ROUT),$(PRJ)/$(ROUT) $(shell cat /dev/null $(SHL5LIBS))) \ + -Wl,--exclude-libs,ALL,--start-group $(SHL5STDLIBS) -Wl,--end-group \ + $(SHL5STDSHL) $(STDSHL5) \ + $(SHL5LINKRESO) \ + )) +.ENDIF +.ELSE +.IF "$(linkinc)"=="" +.IF "$(SHL5USE_EXPORTS)"!="name" +.IF "$(USE_DEFFILE)"!="" + $(COMMAND_ECHO)$(SHL5LINKER) @$(mktmp \ + $(SHL5LINKFLAGS) \ + $(LINKFLAGSSHL) \ + $(SHL5STACK) $(SHL5BASEX) \ + -out:$@ \ + -map:$(MISC)/$(@:b).map \ + -def:$(SHL5DEF) \ + $(USE_5IMPLIB) \ + $(STDOBJ) \ + $(SHL5VERSIONOBJ) $(SHL5OBJS) \ + $(SHL5LIBS) \ + $(SHL5STDLIBS) \ + $(SHL5STDSHL) $(STDSHL5) \ + $(SHL5LINKRES) \ + ) +# double check if target was really written... still making sense? + @@$(LS) $@ + @echo linking $@.manifest ... +.IF "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI) +.ELSE + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI) +.ENDIF # "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI) +.ELSE # "$(USE_DEFFILE)"!="" + $(COMMAND_ECHO)$(SHL5LINKER) @$(mktmp $(SHL5LINKFLAGS) \ + $(LINKFLAGSSHL) $(SHL5BASEX) \ + $(SHL5STACK) -out:$(SHL5TARGETN) \ + -map:$(MISC)/$(@:B).map \ + $(LB)/$(SHL5IMPLIB).exp \ + $(STDOBJ) \ + $(SHL5OBJS) $(SHL5VERSIONOBJ) \ + $(SHL5LIBS) \ + $(SHL5STDLIBS) \ + $(SHL5STDSHL) $(STDSHL5) \ + $(SHL5LINKRES) \ + ) +# double check if target was really written... still making sense? + @@$(LS) $@ + @echo linking $@.manifest ... +.IF "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI) +.ELSE + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI) +.ENDIF # "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI) +.ENDIF # "$(USE_DEFFILE)"!="" +.ELSE # "$(SHL5USE_EXPORTS)"!="name" + $(COMMAND_ECHO)$(SHL5LINKER) @$(mktmp $(SHL5LINKFLAGS) \ + $(LINKFLAGSSHL) $(SHL5BASEX) \ + $(SHL5STACK) -out:$(SHL5TARGETN) \ + -map:$(MISC)/$(@:B).map \ + $(USE_5IMPLIB) \ + $(STDOBJ) \ + $(SHL5OBJS) $(SHL5VERSIONOBJ)) \ + $(SHL5LINKLISTPARAM) \ + @$(mktmp $(SHL5STDLIBS) \ + $(SHL5STDSHL) $(STDSHL5) \ + $(SHL5LINKRES) \ + ) + @echo linking $@.manifest ... +.IF "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI) +.ELSE + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI) +.ENDIF # "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI) +.ENDIF # "$(SHL5USE_EXPORTS)"!="name" +.ELSE # "$(linkinc)"=="" + $(COMMAND_ECHO)-$(RM) del $(MISC)/$(SHL5TARGET).lnk + $(COMMAND_ECHO)-$(RM) $(MISC)/$(SHL5TARGET).lst + $(COMMAND_ECHO)$(TYPE) $(mktmp \ + $(SHL5LINKFLAGS) \ + $(LINKFLAGSSHL) $(SHL5BASEX) \ + $(SHL5STACK) $(MAPFILE) \ + -out:$@ \ + $(LB)/$(SHL5IMPLIB).exp \ + $(STDOBJ) \ + $(SHL5OBJS) \ + $(SHL5STDLIBS) \ + $(SHL5STDSHL) $(STDSHL5) \ + $(SHL5LINKRES) \ + ) >> $(MISC)/$(SHL5TARGET).lnk + $(COMMAND_ECHO)$(TYPE) $(MISC)/$(SHL5TARGETN:b)_linkinc.ls >> $(MISC)/$(SHL5TARGET).lnk + $(COMMAND_ECHO)$(SHL5LINKER) @$(MISC)/$(SHL5TARGET).lnk + @echo linking $@.manifest ... +.IF "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI) +.ELSE + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI) +.ENDIF # "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI) +.ENDIF # "$(linkinc)"=="" +.ENDIF # "$(COM)"=="GCC" +.ENDIF # "$(GUI)" == "WNT" +.IF "$(GUI)"=="UNX" +.IF "$(OS)"=="MACOSX" + @-$(RM) $(MISC)/$(@:b).list + @-$(RM) $(MISC)/$(TARGET).$(@:b)_5.cmd + @echo $(STDSLO) $(SHL5OBJS:s/.obj/.o/) \ + $(SHL5VERSIONOBJ) \ + `cat /dev/null $(SHL5LIBS) | sed s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g` | tr -s " " "\n" > $(MISC)/$(@:b).list + @/bin/echo -n $(SHL5LINKER) $(SHL5LINKFLAGS) $(SHL5VERSIONMAPPARA) $(LINKFLAGSSHL) -L$(PRJ)/$(ROUT)/lib $(SOLARLIB) -o $@ \ + $(SHL5STDLIBS) $(SHL5ARCHIVES) $(SHL5STDSHL) $(STDSHL5) -filelist $(MISC)/$(@:b).list $(LINKOUTPUT_FILTER) > $(MISC)/$(TARGET).$(@:b)_5.cmd + @$(PERL) $(SOLARENV)/bin/macosx-dylib-link-list.pl \ + `cat $(MISC)/$(TARGET).$(@:b)_5.cmd` \ + >> $(MISC)/$(TARGET).$(@:b)_5.cmd + .IF "$(VERBOSE)" == "TRUE" + @cat $(MISC)/$(TARGET).$(@:b)_5.cmd + .ENDIF + @+source $(MISC)/$(TARGET).$(@:b)_5.cmd + @$(PERL) $(SOLARENV)/bin/macosx-change-install-names.pl \ + shl $(SHL5RPATH) $@ +.IF "$(SHL5CREATEJNILIB)"!="" + @echo "Making: " $(@:f).jnilib + @macosx-create-bundle $@ +.ENDIF # "$(SHL5CREATEJNILIB)"!="" +.IF "$(UPDATER)"=="YES" +.IF "$(SHL5NOCHECK)"=="" + $(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS5) $(SHL5TARGETN) +.ENDIF # "$(SHL5NOCHECK)"!="" +.ENDIF +.ELIF "$(OS)"=="IOS" + $(COMMAND_ECHO)$(AR) $(LIB5FLAGS) $(LIBFLAGS) $@ $(subst,.obj,.o $(SHL5OBJS)) $(shell cat /dev/null $(LIB5TARGET) $(SHL5LIBS) | sed s\#'^'$(ROUT)\#$(PRJ)/$(ROUT)\#g) + $(COMMAND_ECHO)$(RANLIB) $@ +.ELSE # "$(OS)"=="MACOSX" + @-$(RM) $(MISC)/$(TARGET).$(@:b)_5.cmd + @echo $(SHL5LINKER) $(SHL5LINKFLAGS) $(SHL5SONAME) $(LINKFLAGSSHL) $(SHL5VERSIONMAPPARA) -L$(PRJ)/$(ROUT)/lib $(SOLARLIB) $(STDSLO) $(SHL5OBJS:s/.obj/.o/) \ + $(SHL5VERSIONOBJ) -o $@ \ + `cat /dev/null $(SHL5LIBS) | tr -s " " "\n" | $(SED) s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g` \ + $(SHL5STDLIBS) $(SHL5ARCHIVES) $(SHL5STDSHL) $(STDSHL5) $(LINKOUTPUT_FILTER) > $(MISC)/$(TARGET).$(@:b)_5.cmd + .IF "$(VERBOSE)" == "TRUE" + @cat $(MISC)/$(TARGET).$(@:b)_5.cmd + .ENDIF + @+source $(MISC)/$(TARGET).$(@:b)_5.cmd +.IF "$(UPDATER)"=="YES" +.IF "$(SHL5NOCHECK)"=="" + $(COMMAND_ECHO)-$(RM) $(SHL5TARGETN:d)check_$(SHL5TARGETN:f) + $(COMMAND_ECHO)$(RENAME) $(SHL5TARGETN) $(SHL5TARGETN:d)check_$(SHL5TARGETN:f) +.IF "$(VERBOSE)"=="TRUE" + $(COMMAND_ECHO)$(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS5) $(SHL5TARGETN:d)check_$(SHL5TARGETN:f) +.ELSE + $(COMMAND_ECHO)$(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS5) -- -s $(SHL5TARGETN:d)check_$(SHL5TARGETN:f) +.ENDIF +.ENDIF # "$(SHL5NOCHECK)"!="" +.ENDIF # "$(UPDATER)"=="YES" +.ENDIF # "$(OS)"=="MACOSX" +.IF "$(UNIXVERSIONNAMES)"!="" && "$(OS)"!="IOS" + $(COMMAND_ECHO)$(RM) $(LB)/$(SHL5TARGETN:b) + $(COMMAND_ECHO)cd $(LB) && ln -s $(SHL5TARGETN:f) $(SHL5TARGETN:b) +.ENDIF # "$(UNIXVERSIONNAMES)"!="" +.IF "$(VERBOSE)" == "TRUE" + @ls -l $@ +.ENDIF +.ENDIF # "$(GUI)" == "UNX" + +.ENDIF # "$(SHL5TARGETN)"!="" + +# unroll begin + +.IF "$(SHL6TARGETN)"!="" + +.IF "$(SHLLINKARCONLY)" != "" +SHL6STDLIBS= +STDSHL= +.ELSE +SHL6ARCHIVES= +.ENDIF + +# decide how to link +.IF "$(SHL6CODETYPE)"=="C" +SHL6LINKER=$(LINKC) +SHL6STDSHL=$(subst,CPPRUNTIME, $(STDSHL)) +SHL6LINKFLAGS+=$(LINKCFLAGS) +.ELSE # "$(SHL6CODETYPE)"=="C" +SHL6LINKER=$(LINK) +SHL6STDSHL=$(subst,CPPRUNTIME,$(STDLIBCPP) $(STDSHL)) +SHL6LINKFLAGS+=$(LINKFLAGS) +.ENDIF # "$(SHL6CODETYPE)"=="C" + +SHL6RPATH*=OOO +LINKFLAGSRUNPATH_$(SHL6RPATH)*=/ERROR:/Bad_SHL6RPATH_value +SHL6LINKFLAGS+=$(LINKFLAGSRUNPATH_$(SHL6RPATH)) + +.IF "$(SHL6USE_EXPORTS)"=="" +SHL6DEF*=$(MISC)/$(SHL6TARGET).def +.ENDIF # "$(SHL6USE_EXPORTS)"=="" + +EXTRALIBPATHS6=$(EXTRALIBPATHS) +.IF "$(UPDATER)"=="YES" +.IF "$(SHL6NOCHECK)"=="" +.IF "$(SOLAR_STLLIBPATH)"!="" +EXTRALIBPATHS6+=-L$(SOLAR_STLLIBPATH) +.ENDIF +.ENDIF # "$(SHL6NOCHECK)"!="" +.ENDIF +#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +#+++++++++++ version object ++++++++++++++++++++++++++++++++++++++++ +#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + +.IF "$(L10N_framework)"=="" +.IF "$(VERSIONOBJ)"!="" +SHL6VERSIONOBJ:=$(VERSIONOBJ:d){$(subst,$(DLLPOSTFIX),_dflt $(SHL6TARGET))}$(VERSIONOBJ:f) +USE_VERSIONH:=$(INCCOM)/$(SHL6VERSIONOBJ:b).h +.IF "$(GUI)" == "UNX" +SHL6VERSIONOBJDEP:=$(VERSIONOBJ:d){$(subst,$(DLLPOSTFIX),_dflt $(SHL6TARGET))}$(VERSIONOBJ:f:s/.o/.obj/) +.ELSE # "$(GUI)" == "UNX" +SHL6VERSIONOBJDEP:=$(VERSIONOBJ:d){$(subst,$(DLLPOSTFIX),_dflt $(SHL6TARGET))}$(VERSIONOBJ:f) +.ENDIF # "$(GUI)" == "UNX" +$(MISC)/$(SHL6VERSIONOBJ:b).c : $(SOLARENV)/src/version.c $(INCCOM)/$(SHL6VERSIONOBJ:b).h +# $(COPY) $(SOLARENV)/src/version.c $@ + $(COMMAND_ECHO)$(TYPE) $(SOLARENV)/src/version.c | $(SED) s/_version.h/$(SHL6VERSIONOBJ:b).h/ > $@ + +.INIT : $(SHL6VERSIONOBJDEP) +.ENDIF # "$(VERSIONOBJ)"!="" +.ENDIF + +.IF "$(GUI)" != "UNX" +.IF "$(GUI)" == "WNT" +.IF "$(SHL6IMPLIB)" == "" +SHL6IMPLIB=i$(TARGET)_t6 +.ENDIF # "$(SHL6IMPLIB)" == "" +.IF "$(COM)" != "GCC" +USE_6IMPLIB=-implib:$(LB)/$(SHL6IMPLIB).lib +SHL6IMPLIBN=$(LB)/$(SHL6IMPLIB).lib +.ELSE +USE_6IMPLIB=-Wl,--out-implib=$(SHL6IMPLIBN) +SHL6IMPLIBN=$(LB)/lib$(SHL6IMPLIB).dll.a +.ENDIF # "$(COM)" != "GCC" +ALLTAR : $(SHL6IMPLIBN) + +.IF "$(USE_DEFFILE)"=="" +.IF "$(COM)" != "GCC" +USE_6IMPLIB_DEPS=$(LB)/$(SHL6IMPLIB).lib +.ENDIF +.ENDIF # "$(USE_DEFFILE)"=="" +.ENDIF # "$(GUI)" == "WNT" +USE_SHL6DEF=$(SHL6DEF) +.ELSE # "$(GUI)" != "UNX" +USE_SHL6DEF= +SHL6DEPN+:=$(SHL6DEPNU) + +.IF "$(SHL6VERSIONMAP)"=="" +# to activate vmaps remove "#" +USE_SHL6VERSIONMAP=$(MISC)/$(SHL6TARGET).vmap +.ENDIF # "$(SHL6VERSIONMAP)"=="" + +.IF "$(USE_SHL6VERSIONMAP)"!="" + +.IF "$(SHL6FILTERFILE)"!="" +.IF "$(SHL6VERSIONMAP)"!="" +#eine von beiden ist zuviel +USE_SHL6VERSIONMAP=$(MISC)/$(SHL6TARGET).vmap +$(USE_SHL6VERSIONMAP) .PHONY: + @echo ----------------------------- + @echo you should only use versionmap OR exportfile + @echo ----------------------------- +# force_dmake_to_error + +.ENDIF # "$(SHL6VERSIONMAP)"!="" + +.IF "$(OS)" != "AIX" +SHL6VERSIONMAPPARA=$(LINKVERSIONMAPFLAG) $(USE_SHL6VERSIONMAP) +.ENDIF + +$(USE_SHL6VERSIONMAP): \ + $(SHL6OBJS)\ + $(SHL6LIBS)\ + $(SHL6FILTERFILE) + @$(RM) $@.dump +.IF "$(SHL6OBJS)"!="" +# dump remaining objects on the fly +.IF "$(OS)"=="MACOSX" + @-nm $(SHL6OBJS:s/.obj/.o/) > $@.dump +.ELSE + @nm $(SHL6OBJS:s/.obj/.o/) > $@.dump +.ENDIF +.ENDIF # "$(SHL6OBJS)!"="" + @$(TYPE) /dev/null $(SHL6LIBS:s/.lib/.dump/) >> $@.dump + $(COMMAND_ECHO) $(PERL) $(SOLARENV)/bin/mapgen.pl -d $@.dump -s $(SHL6INTERFACE) -f $(SHL6FILTERFILE) -m $@ + +.ELSE # "$(SHL6FILTERFILE)"!="" +USE_SHL6VERSIONMAP=$(MISC)/$(SHL6TARGET).vmap +$(USE_SHL6VERSIONMAP) : +.IF "$(VERBOSE)" == "TRUE" + @echo ----------------------------- + @echo SHL6FILTERFILE not set! + @echo ----------------------------- + @$(TOUCH) $@ + @echo dummy file to keep the dependencies for later use. +.ELSE + @$(TOUCH) $@ +.ENDIF +# force_dmake_to_error +.ENDIF # "$(SHL6FILTERFILE)"!="" +.ELSE # "$(USE_SHL6VERSIONMAP)"!="" + +#and now for the plain non-generic way... +.IF "$(SHL6VERSIONMAP)"!="" +USE_SHL6VERSIONMAP=$(MISC)/$(SHL6VERSIONMAP:b)_$(SHL6TARGET)$(SHL6VERSIONMAP:e) +.IF "$(OS)" != "AIX" +SHL6VERSIONMAPPARA=$(LINKVERSIONMAPFLAG) $(USE_SHL6VERSIONMAP) +.ENDIF + +.IF "$(OS)"=="MACOSX" +$(USE_SHL6VERSIONMAP): $(SHL6OBJS) $(SHL6LIBS) +.ENDIF + +# .ERRREMOVE is needed as a recipe line like "$(AWK) ... > $@" would create $@ +# even if the $(AWK) part fails: +$(USE_SHL6VERSIONMAP) .ERRREMOVE: $(SHL6VERSIONMAP) + @@-$(RM) -f $@ +# The following files will only be generated and needed on Mac OS X as temporary files +# in order to generate exported symbols list out of Linux/Solaris map files +.IF "$(OS)"=="MACOSX" + @-$(RM) -f $@.symregexp >& $(NULLDEV) + @-$(RM) -f $@.expsymlist >& $(NULLDEV) +.ENDIF +# Its questionable if the following condition '.IF "$(COMID)"=="gcc3"' makes sense and what +# happens if somebody will change it in the future +.IF "$(COMID)"=="gcc3" + $(COMMAND_ECHO) tr -d "\015" < $(SHL6VERSIONMAP) | $(AWK) -f $(SOLARENV)/bin/addsym.awk > $@ +.ELIF "$(COMNAME)"=="sunpro5" + $(COMMAND_ECHO) tr -d "\015" < $(SHL6VERSIONMAP) | $(GREP) -v $(IGNORE_SYMBOLS) > $@ +.ELSE # "$(COMID)"=="gcc3" + $(COMMAND_ECHO) tr -d "\015" < $(SHL6VERSIONMAP) > $@ +.ENDIF # "$(COMID)"=="gcc3" + @chmod a+w $@ +# Mac OS X post-processing generate an exported symbols list from the generated map file +# for details on exported symbols list see man ld on Mac OS X +.IF "$(OS)"=="MACOSX" + @-cat $@ | $(AWK) -f $(SOLARENV)/bin/unxmap-to-macosx-explist.awk | grep -v "\*\|?" > $@.exported-symbols + @-cat $@ | $(AWK) -f $(SOLARENV)/bin/unxmap-to-macosx-explist.awk | grep "\*\|?" > $@.symbols-regexp +# Shared libraries will be build out of the *.obj files specified in SHL?OBJS and SHL?LIBS +# Extract RTTI symbols from all the objects that will be used to build a shared library +.IF "$(SHL6OBJS)"!="" + -echo $(foreach,i,$(SHL6OBJS:s/.obj/.o/) $i) | xargs -n1 nm -gx | $(SOLARENV)/bin/addsym-macosx.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols +.ENDIF +.IF "$(SHL6LIBS)"!="" + $(COMMAND_ECHO)-$(TYPE) $(foreach,j,$(SHL6LIBS) $j) | $(SED) s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g | xargs -n1 nm -gx | $(SOLARENV)/bin/addsym-macosx.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols +.ENDIF +# overwrite the map file generate into the local output tree with the generated +# exported symbols list + cp $@.exported-symbols $@ +.ENDIF # .IF "$(OS)"=="MACOSX" +.ENDIF # "$(SHL6VERSIONMAP)"!="" +.ENDIF # "$(USE_SHL6VERSIONMAP)"!="" +.ENDIF # "$(GUI)" != "UNX" + +.IF "$(UNIXVERSIONNAMES)"!="" +.IF "$(OS)"!="MACOSX" && "$(OS)"!="IOS" && "$(OS)"!="AIX" +.IF "$(GUI)"=="UNX" +SHL6SONAME=\"$(SONAME_SWITCH)$(SHL6TARGETN:f)\" +.ENDIF # "$(GUI)"!="UNX" +.ENDIF # "$(OS)"!="MACOSX" +.ENDIF # "$(UNIXVERSIONNAMES)"!="" + +.IF "$(SHL6RES)"!="" +SHL6ALLRES+=$(SHL6RES) +SHL6LINKRES*=$(MISC)/$(SHL6TARGET).res +SHL6LINKRESO*=$(MISC)/$(SHL6TARGET)_res.o +.ENDIF # "$(SHL6RES)"!="" + +.IF "$(SHL6DEFAULTRES)$(use_shl_versions)"!="" +SHL6DEFAULTRES*=$(MISC)/$(SHL6TARGET)_def.res +SHL6ALLRES+=$(SHL6DEFAULTRES) +SHL6LINKRES*=$(MISC)/$(SHL6TARGET).res +SHL6LINKRESO*=$(MISC)/$(SHL6TARGET)_res.o +.ENDIF # "$(SHL6DEFAULTRES)$(use_shl_versions)"!="" + +#.IF "$(SHL6TARGETN)"!="" + +.IF "$(linkinc)"!="" +.IF "$(GUI)"=="WNT" +.IF "$(SHL6LIBS)"!="" +$(MISC)/$(SHL6TARGET)_linkinc.ls .PHONY: + @@-$(RM) $@ + $(COMMAND_ECHO)$(SED) -f $(SOLARENV)/bin/chrel.sed $(foreach,i,$(SHL6LIBS) $(i:s/.lib/.lin/)) >> $@ +.ENDIF # "$(SHL6LIBS)"!="" +.ENDIF + +LINKINCTARGETS+=$(MISC)/$(SHL6TARGETN:b)_linkinc.ls +$(SHL6TARGETN) : $(LINKINCTARGETS) + +.ELSE +.IF "$(SHL6USE_EXPORTS)"=="name" +.IF "$(GUI)"=="WNT" +.IF "$(COM)"!="GCC" +.IF "$(SHL6LIBS)"!="" +SHL6LINKLIST=$(MISC)/$(SHL6TARGET)_link.lst +SHL6LINKLISTPARAM=@$(SHL6LINKLIST) +$(SHL6LINKLIST) : $(SHL6LIBS) + @@-$(RM) $@ + $(COMMAND_ECHO)$(SED) -f $(SOLARENV)/bin/chrel.sed $(foreach,i,$(SHL6LIBS) $(i:s/.lib/.lin/)) >> $@ +.ENDIF # "$(SHL6LIBS)"!="" +.ENDIF # "$(COM)"!="GCC" +.ENDIF +.ENDIF # "$(SHL6USE_EXPORTS)"=="name" + +$(MISC)/%linkinc.ls: + @echo . > $@ +.ENDIF # "$(linkinc)"!="" + +.IF "$(COM)" == "GCC" && "$(SHL6IMPLIBN)" != "" +$(SHL6IMPLIBN) : $(SHL6TARGETN) +.ENDIF + +$(SHL6TARGETN) : \ + $(SHL6OBJS)\ + $(SHL6LIBS)\ + $(USE_6IMPLIB_DEPS)\ + $(USE_SHL6DEF)\ + $(USE_SHL6VERSIONMAP)\ + $(SHL6RES)\ + $(SHL6DEPN) \ + $(SHL6LINKLIST) + @echo "Making: " $(@:f) +.IF "$(GUI)" == "WNT" +.IF "$(SHL6DEFAULTRES)"!="" + @@-$(RM) $(MISC)/$(SHL6DEFAULTRES:b).rc +.IF "$(SHL6ICON)" != "" + @echo 1 ICON $(SHL6ICON) >> $(MISC)/$(SHL6DEFAULTRES:b).rc +.ENDIF +.IF "$(use_shl_versions)" != "" +.IF "$(SHL6ADD_VERINFO)"!="" + @echo $(EMQ)#include $(EMQ)"$(SHL6ADD_VERINFO)$(EMQ)" >> $(MISC)/$(SHL6DEFAULTRES:b).rc +.ELSE # "$(SHL6ADD_VERINFO)"!="" + @echo $(EMQ)#define ADDITIONAL_VERINFO1 >> $(MISC)/$(SHL6DEFAULTRES:b).rc + @echo $(EMQ)#define ADDITIONAL_VERINFO2 >> $(MISC)/$(SHL6DEFAULTRES:b).rc + @echo $(EMQ)#define ADDITIONAL_VERINFO3 >> $(MISC)/$(SHL6DEFAULTRES:b).rc +.ENDIF # "$(SHL6ADD_VERINFO)"!="" + @echo $(EMQ)#define VERVARIANT $(BUILD) >> $(MISC)/$(SHL6DEFAULTRES:b).rc + @echo $(EMQ)#define ORG_NAME $(SHL6TARGET)$(DLLPOST) >> $(MISC)/$(SHL6DEFAULTRES:b).rc + @echo $(EMQ)#define INTERNAL_NAME $(SHL6TARGET:b) >> $(MISC)/$(SHL6DEFAULTRES:b).rc + @echo $(EMQ)#include $(EMQ)"shlinfo.rc$(EMQ)" >> $(MISC)/$(SHL6DEFAULTRES:b).rc +.ENDIF # "$(use_shl_versions)" != "" +.IF "$(RCFLAGSOUTRES)"!="" +# rc, takes separate flag naming output file, source .rc file last + $(COMMAND_ECHO)$(RC) -DWIN32 $(INCLUDE) $(RCLINKFLAGS) $(RCFLAGSOUTRES)$(SHL6DEFAULTRES) $(MISC)/$(SHL6DEFAULTRES:b).rc +.ELSE +# windres, just takes output file last + $(COMMAND_ECHO)$(RC) -DWIN32 $(INCLUDE) $(RCLINKFLAGS) $(MISC)/$(SHL6DEFAULTRES:b).rc $(SHL6DEFAULTRES) +.ENDIF +.ENDIF # "$(SHL6DEFAULTRES)"!="" +.IF "$(SHL6ALLRES)"!="" + $(COMMAND_ECHO)$(TYPE) $(SHL6ALLRES) > $(SHL6LINKRES) +.IF "$(COM)"=="GCC" + $(WINDRES) $(SHL6LINKRES) $(SHL6LINKRESO) +.ENDIF # "$(COM)"=="GCC" +.ENDIF # "$(SHL6ALLRES)"!="" +.IF "$(COM)"=="GCC" +# GNU ld since 2.17 supports @cmdfile syntax +.IF "$(USE_DEFFILE)"!="" + $(COMMAND_ECHO)$(LINK) @$(mktmp $(strip \ + $(SHL6LINKFLAGS) \ + $(LINKFLAGSSHL) \ + $(SOLARLIB) \ + $(MINGWSSTDOBJ) \ + -o $@ \ + -Wl,-Map,$(MISC)/$(@:b).map \ + $(SHL6DEF) \ + $(USE_6IMPLIB) \ + $(STDOBJ) \ + $(SHL6VERSIONOBJ) $(SHL6OBJS) \ + $(subst,$(ROUT),$(PRJ)/$(ROUT) $(shell cat /dev/null $(SHL6LIBS))) \ + -Wl,--exclude-libs,ALL,--start-group $(SHL6STDLIBS) -Wl,--end-group \ + $(SHL6STDSHL) $(STDSHL6) \ + $(SHL6LINKRESO) \ + )) +.ELSE + @noop $(assign ALL6OBJLIST:=$(STDOBJ) $(SHL6OBJS) $(SHL6LINKRESO) $(shell $(TYPE) /dev/null $(SHL6LIBS) | $(SED) s?$(ROUT)?$(PRJ)/$(ROUT)?g)) +.IF "$(DEFLIB6NAME)"!="" # do not have to include objs + @noop $(assign DEF6OBJLIST:=$(shell $(TYPE) $(foreach,i,$(DEFLIB6NAME) $(SLB)/$(i).lib) | sed s?$(ROUT)?$(PRJ)/$(ROUT)?g)) + @noop $(foreach,i,$(DEF6OBJLIST) $(assign ALL6OBJLIST:=$(ALL6OBJLIST:s?$i??))) +.ENDIF # "$(DEFLIB6NAME)"!="" + $(COMMAND_ECHO)$(LINK) @$(mktmp $(strip \ + $(SHL6LINKFLAGS) \ + $(LINKFLAGSSHL) \ + $(SOLARLIB) \ + $(MINGWSSTDOBJ) \ + -o $@ \ + -Wl,-Map,$(MISC)/$(@:b).map \ + $(SHL6DEF) \ + $(USE_6IMPLIB) \ + $(STDOBJ) \ + $(SHL6VERSIONOBJ) $(SHL6OBJS) \ + $(subst,$(ROUT),$(PRJ)/$(ROUT) $(shell cat /dev/null $(SHL6LIBS))) \ + -Wl,--exclude-libs,ALL,--start-group $(SHL6STDLIBS) -Wl,--end-group \ + $(SHL6STDSHL) $(STDSHL6) \ + $(SHL6LINKRESO) \ + )) +.ENDIF +.ELSE +.IF "$(linkinc)"=="" +.IF "$(SHL6USE_EXPORTS)"!="name" +.IF "$(USE_DEFFILE)"!="" + $(COMMAND_ECHO)$(SHL6LINKER) @$(mktmp \ + $(SHL6LINKFLAGS) \ + $(LINKFLAGSSHL) \ + $(SHL6STACK) $(SHL6BASEX) \ + -out:$@ \ + -map:$(MISC)/$(@:b).map \ + -def:$(SHL6DEF) \ + $(USE_6IMPLIB) \ + $(STDOBJ) \ + $(SHL6VERSIONOBJ) $(SHL6OBJS) \ + $(SHL6LIBS) \ + $(SHL6STDLIBS) \ + $(SHL6STDSHL) $(STDSHL6) \ + $(SHL6LINKRES) \ + ) +# double check if target was really written... still making sense? + @@$(LS) $@ + @echo linking $@.manifest ... +.IF "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI) +.ELSE + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI) +.ENDIF # "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI) +.ELSE # "$(USE_DEFFILE)"!="" + $(COMMAND_ECHO)$(SHL6LINKER) @$(mktmp $(SHL6LINKFLAGS) \ + $(LINKFLAGSSHL) $(SHL6BASEX) \ + $(SHL6STACK) -out:$(SHL6TARGETN) \ + -map:$(MISC)/$(@:B).map \ + $(LB)/$(SHL6IMPLIB).exp \ + $(STDOBJ) \ + $(SHL6OBJS) $(SHL6VERSIONOBJ) \ + $(SHL6LIBS) \ + $(SHL6STDLIBS) \ + $(SHL6STDSHL) $(STDSHL6) \ + $(SHL6LINKRES) \ + ) +# double check if target was really written... still making sense? + @@$(LS) $@ + @echo linking $@.manifest ... +.IF "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI) +.ELSE + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI) +.ENDIF # "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI) +.ENDIF # "$(USE_DEFFILE)"!="" +.ELSE # "$(SHL6USE_EXPORTS)"!="name" + $(COMMAND_ECHO)$(SHL6LINKER) @$(mktmp $(SHL6LINKFLAGS) \ + $(LINKFLAGSSHL) $(SHL6BASEX) \ + $(SHL6STACK) -out:$(SHL6TARGETN) \ + -map:$(MISC)/$(@:B).map \ + $(USE_6IMPLIB) \ + $(STDOBJ) \ + $(SHL6OBJS) $(SHL6VERSIONOBJ)) \ + $(SHL6LINKLISTPARAM) \ + @$(mktmp $(SHL6STDLIBS) \ + $(SHL6STDSHL) $(STDSHL6) \ + $(SHL6LINKRES) \ + ) + @echo linking $@.manifest ... +.IF "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI) +.ELSE + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI) +.ENDIF # "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI) +.ENDIF # "$(SHL6USE_EXPORTS)"!="name" +.ELSE # "$(linkinc)"=="" + $(COMMAND_ECHO)-$(RM) del $(MISC)/$(SHL6TARGET).lnk + $(COMMAND_ECHO)-$(RM) $(MISC)/$(SHL6TARGET).lst + $(COMMAND_ECHO)$(TYPE) $(mktmp \ + $(SHL6LINKFLAGS) \ + $(LINKFLAGSSHL) $(SHL6BASEX) \ + $(SHL6STACK) $(MAPFILE) \ + -out:$@ \ + $(LB)/$(SHL6IMPLIB).exp \ + $(STDOBJ) \ + $(SHL6OBJS) \ + $(SHL6STDLIBS) \ + $(SHL6STDSHL) $(STDSHL6) \ + $(SHL6LINKRES) \ + ) >> $(MISC)/$(SHL6TARGET).lnk + $(COMMAND_ECHO)$(TYPE) $(MISC)/$(SHL6TARGETN:b)_linkinc.ls >> $(MISC)/$(SHL6TARGET).lnk + $(COMMAND_ECHO)$(SHL6LINKER) @$(MISC)/$(SHL6TARGET).lnk + @echo linking $@.manifest ... +.IF "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI) +.ELSE + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI) +.ENDIF # "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI) +.ENDIF # "$(linkinc)"=="" +.ENDIF # "$(COM)"=="GCC" +.ENDIF # "$(GUI)" == "WNT" +.IF "$(GUI)"=="UNX" +.IF "$(OS)"=="MACOSX" + @-$(RM) $(MISC)/$(@:b).list + @-$(RM) $(MISC)/$(TARGET).$(@:b)_6.cmd + @echo $(STDSLO) $(SHL6OBJS:s/.obj/.o/) \ + $(SHL6VERSIONOBJ) \ + `cat /dev/null $(SHL6LIBS) | sed s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g` | tr -s " " "\n" > $(MISC)/$(@:b).list + @/bin/echo -n $(SHL6LINKER) $(SHL6LINKFLAGS) $(SHL6VERSIONMAPPARA) $(LINKFLAGSSHL) -L$(PRJ)/$(ROUT)/lib $(SOLARLIB) -o $@ \ + $(SHL6STDLIBS) $(SHL6ARCHIVES) $(SHL6STDSHL) $(STDSHL6) -filelist $(MISC)/$(@:b).list $(LINKOUTPUT_FILTER) > $(MISC)/$(TARGET).$(@:b)_6.cmd + @$(PERL) $(SOLARENV)/bin/macosx-dylib-link-list.pl \ + `cat $(MISC)/$(TARGET).$(@:b)_6.cmd` \ + >> $(MISC)/$(TARGET).$(@:b)_6.cmd + .IF "$(VERBOSE)" == "TRUE" + @cat $(MISC)/$(TARGET).$(@:b)_6.cmd + .ENDIF + @+source $(MISC)/$(TARGET).$(@:b)_6.cmd + @$(PERL) $(SOLARENV)/bin/macosx-change-install-names.pl \ + shl $(SHL6RPATH) $@ +.IF "$(SHL6CREATEJNILIB)"!="" + @echo "Making: " $(@:f).jnilib + @macosx-create-bundle $@ +.ENDIF # "$(SHL6CREATEJNILIB)"!="" +.IF "$(UPDATER)"=="YES" +.IF "$(SHL6NOCHECK)"=="" + $(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS6) $(SHL6TARGETN) +.ENDIF # "$(SHL6NOCHECK)"!="" +.ENDIF +.ELIF "$(OS)"=="IOS" + $(COMMAND_ECHO)$(AR) $(LIB6FLAGS) $(LIBFLAGS) $@ $(subst,.obj,.o $(SHL6OBJS)) $(shell cat /dev/null $(LIB6TARGET) $(SHL6LIBS) | sed s\#'^'$(ROUT)\#$(PRJ)/$(ROUT)\#g) + $(COMMAND_ECHO)$(RANLIB) $@ +.ELSE # "$(OS)"=="MACOSX" + @-$(RM) $(MISC)/$(TARGET).$(@:b)_6.cmd + @echo $(SHL6LINKER) $(SHL6LINKFLAGS) $(SHL6SONAME) $(LINKFLAGSSHL) $(SHL6VERSIONMAPPARA) -L$(PRJ)/$(ROUT)/lib $(SOLARLIB) $(STDSLO) $(SHL6OBJS:s/.obj/.o/) \ + $(SHL6VERSIONOBJ) -o $@ \ + `cat /dev/null $(SHL6LIBS) | tr -s " " "\n" | $(SED) s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g` \ + $(SHL6STDLIBS) $(SHL6ARCHIVES) $(SHL6STDSHL) $(STDSHL6) $(LINKOUTPUT_FILTER) > $(MISC)/$(TARGET).$(@:b)_6.cmd + .IF "$(VERBOSE)" == "TRUE" + @cat $(MISC)/$(TARGET).$(@:b)_6.cmd + .ENDIF + @+source $(MISC)/$(TARGET).$(@:b)_6.cmd +.IF "$(UPDATER)"=="YES" +.IF "$(SHL6NOCHECK)"=="" + $(COMMAND_ECHO)-$(RM) $(SHL6TARGETN:d)check_$(SHL6TARGETN:f) + $(COMMAND_ECHO)$(RENAME) $(SHL6TARGETN) $(SHL6TARGETN:d)check_$(SHL6TARGETN:f) +.IF "$(VERBOSE)"=="TRUE" + $(COMMAND_ECHO)$(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS6) $(SHL6TARGETN:d)check_$(SHL6TARGETN:f) +.ELSE + $(COMMAND_ECHO)$(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS6) -- -s $(SHL6TARGETN:d)check_$(SHL6TARGETN:f) +.ENDIF +.ENDIF # "$(SHL6NOCHECK)"!="" +.ENDIF # "$(UPDATER)"=="YES" +.ENDIF # "$(OS)"=="MACOSX" +.IF "$(UNIXVERSIONNAMES)"!="" && "$(OS)"!="IOS" + $(COMMAND_ECHO)$(RM) $(LB)/$(SHL6TARGETN:b) + $(COMMAND_ECHO)cd $(LB) && ln -s $(SHL6TARGETN:f) $(SHL6TARGETN:b) +.ENDIF # "$(UNIXVERSIONNAMES)"!="" +.IF "$(VERBOSE)" == "TRUE" + @ls -l $@ +.ENDIF +.ENDIF # "$(GUI)" == "UNX" + +.ENDIF # "$(SHL6TARGETN)"!="" + +# unroll begin + +.IF "$(SHL7TARGETN)"!="" + +.IF "$(SHLLINKARCONLY)" != "" +SHL7STDLIBS= +STDSHL= +.ELSE +SHL7ARCHIVES= +.ENDIF + +# decide how to link +.IF "$(SHL7CODETYPE)"=="C" +SHL7LINKER=$(LINKC) +SHL7STDSHL=$(subst,CPPRUNTIME, $(STDSHL)) +SHL7LINKFLAGS+=$(LINKCFLAGS) +.ELSE # "$(SHL7CODETYPE)"=="C" +SHL7LINKER=$(LINK) +SHL7STDSHL=$(subst,CPPRUNTIME,$(STDLIBCPP) $(STDSHL)) +SHL7LINKFLAGS+=$(LINKFLAGS) +.ENDIF # "$(SHL7CODETYPE)"=="C" + +SHL7RPATH*=OOO +LINKFLAGSRUNPATH_$(SHL7RPATH)*=/ERROR:/Bad_SHL7RPATH_value +SHL7LINKFLAGS+=$(LINKFLAGSRUNPATH_$(SHL7RPATH)) + +.IF "$(SHL7USE_EXPORTS)"=="" +SHL7DEF*=$(MISC)/$(SHL7TARGET).def +.ENDIF # "$(SHL7USE_EXPORTS)"=="" + +EXTRALIBPATHS7=$(EXTRALIBPATHS) +.IF "$(UPDATER)"=="YES" +.IF "$(SHL7NOCHECK)"=="" +.IF "$(SOLAR_STLLIBPATH)"!="" +EXTRALIBPATHS7+=-L$(SOLAR_STLLIBPATH) +.ENDIF +.ENDIF # "$(SHL7NOCHECK)"!="" +.ENDIF +#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +#+++++++++++ version object ++++++++++++++++++++++++++++++++++++++++ +#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + +.IF "$(L10N_framework)"=="" +.IF "$(VERSIONOBJ)"!="" +SHL7VERSIONOBJ:=$(VERSIONOBJ:d){$(subst,$(DLLPOSTFIX),_dflt $(SHL7TARGET))}$(VERSIONOBJ:f) +USE_VERSIONH:=$(INCCOM)/$(SHL7VERSIONOBJ:b).h +.IF "$(GUI)" == "UNX" +SHL7VERSIONOBJDEP:=$(VERSIONOBJ:d){$(subst,$(DLLPOSTFIX),_dflt $(SHL7TARGET))}$(VERSIONOBJ:f:s/.o/.obj/) +.ELSE # "$(GUI)" == "UNX" +SHL7VERSIONOBJDEP:=$(VERSIONOBJ:d){$(subst,$(DLLPOSTFIX),_dflt $(SHL7TARGET))}$(VERSIONOBJ:f) +.ENDIF # "$(GUI)" == "UNX" +$(MISC)/$(SHL7VERSIONOBJ:b).c : $(SOLARENV)/src/version.c $(INCCOM)/$(SHL7VERSIONOBJ:b).h +# $(COPY) $(SOLARENV)/src/version.c $@ + $(COMMAND_ECHO)$(TYPE) $(SOLARENV)/src/version.c | $(SED) s/_version.h/$(SHL7VERSIONOBJ:b).h/ > $@ + +.INIT : $(SHL7VERSIONOBJDEP) +.ENDIF # "$(VERSIONOBJ)"!="" +.ENDIF + +.IF "$(GUI)" != "UNX" +.IF "$(GUI)" == "WNT" +.IF "$(SHL7IMPLIB)" == "" +SHL7IMPLIB=i$(TARGET)_t7 +.ENDIF # "$(SHL7IMPLIB)" == "" +.IF "$(COM)" != "GCC" +USE_7IMPLIB=-implib:$(LB)/$(SHL7IMPLIB).lib +SHL7IMPLIBN=$(LB)/$(SHL7IMPLIB).lib +.ELSE +USE_7IMPLIB=-Wl,--out-implib=$(SHL7IMPLIBN) +SHL7IMPLIBN=$(LB)/lib$(SHL7IMPLIB).dll.a +.ENDIF # "$(COM)" != "GCC" +ALLTAR : $(SHL7IMPLIBN) + +.IF "$(USE_DEFFILE)"=="" +.IF "$(COM)" != "GCC" +USE_7IMPLIB_DEPS=$(LB)/$(SHL7IMPLIB).lib +.ENDIF +.ENDIF # "$(USE_DEFFILE)"=="" +.ENDIF # "$(GUI)" == "WNT" +USE_SHL7DEF=$(SHL7DEF) +.ELSE # "$(GUI)" != "UNX" +USE_SHL7DEF= +SHL7DEPN+:=$(SHL7DEPNU) + +.IF "$(SHL7VERSIONMAP)"=="" +# to activate vmaps remove "#" +USE_SHL7VERSIONMAP=$(MISC)/$(SHL7TARGET).vmap +.ENDIF # "$(SHL7VERSIONMAP)"=="" + +.IF "$(USE_SHL7VERSIONMAP)"!="" + +.IF "$(SHL7FILTERFILE)"!="" +.IF "$(SHL7VERSIONMAP)"!="" +#eine von beiden ist zuviel +USE_SHL7VERSIONMAP=$(MISC)/$(SHL7TARGET).vmap +$(USE_SHL7VERSIONMAP) .PHONY: + @echo ----------------------------- + @echo you should only use versionmap OR exportfile + @echo ----------------------------- +# force_dmake_to_error + +.ENDIF # "$(SHL7VERSIONMAP)"!="" + +.IF "$(OS)" != "AIX" +SHL7VERSIONMAPPARA=$(LINKVERSIONMAPFLAG) $(USE_SHL7VERSIONMAP) +.ENDIF + +$(USE_SHL7VERSIONMAP): \ + $(SHL7OBJS)\ + $(SHL7LIBS)\ + $(SHL7FILTERFILE) + @$(RM) $@.dump +.IF "$(SHL7OBJS)"!="" +# dump remaining objects on the fly +.IF "$(OS)"=="MACOSX" + @-nm $(SHL7OBJS:s/.obj/.o/) > $@.dump +.ELSE + @nm $(SHL7OBJS:s/.obj/.o/) > $@.dump +.ENDIF +.ENDIF # "$(SHL7OBJS)!"="" + @$(TYPE) /dev/null $(SHL7LIBS:s/.lib/.dump/) >> $@.dump + $(COMMAND_ECHO) $(PERL) $(SOLARENV)/bin/mapgen.pl -d $@.dump -s $(SHL7INTERFACE) -f $(SHL7FILTERFILE) -m $@ + +.ELSE # "$(SHL7FILTERFILE)"!="" +USE_SHL7VERSIONMAP=$(MISC)/$(SHL7TARGET).vmap +$(USE_SHL7VERSIONMAP) : +.IF "$(VERBOSE)" == "TRUE" + @echo ----------------------------- + @echo SHL7FILTERFILE not set! + @echo ----------------------------- + @$(TOUCH) $@ + @echo dummy file to keep the dependencies for later use. +.ELSE + @$(TOUCH) $@ +.ENDIF +# force_dmake_to_error +.ENDIF # "$(SHL7FILTERFILE)"!="" +.ELSE # "$(USE_SHL7VERSIONMAP)"!="" + +#and now for the plain non-generic way... +.IF "$(SHL7VERSIONMAP)"!="" +USE_SHL7VERSIONMAP=$(MISC)/$(SHL7VERSIONMAP:b)_$(SHL7TARGET)$(SHL7VERSIONMAP:e) +.IF "$(OS)" != "AIX" +SHL7VERSIONMAPPARA=$(LINKVERSIONMAPFLAG) $(USE_SHL7VERSIONMAP) +.ENDIF + +.IF "$(OS)"=="MACOSX" +$(USE_SHL7VERSIONMAP): $(SHL7OBJS) $(SHL7LIBS) +.ENDIF + +# .ERRREMOVE is needed as a recipe line like "$(AWK) ... > $@" would create $@ +# even if the $(AWK) part fails: +$(USE_SHL7VERSIONMAP) .ERRREMOVE: $(SHL7VERSIONMAP) + @@-$(RM) -f $@ +# The following files will only be generated and needed on Mac OS X as temporary files +# in order to generate exported symbols list out of Linux/Solaris map files +.IF "$(OS)"=="MACOSX" + @-$(RM) -f $@.symregexp >& $(NULLDEV) + @-$(RM) -f $@.expsymlist >& $(NULLDEV) +.ENDIF +# Its questionable if the following condition '.IF "$(COMID)"=="gcc3"' makes sense and what +# happens if somebody will change it in the future +.IF "$(COMID)"=="gcc3" + $(COMMAND_ECHO) tr -d "\015" < $(SHL7VERSIONMAP) | $(AWK) -f $(SOLARENV)/bin/addsym.awk > $@ +.ELIF "$(COMNAME)"=="sunpro5" + $(COMMAND_ECHO) tr -d "\015" < $(SHL7VERSIONMAP) | $(GREP) -v $(IGNORE_SYMBOLS) > $@ +.ELSE # "$(COMID)"=="gcc3" + $(COMMAND_ECHO) tr -d "\015" < $(SHL7VERSIONMAP) > $@ +.ENDIF # "$(COMID)"=="gcc3" + @chmod a+w $@ +# Mac OS X post-processing generate an exported symbols list from the generated map file +# for details on exported symbols list see man ld on Mac OS X +.IF "$(OS)"=="MACOSX" + @-cat $@ | $(AWK) -f $(SOLARENV)/bin/unxmap-to-macosx-explist.awk | grep -v "\*\|?" > $@.exported-symbols + @-cat $@ | $(AWK) -f $(SOLARENV)/bin/unxmap-to-macosx-explist.awk | grep "\*\|?" > $@.symbols-regexp +# Shared libraries will be build out of the *.obj files specified in SHL?OBJS and SHL?LIBS +# Extract RTTI symbols from all the objects that will be used to build a shared library +.IF "$(SHL7OBJS)"!="" + -echo $(foreach,i,$(SHL7OBJS:s/.obj/.o/) $i) | xargs -n1 nm -gx | $(SOLARENV)/bin/addsym-macosx.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols +.ENDIF +.IF "$(SHL7LIBS)"!="" + $(COMMAND_ECHO)-$(TYPE) $(foreach,j,$(SHL7LIBS) $j) | $(SED) s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g | xargs -n1 nm -gx | $(SOLARENV)/bin/addsym-macosx.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols +.ENDIF +# overwrite the map file generate into the local output tree with the generated +# exported symbols list + cp $@.exported-symbols $@ +.ENDIF # .IF "$(OS)"=="MACOSX" +.ENDIF # "$(SHL7VERSIONMAP)"!="" +.ENDIF # "$(USE_SHL7VERSIONMAP)"!="" +.ENDIF # "$(GUI)" != "UNX" + +.IF "$(UNIXVERSIONNAMES)"!="" +.IF "$(OS)"!="MACOSX" && "$(OS)"!="IOS" && "$(OS)"!="AIX" +.IF "$(GUI)"=="UNX" +SHL7SONAME=\"$(SONAME_SWITCH)$(SHL7TARGETN:f)\" +.ENDIF # "$(GUI)"!="UNX" +.ENDIF # "$(OS)"!="MACOSX" +.ENDIF # "$(UNIXVERSIONNAMES)"!="" + +.IF "$(SHL7RES)"!="" +SHL7ALLRES+=$(SHL7RES) +SHL7LINKRES*=$(MISC)/$(SHL7TARGET).res +SHL7LINKRESO*=$(MISC)/$(SHL7TARGET)_res.o +.ENDIF # "$(SHL7RES)"!="" + +.IF "$(SHL7DEFAULTRES)$(use_shl_versions)"!="" +SHL7DEFAULTRES*=$(MISC)/$(SHL7TARGET)_def.res +SHL7ALLRES+=$(SHL7DEFAULTRES) +SHL7LINKRES*=$(MISC)/$(SHL7TARGET).res +SHL7LINKRESO*=$(MISC)/$(SHL7TARGET)_res.o +.ENDIF # "$(SHL7DEFAULTRES)$(use_shl_versions)"!="" + +#.IF "$(SHL7TARGETN)"!="" + +.IF "$(linkinc)"!="" +.IF "$(GUI)"=="WNT" +.IF "$(SHL7LIBS)"!="" +$(MISC)/$(SHL7TARGET)_linkinc.ls .PHONY: + @@-$(RM) $@ + $(COMMAND_ECHO)$(SED) -f $(SOLARENV)/bin/chrel.sed $(foreach,i,$(SHL7LIBS) $(i:s/.lib/.lin/)) >> $@ +.ENDIF # "$(SHL7LIBS)"!="" +.ENDIF + +LINKINCTARGETS+=$(MISC)/$(SHL7TARGETN:b)_linkinc.ls +$(SHL7TARGETN) : $(LINKINCTARGETS) + +.ELSE +.IF "$(SHL7USE_EXPORTS)"=="name" +.IF "$(GUI)"=="WNT" +.IF "$(COM)"!="GCC" +.IF "$(SHL7LIBS)"!="" +SHL7LINKLIST=$(MISC)/$(SHL7TARGET)_link.lst +SHL7LINKLISTPARAM=@$(SHL7LINKLIST) +$(SHL7LINKLIST) : $(SHL7LIBS) + @@-$(RM) $@ + $(COMMAND_ECHO)$(SED) -f $(SOLARENV)/bin/chrel.sed $(foreach,i,$(SHL7LIBS) $(i:s/.lib/.lin/)) >> $@ +.ENDIF # "$(SHL7LIBS)"!="" +.ENDIF # "$(COM)"!="GCC" +.ENDIF +.ENDIF # "$(SHL7USE_EXPORTS)"=="name" + +$(MISC)/%linkinc.ls: + @echo . > $@ +.ENDIF # "$(linkinc)"!="" + +.IF "$(COM)" == "GCC" && "$(SHL7IMPLIBN)" != "" +$(SHL7IMPLIBN) : $(SHL7TARGETN) +.ENDIF + +$(SHL7TARGETN) : \ + $(SHL7OBJS)\ + $(SHL7LIBS)\ + $(USE_7IMPLIB_DEPS)\ + $(USE_SHL7DEF)\ + $(USE_SHL7VERSIONMAP)\ + $(SHL7RES)\ + $(SHL7DEPN) \ + $(SHL7LINKLIST) + @echo "Making: " $(@:f) +.IF "$(GUI)" == "WNT" +.IF "$(SHL7DEFAULTRES)"!="" + @@-$(RM) $(MISC)/$(SHL7DEFAULTRES:b).rc +.IF "$(SHL7ICON)" != "" + @echo 1 ICON $(SHL7ICON) >> $(MISC)/$(SHL7DEFAULTRES:b).rc +.ENDIF +.IF "$(use_shl_versions)" != "" +.IF "$(SHL7ADD_VERINFO)"!="" + @echo $(EMQ)#include $(EMQ)"$(SHL7ADD_VERINFO)$(EMQ)" >> $(MISC)/$(SHL7DEFAULTRES:b).rc +.ELSE # "$(SHL7ADD_VERINFO)"!="" + @echo $(EMQ)#define ADDITIONAL_VERINFO1 >> $(MISC)/$(SHL7DEFAULTRES:b).rc + @echo $(EMQ)#define ADDITIONAL_VERINFO2 >> $(MISC)/$(SHL7DEFAULTRES:b).rc + @echo $(EMQ)#define ADDITIONAL_VERINFO3 >> $(MISC)/$(SHL7DEFAULTRES:b).rc +.ENDIF # "$(SHL7ADD_VERINFO)"!="" + @echo $(EMQ)#define VERVARIANT $(BUILD) >> $(MISC)/$(SHL7DEFAULTRES:b).rc + @echo $(EMQ)#define ORG_NAME $(SHL7TARGET)$(DLLPOST) >> $(MISC)/$(SHL7DEFAULTRES:b).rc + @echo $(EMQ)#define INTERNAL_NAME $(SHL7TARGET:b) >> $(MISC)/$(SHL7DEFAULTRES:b).rc + @echo $(EMQ)#include $(EMQ)"shlinfo.rc$(EMQ)" >> $(MISC)/$(SHL7DEFAULTRES:b).rc +.ENDIF # "$(use_shl_versions)" != "" +.IF "$(RCFLAGSOUTRES)"!="" +# rc, takes separate flag naming output file, source .rc file last + $(COMMAND_ECHO)$(RC) -DWIN32 $(INCLUDE) $(RCLINKFLAGS) $(RCFLAGSOUTRES)$(SHL7DEFAULTRES) $(MISC)/$(SHL7DEFAULTRES:b).rc +.ELSE +# windres, just takes output file last + $(COMMAND_ECHO)$(RC) -DWIN32 $(INCLUDE) $(RCLINKFLAGS) $(MISC)/$(SHL7DEFAULTRES:b).rc $(SHL7DEFAULTRES) +.ENDIF +.ENDIF # "$(SHL7DEFAULTRES)"!="" +.IF "$(SHL7ALLRES)"!="" + $(COMMAND_ECHO)$(TYPE) $(SHL7ALLRES) > $(SHL7LINKRES) +.IF "$(COM)"=="GCC" + $(WINDRES) $(SHL7LINKRES) $(SHL7LINKRESO) +.ENDIF # "$(COM)"=="GCC" +.ENDIF # "$(SHL7ALLRES)"!="" +.IF "$(COM)"=="GCC" +# GNU ld since 2.17 supports @cmdfile syntax +.IF "$(USE_DEFFILE)"!="" + $(COMMAND_ECHO)$(LINK) @$(mktmp $(strip \ + $(SHL7LINKFLAGS) \ + $(LINKFLAGSSHL) \ + $(SOLARLIB) \ + $(MINGWSSTDOBJ) \ + -o $@ \ + -Wl,-Map,$(MISC)/$(@:b).map \ + $(SHL7DEF) \ + $(USE_7IMPLIB) \ + $(STDOBJ) \ + $(SHL7VERSIONOBJ) $(SHL7OBJS) \ + $(subst,$(ROUT),$(PRJ)/$(ROUT) $(shell cat /dev/null $(SHL7LIBS))) \ + -Wl,--exclude-libs,ALL,--start-group $(SHL7STDLIBS) -Wl,--end-group \ + $(SHL7STDSHL) $(STDSHL7) \ + $(SHL7LINKRESO) \ + )) +.ELSE + @noop $(assign ALL7OBJLIST:=$(STDOBJ) $(SHL7OBJS) $(SHL7LINKRESO) $(shell $(TYPE) /dev/null $(SHL7LIBS) | $(SED) s?$(ROUT)?$(PRJ)/$(ROUT)?g)) +.IF "$(DEFLIB7NAME)"!="" # do not have to include objs + @noop $(assign DEF7OBJLIST:=$(shell $(TYPE) $(foreach,i,$(DEFLIB7NAME) $(SLB)/$(i).lib) | sed s?$(ROUT)?$(PRJ)/$(ROUT)?g)) + @noop $(foreach,i,$(DEF7OBJLIST) $(assign ALL7OBJLIST:=$(ALL7OBJLIST:s?$i??))) +.ENDIF # "$(DEFLIB7NAME)"!="" + $(COMMAND_ECHO)$(LINK) @$(mktmp $(strip \ + $(SHL7LINKFLAGS) \ + $(LINKFLAGSSHL) \ + $(SOLARLIB) \ + $(MINGWSSTDOBJ) \ + -o $@ \ + -Wl,-Map,$(MISC)/$(@:b).map \ + $(SHL7DEF) \ + $(USE_7IMPLIB) \ + $(STDOBJ) \ + $(SHL7VERSIONOBJ) $(SHL7OBJS) \ + $(subst,$(ROUT),$(PRJ)/$(ROUT) $(shell cat /dev/null $(SHL7LIBS))) \ + -Wl,--exclude-libs,ALL,--start-group $(SHL7STDLIBS) -Wl,--end-group \ + $(SHL7STDSHL) $(STDSHL7) \ + $(SHL7LINKRESO) \ + )) +.ENDIF +.ELSE +.IF "$(linkinc)"=="" +.IF "$(SHL7USE_EXPORTS)"!="name" +.IF "$(USE_DEFFILE)"!="" + $(COMMAND_ECHO)$(SHL7LINKER) @$(mktmp \ + $(SHL7LINKFLAGS) \ + $(LINKFLAGSSHL) \ + $(SHL7STACK) $(SHL7BASEX) \ + -out:$@ \ + -map:$(MISC)/$(@:b).map \ + -def:$(SHL7DEF) \ + $(USE_7IMPLIB) \ + $(STDOBJ) \ + $(SHL7VERSIONOBJ) $(SHL7OBJS) \ + $(SHL7LIBS) \ + $(SHL7STDLIBS) \ + $(SHL7STDSHL) $(STDSHL7) \ + $(SHL7LINKRES) \ + ) +# double check if target was really written... still making sense? + @@$(LS) $@ + @echo linking $@.manifest ... +.IF "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI) +.ELSE + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI) +.ENDIF # "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI) +.ELSE # "$(USE_DEFFILE)"!="" + $(COMMAND_ECHO)$(SHL7LINKER) @$(mktmp $(SHL7LINKFLAGS) \ + $(LINKFLAGSSHL) $(SHL7BASEX) \ + $(SHL7STACK) -out:$(SHL7TARGETN) \ + -map:$(MISC)/$(@:B).map \ + $(LB)/$(SHL7IMPLIB).exp \ + $(STDOBJ) \ + $(SHL7OBJS) $(SHL7VERSIONOBJ) \ + $(SHL7LIBS) \ + $(SHL7STDLIBS) \ + $(SHL7STDSHL) $(STDSHL7) \ + $(SHL7LINKRES) \ + ) +# double check if target was really written... still making sense? + @@$(LS) $@ + @echo linking $@.manifest ... +.IF "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI) +.ELSE + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI) +.ENDIF # "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI) +.ENDIF # "$(USE_DEFFILE)"!="" +.ELSE # "$(SHL7USE_EXPORTS)"!="name" + $(COMMAND_ECHO)$(SHL7LINKER) @$(mktmp $(SHL7LINKFLAGS) \ + $(LINKFLAGSSHL) $(SHL7BASEX) \ + $(SHL7STACK) -out:$(SHL7TARGETN) \ + -map:$(MISC)/$(@:B).map \ + $(USE_7IMPLIB) \ + $(STDOBJ) \ + $(SHL7OBJS) $(SHL7VERSIONOBJ)) \ + $(SHL7LINKLISTPARAM) \ + @$(mktmp $(SHL7STDLIBS) \ + $(SHL7STDSHL) $(STDSHL7) \ + $(SHL7LINKRES) \ + ) + @echo linking $@.manifest ... +.IF "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI) +.ELSE + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI) +.ENDIF # "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI) +.ENDIF # "$(SHL7USE_EXPORTS)"!="name" +.ELSE # "$(linkinc)"=="" + $(COMMAND_ECHO)-$(RM) del $(MISC)/$(SHL7TARGET).lnk + $(COMMAND_ECHO)-$(RM) $(MISC)/$(SHL7TARGET).lst + $(COMMAND_ECHO)$(TYPE) $(mktmp \ + $(SHL7LINKFLAGS) \ + $(LINKFLAGSSHL) $(SHL7BASEX) \ + $(SHL7STACK) $(MAPFILE) \ + -out:$@ \ + $(LB)/$(SHL7IMPLIB).exp \ + $(STDOBJ) \ + $(SHL7OBJS) \ + $(SHL7STDLIBS) \ + $(SHL7STDSHL) $(STDSHL7) \ + $(SHL7LINKRES) \ + ) >> $(MISC)/$(SHL7TARGET).lnk + $(COMMAND_ECHO)$(TYPE) $(MISC)/$(SHL7TARGETN:b)_linkinc.ls >> $(MISC)/$(SHL7TARGET).lnk + $(COMMAND_ECHO)$(SHL7LINKER) @$(MISC)/$(SHL7TARGET).lnk + @echo linking $@.manifest ... +.IF "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI) +.ELSE + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI) +.ENDIF # "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI) +.ENDIF # "$(linkinc)"=="" +.ENDIF # "$(COM)"=="GCC" +.ENDIF # "$(GUI)" == "WNT" +.IF "$(GUI)"=="UNX" +.IF "$(OS)"=="MACOSX" + @-$(RM) $(MISC)/$(@:b).list + @-$(RM) $(MISC)/$(TARGET).$(@:b)_7.cmd + @echo $(STDSLO) $(SHL7OBJS:s/.obj/.o/) \ + $(SHL7VERSIONOBJ) \ + `cat /dev/null $(SHL7LIBS) | sed s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g` | tr -s " " "\n" > $(MISC)/$(@:b).list + @/bin/echo -n $(SHL7LINKER) $(SHL7LINKFLAGS) $(SHL7VERSIONMAPPARA) $(LINKFLAGSSHL) -L$(PRJ)/$(ROUT)/lib $(SOLARLIB) -o $@ \ + $(SHL7STDLIBS) $(SHL7ARCHIVES) $(SHL7STDSHL) $(STDSHL7) -filelist $(MISC)/$(@:b).list $(LINKOUTPUT_FILTER) > $(MISC)/$(TARGET).$(@:b)_7.cmd + @$(PERL) $(SOLARENV)/bin/macosx-dylib-link-list.pl \ + `cat $(MISC)/$(TARGET).$(@:b)_7.cmd` \ + >> $(MISC)/$(TARGET).$(@:b)_7.cmd + .IF "$(VERBOSE)" == "TRUE" + @cat $(MISC)/$(TARGET).$(@:b)_7.cmd + .ENDIF + @+source $(MISC)/$(TARGET).$(@:b)_7.cmd + @$(PERL) $(SOLARENV)/bin/macosx-change-install-names.pl \ + shl $(SHL7RPATH) $@ +.IF "$(SHL7CREATEJNILIB)"!="" + @echo "Making: " $(@:f).jnilib + @macosx-create-bundle $@ +.ENDIF # "$(SHL7CREATEJNILIB)"!="" +.IF "$(UPDATER)"=="YES" +.IF "$(SHL7NOCHECK)"=="" + $(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS7) $(SHL7TARGETN) +.ENDIF # "$(SHL7NOCHECK)"!="" +.ENDIF +.ELIF "$(OS)"=="IOS" + $(COMMAND_ECHO)$(AR) $(LIB7FLAGS) $(LIBFLAGS) $@ $(subst,.obj,.o $(SHL7OBJS)) $(shell cat /dev/null $(LIB7TARGET) $(SHL7LIBS) | sed s\#'^'$(ROUT)\#$(PRJ)/$(ROUT)\#g) + $(COMMAND_ECHO)$(RANLIB) $@ +.ELSE # "$(OS)"=="MACOSX" + @-$(RM) $(MISC)/$(TARGET).$(@:b)_7.cmd + @echo $(SHL7LINKER) $(SHL7LINKFLAGS) $(SHL7SONAME) $(LINKFLAGSSHL) $(SHL7VERSIONMAPPARA) -L$(PRJ)/$(ROUT)/lib $(SOLARLIB) $(STDSLO) $(SHL7OBJS:s/.obj/.o/) \ + $(SHL7VERSIONOBJ) -o $@ \ + `cat /dev/null $(SHL7LIBS) | tr -s " " "\n" | $(SED) s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g` \ + $(SHL7STDLIBS) $(SHL7ARCHIVES) $(SHL7STDSHL) $(STDSHL7) $(LINKOUTPUT_FILTER) > $(MISC)/$(TARGET).$(@:b)_7.cmd + .IF "$(VERBOSE)" == "TRUE" + @cat $(MISC)/$(TARGET).$(@:b)_7.cmd + .ENDIF + @+source $(MISC)/$(TARGET).$(@:b)_7.cmd +.IF "$(UPDATER)"=="YES" +.IF "$(SHL7NOCHECK)"=="" + $(COMMAND_ECHO)-$(RM) $(SHL7TARGETN:d)check_$(SHL7TARGETN:f) + $(COMMAND_ECHO)$(RENAME) $(SHL7TARGETN) $(SHL7TARGETN:d)check_$(SHL7TARGETN:f) +.IF "$(VERBOSE)"=="TRUE" + $(COMMAND_ECHO)$(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS7) $(SHL7TARGETN:d)check_$(SHL7TARGETN:f) +.ELSE + $(COMMAND_ECHO)$(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS7) -- -s $(SHL7TARGETN:d)check_$(SHL7TARGETN:f) +.ENDIF +.ENDIF # "$(SHL7NOCHECK)"!="" +.ENDIF # "$(UPDATER)"=="YES" +.ENDIF # "$(OS)"=="MACOSX" +.IF "$(UNIXVERSIONNAMES)"!="" && "$(OS)"!="IOS" + $(COMMAND_ECHO)$(RM) $(LB)/$(SHL7TARGETN:b) + $(COMMAND_ECHO)cd $(LB) && ln -s $(SHL7TARGETN:f) $(SHL7TARGETN:b) +.ENDIF # "$(UNIXVERSIONNAMES)"!="" +.IF "$(VERBOSE)" == "TRUE" + @ls -l $@ +.ENDIF +.ENDIF # "$(GUI)" == "UNX" + +.ENDIF # "$(SHL7TARGETN)"!="" + +# unroll begin + +.IF "$(SHL8TARGETN)"!="" + +.IF "$(SHLLINKARCONLY)" != "" +SHL8STDLIBS= +STDSHL= +.ELSE +SHL8ARCHIVES= +.ENDIF + +# decide how to link +.IF "$(SHL8CODETYPE)"=="C" +SHL8LINKER=$(LINKC) +SHL8STDSHL=$(subst,CPPRUNTIME, $(STDSHL)) +SHL8LINKFLAGS+=$(LINKCFLAGS) +.ELSE # "$(SHL8CODETYPE)"=="C" +SHL8LINKER=$(LINK) +SHL8STDSHL=$(subst,CPPRUNTIME,$(STDLIBCPP) $(STDSHL)) +SHL8LINKFLAGS+=$(LINKFLAGS) +.ENDIF # "$(SHL8CODETYPE)"=="C" + +SHL8RPATH*=OOO +LINKFLAGSRUNPATH_$(SHL8RPATH)*=/ERROR:/Bad_SHL8RPATH_value +SHL8LINKFLAGS+=$(LINKFLAGSRUNPATH_$(SHL8RPATH)) + +.IF "$(SHL8USE_EXPORTS)"=="" +SHL8DEF*=$(MISC)/$(SHL8TARGET).def +.ENDIF # "$(SHL8USE_EXPORTS)"=="" + +EXTRALIBPATHS8=$(EXTRALIBPATHS) +.IF "$(UPDATER)"=="YES" +.IF "$(SHL8NOCHECK)"=="" +.IF "$(SOLAR_STLLIBPATH)"!="" +EXTRALIBPATHS8+=-L$(SOLAR_STLLIBPATH) +.ENDIF +.ENDIF # "$(SHL8NOCHECK)"!="" +.ENDIF +#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +#+++++++++++ version object ++++++++++++++++++++++++++++++++++++++++ +#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + +.IF "$(L10N_framework)"=="" +.IF "$(VERSIONOBJ)"!="" +SHL8VERSIONOBJ:=$(VERSIONOBJ:d){$(subst,$(DLLPOSTFIX),_dflt $(SHL8TARGET))}$(VERSIONOBJ:f) +USE_VERSIONH:=$(INCCOM)/$(SHL8VERSIONOBJ:b).h +.IF "$(GUI)" == "UNX" +SHL8VERSIONOBJDEP:=$(VERSIONOBJ:d){$(subst,$(DLLPOSTFIX),_dflt $(SHL8TARGET))}$(VERSIONOBJ:f:s/.o/.obj/) +.ELSE # "$(GUI)" == "UNX" +SHL8VERSIONOBJDEP:=$(VERSIONOBJ:d){$(subst,$(DLLPOSTFIX),_dflt $(SHL8TARGET))}$(VERSIONOBJ:f) +.ENDIF # "$(GUI)" == "UNX" +$(MISC)/$(SHL8VERSIONOBJ:b).c : $(SOLARENV)/src/version.c $(INCCOM)/$(SHL8VERSIONOBJ:b).h +# $(COPY) $(SOLARENV)/src/version.c $@ + $(COMMAND_ECHO)$(TYPE) $(SOLARENV)/src/version.c | $(SED) s/_version.h/$(SHL8VERSIONOBJ:b).h/ > $@ + +.INIT : $(SHL8VERSIONOBJDEP) +.ENDIF # "$(VERSIONOBJ)"!="" +.ENDIF + +.IF "$(GUI)" != "UNX" +.IF "$(GUI)" == "WNT" +.IF "$(SHL8IMPLIB)" == "" +SHL8IMPLIB=i$(TARGET)_t8 +.ENDIF # "$(SHL8IMPLIB)" == "" +.IF "$(COM)" != "GCC" +USE_8IMPLIB=-implib:$(LB)/$(SHL8IMPLIB).lib +SHL8IMPLIBN=$(LB)/$(SHL8IMPLIB).lib +.ELSE +USE_8IMPLIB=-Wl,--out-implib=$(SHL8IMPLIBN) +SHL8IMPLIBN=$(LB)/lib$(SHL8IMPLIB).dll.a +.ENDIF # "$(COM)" != "GCC" +ALLTAR : $(SHL8IMPLIBN) + +.IF "$(USE_DEFFILE)"=="" +.IF "$(COM)" != "GCC" +USE_8IMPLIB_DEPS=$(LB)/$(SHL8IMPLIB).lib +.ENDIF +.ENDIF # "$(USE_DEFFILE)"=="" +.ENDIF # "$(GUI)" == "WNT" +USE_SHL8DEF=$(SHL8DEF) +.ELSE # "$(GUI)" != "UNX" +USE_SHL8DEF= +SHL8DEPN+:=$(SHL8DEPNU) + +.IF "$(SHL8VERSIONMAP)"=="" +# to activate vmaps remove "#" +USE_SHL8VERSIONMAP=$(MISC)/$(SHL8TARGET).vmap +.ENDIF # "$(SHL8VERSIONMAP)"=="" + +.IF "$(USE_SHL8VERSIONMAP)"!="" + +.IF "$(SHL8FILTERFILE)"!="" +.IF "$(SHL8VERSIONMAP)"!="" +#eine von beiden ist zuviel +USE_SHL8VERSIONMAP=$(MISC)/$(SHL8TARGET).vmap +$(USE_SHL8VERSIONMAP) .PHONY: + @echo ----------------------------- + @echo you should only use versionmap OR exportfile + @echo ----------------------------- +# force_dmake_to_error + +.ENDIF # "$(SHL8VERSIONMAP)"!="" + +.IF "$(OS)" != "AIX" +SHL8VERSIONMAPPARA=$(LINKVERSIONMAPFLAG) $(USE_SHL8VERSIONMAP) +.ENDIF + +$(USE_SHL8VERSIONMAP): \ + $(SHL8OBJS)\ + $(SHL8LIBS)\ + $(SHL8FILTERFILE) + @$(RM) $@.dump +.IF "$(SHL8OBJS)"!="" +# dump remaining objects on the fly +.IF "$(OS)"=="MACOSX" + @-nm $(SHL8OBJS:s/.obj/.o/) > $@.dump +.ELSE + @nm $(SHL8OBJS:s/.obj/.o/) > $@.dump +.ENDIF +.ENDIF # "$(SHL8OBJS)!"="" + @$(TYPE) /dev/null $(SHL8LIBS:s/.lib/.dump/) >> $@.dump + $(COMMAND_ECHO) $(PERL) $(SOLARENV)/bin/mapgen.pl -d $@.dump -s $(SHL8INTERFACE) -f $(SHL8FILTERFILE) -m $@ + +.ELSE # "$(SHL8FILTERFILE)"!="" +USE_SHL8VERSIONMAP=$(MISC)/$(SHL8TARGET).vmap +$(USE_SHL8VERSIONMAP) : +.IF "$(VERBOSE)" == "TRUE" + @echo ----------------------------- + @echo SHL8FILTERFILE not set! + @echo ----------------------------- + @$(TOUCH) $@ + @echo dummy file to keep the dependencies for later use. +.ELSE + @$(TOUCH) $@ +.ENDIF +# force_dmake_to_error +.ENDIF # "$(SHL8FILTERFILE)"!="" +.ELSE # "$(USE_SHL8VERSIONMAP)"!="" + +#and now for the plain non-generic way... +.IF "$(SHL8VERSIONMAP)"!="" +USE_SHL8VERSIONMAP=$(MISC)/$(SHL8VERSIONMAP:b)_$(SHL8TARGET)$(SHL8VERSIONMAP:e) +.IF "$(OS)" != "AIX" +SHL8VERSIONMAPPARA=$(LINKVERSIONMAPFLAG) $(USE_SHL8VERSIONMAP) +.ENDIF + +.IF "$(OS)"=="MACOSX" +$(USE_SHL8VERSIONMAP): $(SHL8OBJS) $(SHL8LIBS) +.ENDIF + +# .ERRREMOVE is needed as a recipe line like "$(AWK) ... > $@" would create $@ +# even if the $(AWK) part fails: +$(USE_SHL8VERSIONMAP) .ERRREMOVE: $(SHL8VERSIONMAP) + @@-$(RM) -f $@ +# The following files will only be generated and needed on Mac OS X as temporary files +# in order to generate exported symbols list out of Linux/Solaris map files +.IF "$(OS)"=="MACOSX" + @-$(RM) -f $@.symregexp >& $(NULLDEV) + @-$(RM) -f $@.expsymlist >& $(NULLDEV) +.ENDIF +# Its questionable if the following condition '.IF "$(COMID)"=="gcc3"' makes sense and what +# happens if somebody will change it in the future +.IF "$(COMID)"=="gcc3" + $(COMMAND_ECHO) tr -d "\015" < $(SHL8VERSIONMAP) | $(AWK) -f $(SOLARENV)/bin/addsym.awk > $@ +.ELIF "$(COMNAME)"=="sunpro5" + $(COMMAND_ECHO) tr -d "\015" < $(SHL8VERSIONMAP) | $(GREP) -v $(IGNORE_SYMBOLS) > $@ +.ELSE # "$(COMID)"=="gcc3" + $(COMMAND_ECHO) tr -d "\015" < $(SHL8VERSIONMAP) > $@ +.ENDIF # "$(COMID)"=="gcc3" + @chmod a+w $@ +# Mac OS X post-processing generate an exported symbols list from the generated map file +# for details on exported symbols list see man ld on Mac OS X +.IF "$(OS)"=="MACOSX" + @-cat $@ | $(AWK) -f $(SOLARENV)/bin/unxmap-to-macosx-explist.awk | grep -v "\*\|?" > $@.exported-symbols + @-cat $@ | $(AWK) -f $(SOLARENV)/bin/unxmap-to-macosx-explist.awk | grep "\*\|?" > $@.symbols-regexp +# Shared libraries will be build out of the *.obj files specified in SHL?OBJS and SHL?LIBS +# Extract RTTI symbols from all the objects that will be used to build a shared library +.IF "$(SHL8OBJS)"!="" + -echo $(foreach,i,$(SHL8OBJS:s/.obj/.o/) $i) | xargs -n1 nm -gx | $(SOLARENV)/bin/addsym-macosx.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols +.ENDIF +.IF "$(SHL8LIBS)"!="" + $(COMMAND_ECHO)-$(TYPE) $(foreach,j,$(SHL8LIBS) $j) | $(SED) s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g | xargs -n1 nm -gx | $(SOLARENV)/bin/addsym-macosx.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols +.ENDIF +# overwrite the map file generate into the local output tree with the generated +# exported symbols list + cp $@.exported-symbols $@ +.ENDIF # .IF "$(OS)"=="MACOSX" +.ENDIF # "$(SHL8VERSIONMAP)"!="" +.ENDIF # "$(USE_SHL8VERSIONMAP)"!="" +.ENDIF # "$(GUI)" != "UNX" + +.IF "$(UNIXVERSIONNAMES)"!="" +.IF "$(OS)"!="MACOSX" && "$(OS)"!="IOS" && "$(OS)"!="AIX" +.IF "$(GUI)"=="UNX" +SHL8SONAME=\"$(SONAME_SWITCH)$(SHL8TARGETN:f)\" +.ENDIF # "$(GUI)"!="UNX" +.ENDIF # "$(OS)"!="MACOSX" +.ENDIF # "$(UNIXVERSIONNAMES)"!="" + +.IF "$(SHL8RES)"!="" +SHL8ALLRES+=$(SHL8RES) +SHL8LINKRES*=$(MISC)/$(SHL8TARGET).res +SHL8LINKRESO*=$(MISC)/$(SHL8TARGET)_res.o +.ENDIF # "$(SHL8RES)"!="" + +.IF "$(SHL8DEFAULTRES)$(use_shl_versions)"!="" +SHL8DEFAULTRES*=$(MISC)/$(SHL8TARGET)_def.res +SHL8ALLRES+=$(SHL8DEFAULTRES) +SHL8LINKRES*=$(MISC)/$(SHL8TARGET).res +SHL8LINKRESO*=$(MISC)/$(SHL8TARGET)_res.o +.ENDIF # "$(SHL8DEFAULTRES)$(use_shl_versions)"!="" + +#.IF "$(SHL8TARGETN)"!="" + +.IF "$(linkinc)"!="" +.IF "$(GUI)"=="WNT" +.IF "$(SHL8LIBS)"!="" +$(MISC)/$(SHL8TARGET)_linkinc.ls .PHONY: + @@-$(RM) $@ + $(COMMAND_ECHO)$(SED) -f $(SOLARENV)/bin/chrel.sed $(foreach,i,$(SHL8LIBS) $(i:s/.lib/.lin/)) >> $@ +.ENDIF # "$(SHL8LIBS)"!="" +.ENDIF + +LINKINCTARGETS+=$(MISC)/$(SHL8TARGETN:b)_linkinc.ls +$(SHL8TARGETN) : $(LINKINCTARGETS) + +.ELSE +.IF "$(SHL8USE_EXPORTS)"=="name" +.IF "$(GUI)"=="WNT" +.IF "$(COM)"!="GCC" +.IF "$(SHL8LIBS)"!="" +SHL8LINKLIST=$(MISC)/$(SHL8TARGET)_link.lst +SHL8LINKLISTPARAM=@$(SHL8LINKLIST) +$(SHL8LINKLIST) : $(SHL8LIBS) + @@-$(RM) $@ + $(COMMAND_ECHO)$(SED) -f $(SOLARENV)/bin/chrel.sed $(foreach,i,$(SHL8LIBS) $(i:s/.lib/.lin/)) >> $@ +.ENDIF # "$(SHL8LIBS)"!="" +.ENDIF # "$(COM)"!="GCC" +.ENDIF +.ENDIF # "$(SHL8USE_EXPORTS)"=="name" + +$(MISC)/%linkinc.ls: + @echo . > $@ +.ENDIF # "$(linkinc)"!="" + +.IF "$(COM)" == "GCC" && "$(SHL8IMPLIBN)" != "" +$(SHL8IMPLIBN) : $(SHL8TARGETN) +.ENDIF + +$(SHL8TARGETN) : \ + $(SHL8OBJS)\ + $(SHL8LIBS)\ + $(USE_8IMPLIB_DEPS)\ + $(USE_SHL8DEF)\ + $(USE_SHL8VERSIONMAP)\ + $(SHL8RES)\ + $(SHL8DEPN) \ + $(SHL8LINKLIST) + @echo "Making: " $(@:f) +.IF "$(GUI)" == "WNT" +.IF "$(SHL8DEFAULTRES)"!="" + @@-$(RM) $(MISC)/$(SHL8DEFAULTRES:b).rc +.IF "$(SHL8ICON)" != "" + @echo 1 ICON $(SHL8ICON) >> $(MISC)/$(SHL8DEFAULTRES:b).rc +.ENDIF +.IF "$(use_shl_versions)" != "" +.IF "$(SHL8ADD_VERINFO)"!="" + @echo $(EMQ)#include $(EMQ)"$(SHL8ADD_VERINFO)$(EMQ)" >> $(MISC)/$(SHL8DEFAULTRES:b).rc +.ELSE # "$(SHL8ADD_VERINFO)"!="" + @echo $(EMQ)#define ADDITIONAL_VERINFO1 >> $(MISC)/$(SHL8DEFAULTRES:b).rc + @echo $(EMQ)#define ADDITIONAL_VERINFO2 >> $(MISC)/$(SHL8DEFAULTRES:b).rc + @echo $(EMQ)#define ADDITIONAL_VERINFO3 >> $(MISC)/$(SHL8DEFAULTRES:b).rc +.ENDIF # "$(SHL8ADD_VERINFO)"!="" + @echo $(EMQ)#define VERVARIANT $(BUILD) >> $(MISC)/$(SHL8DEFAULTRES:b).rc + @echo $(EMQ)#define ORG_NAME $(SHL8TARGET)$(DLLPOST) >> $(MISC)/$(SHL8DEFAULTRES:b).rc + @echo $(EMQ)#define INTERNAL_NAME $(SHL8TARGET:b) >> $(MISC)/$(SHL8DEFAULTRES:b).rc + @echo $(EMQ)#include $(EMQ)"shlinfo.rc$(EMQ)" >> $(MISC)/$(SHL8DEFAULTRES:b).rc +.ENDIF # "$(use_shl_versions)" != "" +.IF "$(RCFLAGSOUTRES)"!="" +# rc, takes separate flag naming output file, source .rc file last + $(COMMAND_ECHO)$(RC) -DWIN32 $(INCLUDE) $(RCLINKFLAGS) $(RCFLAGSOUTRES)$(SHL8DEFAULTRES) $(MISC)/$(SHL8DEFAULTRES:b).rc +.ELSE +# windres, just takes output file last + $(COMMAND_ECHO)$(RC) -DWIN32 $(INCLUDE) $(RCLINKFLAGS) $(MISC)/$(SHL8DEFAULTRES:b).rc $(SHL8DEFAULTRES) +.ENDIF +.ENDIF # "$(SHL8DEFAULTRES)"!="" +.IF "$(SHL8ALLRES)"!="" + $(COMMAND_ECHO)$(TYPE) $(SHL8ALLRES) > $(SHL8LINKRES) +.IF "$(COM)"=="GCC" + $(WINDRES) $(SHL8LINKRES) $(SHL8LINKRESO) +.ENDIF # "$(COM)"=="GCC" +.ENDIF # "$(SHL8ALLRES)"!="" +.IF "$(COM)"=="GCC" +# GNU ld since 2.17 supports @cmdfile syntax +.IF "$(USE_DEFFILE)"!="" + $(COMMAND_ECHO)$(LINK) @$(mktmp $(strip \ + $(SHL8LINKFLAGS) \ + $(LINKFLAGSSHL) \ + $(SOLARLIB) \ + $(MINGWSSTDOBJ) \ + -o $@ \ + -Wl,-Map,$(MISC)/$(@:b).map \ + $(SHL8DEF) \ + $(USE_8IMPLIB) \ + $(STDOBJ) \ + $(SHL8VERSIONOBJ) $(SHL8OBJS) \ + $(subst,$(ROUT),$(PRJ)/$(ROUT) $(shell cat /dev/null $(SHL8LIBS))) \ + -Wl,--exclude-libs,ALL,--start-group $(SHL8STDLIBS) -Wl,--end-group \ + $(SHL8STDSHL) $(STDSHL8) \ + $(SHL8LINKRESO) \ + )) +.ELSE + @noop $(assign ALL8OBJLIST:=$(STDOBJ) $(SHL8OBJS) $(SHL8LINKRESO) $(shell $(TYPE) /dev/null $(SHL8LIBS) | $(SED) s?$(ROUT)?$(PRJ)/$(ROUT)?g)) +.IF "$(DEFLIB8NAME)"!="" # do not have to include objs + @noop $(assign DEF8OBJLIST:=$(shell $(TYPE) $(foreach,i,$(DEFLIB8NAME) $(SLB)/$(i).lib) | sed s?$(ROUT)?$(PRJ)/$(ROUT)?g)) + @noop $(foreach,i,$(DEF8OBJLIST) $(assign ALL8OBJLIST:=$(ALL8OBJLIST:s?$i??))) +.ENDIF # "$(DEFLIB8NAME)"!="" + $(COMMAND_ECHO)$(LINK) @$(mktmp $(strip \ + $(SHL8LINKFLAGS) \ + $(LINKFLAGSSHL) \ + $(SOLARLIB) \ + $(MINGWSSTDOBJ) \ + -o $@ \ + -Wl,-Map,$(MISC)/$(@:b).map \ + $(SHL8DEF) \ + $(USE_8IMPLIB) \ + $(STDOBJ) \ + $(SHL8VERSIONOBJ) $(SHL8OBJS) \ + $(subst,$(ROUT),$(PRJ)/$(ROUT) $(shell cat /dev/null $(SHL8LIBS))) \ + -Wl,--exclude-libs,ALL,--start-group $(SHL8STDLIBS) -Wl,--end-group \ + $(SHL8STDSHL) $(STDSHL8) \ + $(SHL8LINKRESO) \ + )) +.ENDIF +.ELSE +.IF "$(linkinc)"=="" +.IF "$(SHL8USE_EXPORTS)"!="name" +.IF "$(USE_DEFFILE)"!="" + $(COMMAND_ECHO)$(SHL8LINKER) @$(mktmp \ + $(SHL8LINKFLAGS) \ + $(LINKFLAGSSHL) \ + $(SHL8STACK) $(SHL8BASEX) \ + -out:$@ \ + -map:$(MISC)/$(@:b).map \ + -def:$(SHL8DEF) \ + $(USE_8IMPLIB) \ + $(STDOBJ) \ + $(SHL8VERSIONOBJ) $(SHL8OBJS) \ + $(SHL8LIBS) \ + $(SHL8STDLIBS) \ + $(SHL8STDSHL) $(STDSHL8) \ + $(SHL8LINKRES) \ + ) +# double check if target was really written... still making sense? + @@$(LS) $@ + @echo linking $@.manifest ... +.IF "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI) +.ELSE + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI) +.ENDIF # "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI) +.ELSE # "$(USE_DEFFILE)"!="" + $(COMMAND_ECHO)$(SHL8LINKER) @$(mktmp $(SHL8LINKFLAGS) \ + $(LINKFLAGSSHL) $(SHL8BASEX) \ + $(SHL8STACK) -out:$(SHL8TARGETN) \ + -map:$(MISC)/$(@:B).map \ + $(LB)/$(SHL8IMPLIB).exp \ + $(STDOBJ) \ + $(SHL8OBJS) $(SHL8VERSIONOBJ) \ + $(SHL8LIBS) \ + $(SHL8STDLIBS) \ + $(SHL8STDSHL) $(STDSHL8) \ + $(SHL8LINKRES) \ + ) +# double check if target was really written... still making sense? + @@$(LS) $@ + @echo linking $@.manifest ... +.IF "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI) +.ELSE + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI) +.ENDIF # "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI) +.ENDIF # "$(USE_DEFFILE)"!="" +.ELSE # "$(SHL8USE_EXPORTS)"!="name" + $(COMMAND_ECHO)$(SHL8LINKER) @$(mktmp $(SHL8LINKFLAGS) \ + $(LINKFLAGSSHL) $(SHL8BASEX) \ + $(SHL8STACK) -out:$(SHL8TARGETN) \ + -map:$(MISC)/$(@:B).map \ + $(USE_8IMPLIB) \ + $(STDOBJ) \ + $(SHL8OBJS) $(SHL8VERSIONOBJ)) \ + $(SHL8LINKLISTPARAM) \ + @$(mktmp $(SHL8STDLIBS) \ + $(SHL8STDSHL) $(STDSHL8) \ + $(SHL8LINKRES) \ + ) + @echo linking $@.manifest ... +.IF "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI) +.ELSE + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI) +.ENDIF # "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI) +.ENDIF # "$(SHL8USE_EXPORTS)"!="name" +.ELSE # "$(linkinc)"=="" + $(COMMAND_ECHO)-$(RM) del $(MISC)/$(SHL8TARGET).lnk + $(COMMAND_ECHO)-$(RM) $(MISC)/$(SHL8TARGET).lst + $(COMMAND_ECHO)$(TYPE) $(mktmp \ + $(SHL8LINKFLAGS) \ + $(LINKFLAGSSHL) $(SHL8BASEX) \ + $(SHL8STACK) $(MAPFILE) \ + -out:$@ \ + $(LB)/$(SHL8IMPLIB).exp \ + $(STDOBJ) \ + $(SHL8OBJS) \ + $(SHL8STDLIBS) \ + $(SHL8STDSHL) $(STDSHL8) \ + $(SHL8LINKRES) \ + ) >> $(MISC)/$(SHL8TARGET).lnk + $(COMMAND_ECHO)$(TYPE) $(MISC)/$(SHL8TARGETN:b)_linkinc.ls >> $(MISC)/$(SHL8TARGET).lnk + $(COMMAND_ECHO)$(SHL8LINKER) @$(MISC)/$(SHL8TARGET).lnk + @echo linking $@.manifest ... +.IF "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI) +.ELSE + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI) +.ENDIF # "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI) +.ENDIF # "$(linkinc)"=="" +.ENDIF # "$(COM)"=="GCC" +.ENDIF # "$(GUI)" == "WNT" +.IF "$(GUI)"=="UNX" +.IF "$(OS)"=="MACOSX" + @-$(RM) $(MISC)/$(@:b).list + @-$(RM) $(MISC)/$(TARGET).$(@:b)_8.cmd + @echo $(STDSLO) $(SHL8OBJS:s/.obj/.o/) \ + $(SHL8VERSIONOBJ) \ + `cat /dev/null $(SHL8LIBS) | sed s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g` | tr -s " " "\n" > $(MISC)/$(@:b).list + @/bin/echo -n $(SHL8LINKER) $(SHL8LINKFLAGS) $(SHL8VERSIONMAPPARA) $(LINKFLAGSSHL) -L$(PRJ)/$(ROUT)/lib $(SOLARLIB) -o $@ \ + $(SHL8STDLIBS) $(SHL8ARCHIVES) $(SHL8STDSHL) $(STDSHL8) -filelist $(MISC)/$(@:b).list $(LINKOUTPUT_FILTER) > $(MISC)/$(TARGET).$(@:b)_8.cmd + @$(PERL) $(SOLARENV)/bin/macosx-dylib-link-list.pl \ + `cat $(MISC)/$(TARGET).$(@:b)_8.cmd` \ + >> $(MISC)/$(TARGET).$(@:b)_8.cmd + .IF "$(VERBOSE)" == "TRUE" + @cat $(MISC)/$(TARGET).$(@:b)_8.cmd + .ENDIF + @+source $(MISC)/$(TARGET).$(@:b)_8.cmd + @$(PERL) $(SOLARENV)/bin/macosx-change-install-names.pl \ + shl $(SHL8RPATH) $@ +.IF "$(SHL8CREATEJNILIB)"!="" + @echo "Making: " $(@:f).jnilib + @macosx-create-bundle $@ +.ENDIF # "$(SHL8CREATEJNILIB)"!="" +.IF "$(UPDATER)"=="YES" +.IF "$(SHL8NOCHECK)"=="" + $(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS8) $(SHL8TARGETN) +.ENDIF # "$(SHL8NOCHECK)"!="" +.ENDIF +.ELIF "$(OS)"=="IOS" + $(COMMAND_ECHO)$(AR) $(LIB8FLAGS) $(LIBFLAGS) $@ $(subst,.obj,.o $(SHL8OBJS)) $(shell cat /dev/null $(LIB8TARGET) $(SHL8LIBS) | sed s\#'^'$(ROUT)\#$(PRJ)/$(ROUT)\#g) + $(COMMAND_ECHO)$(RANLIB) $@ +.ELSE # "$(OS)"=="MACOSX" + @-$(RM) $(MISC)/$(TARGET).$(@:b)_8.cmd + @echo $(SHL8LINKER) $(SHL8LINKFLAGS) $(SHL8SONAME) $(LINKFLAGSSHL) $(SHL8VERSIONMAPPARA) -L$(PRJ)/$(ROUT)/lib $(SOLARLIB) $(STDSLO) $(SHL8OBJS:s/.obj/.o/) \ + $(SHL8VERSIONOBJ) -o $@ \ + `cat /dev/null $(SHL8LIBS) | tr -s " " "\n" | $(SED) s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g` \ + $(SHL8STDLIBS) $(SHL8ARCHIVES) $(SHL8STDSHL) $(STDSHL8) $(LINKOUTPUT_FILTER) > $(MISC)/$(TARGET).$(@:b)_8.cmd + .IF "$(VERBOSE)" == "TRUE" + @cat $(MISC)/$(TARGET).$(@:b)_8.cmd + .ENDIF + @+source $(MISC)/$(TARGET).$(@:b)_8.cmd +.IF "$(UPDATER)"=="YES" +.IF "$(SHL8NOCHECK)"=="" + $(COMMAND_ECHO)-$(RM) $(SHL8TARGETN:d)check_$(SHL8TARGETN:f) + $(COMMAND_ECHO)$(RENAME) $(SHL8TARGETN) $(SHL8TARGETN:d)check_$(SHL8TARGETN:f) +.IF "$(VERBOSE)"=="TRUE" + $(COMMAND_ECHO)$(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS8) $(SHL8TARGETN:d)check_$(SHL8TARGETN:f) +.ELSE + $(COMMAND_ECHO)$(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS8) -- -s $(SHL8TARGETN:d)check_$(SHL8TARGETN:f) +.ENDIF +.ENDIF # "$(SHL8NOCHECK)"!="" +.ENDIF # "$(UPDATER)"=="YES" +.ENDIF # "$(OS)"=="MACOSX" +.IF "$(UNIXVERSIONNAMES)"!="" && "$(OS)"!="IOS" + $(COMMAND_ECHO)$(RM) $(LB)/$(SHL8TARGETN:b) + $(COMMAND_ECHO)cd $(LB) && ln -s $(SHL8TARGETN:f) $(SHL8TARGETN:b) +.ENDIF # "$(UNIXVERSIONNAMES)"!="" +.IF "$(VERBOSE)" == "TRUE" + @ls -l $@ +.ENDIF +.ENDIF # "$(GUI)" == "UNX" + +.ENDIF # "$(SHL8TARGETN)"!="" + +# unroll begin + +.IF "$(SHL9TARGETN)"!="" + +.IF "$(SHLLINKARCONLY)" != "" +SHL9STDLIBS= +STDSHL= +.ELSE +SHL9ARCHIVES= +.ENDIF + +# decide how to link +.IF "$(SHL9CODETYPE)"=="C" +SHL9LINKER=$(LINKC) +SHL9STDSHL=$(subst,CPPRUNTIME, $(STDSHL)) +SHL9LINKFLAGS+=$(LINKCFLAGS) +.ELSE # "$(SHL9CODETYPE)"=="C" +SHL9LINKER=$(LINK) +SHL9STDSHL=$(subst,CPPRUNTIME,$(STDLIBCPP) $(STDSHL)) +SHL9LINKFLAGS+=$(LINKFLAGS) +.ENDIF # "$(SHL9CODETYPE)"=="C" + +SHL9RPATH*=OOO +LINKFLAGSRUNPATH_$(SHL9RPATH)*=/ERROR:/Bad_SHL9RPATH_value +SHL9LINKFLAGS+=$(LINKFLAGSRUNPATH_$(SHL9RPATH)) + +.IF "$(SHL9USE_EXPORTS)"=="" +SHL9DEF*=$(MISC)/$(SHL9TARGET).def +.ENDIF # "$(SHL9USE_EXPORTS)"=="" + +EXTRALIBPATHS9=$(EXTRALIBPATHS) +.IF "$(UPDATER)"=="YES" +.IF "$(SHL9NOCHECK)"=="" +.IF "$(SOLAR_STLLIBPATH)"!="" +EXTRALIBPATHS9+=-L$(SOLAR_STLLIBPATH) +.ENDIF +.ENDIF # "$(SHL9NOCHECK)"!="" +.ENDIF +#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +#+++++++++++ version object ++++++++++++++++++++++++++++++++++++++++ +#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + +.IF "$(L10N_framework)"=="" +.IF "$(VERSIONOBJ)"!="" +SHL9VERSIONOBJ:=$(VERSIONOBJ:d){$(subst,$(DLLPOSTFIX),_dflt $(SHL9TARGET))}$(VERSIONOBJ:f) +USE_VERSIONH:=$(INCCOM)/$(SHL9VERSIONOBJ:b).h +.IF "$(GUI)" == "UNX" +SHL9VERSIONOBJDEP:=$(VERSIONOBJ:d){$(subst,$(DLLPOSTFIX),_dflt $(SHL9TARGET))}$(VERSIONOBJ:f:s/.o/.obj/) +.ELSE # "$(GUI)" == "UNX" +SHL9VERSIONOBJDEP:=$(VERSIONOBJ:d){$(subst,$(DLLPOSTFIX),_dflt $(SHL9TARGET))}$(VERSIONOBJ:f) +.ENDIF # "$(GUI)" == "UNX" +$(MISC)/$(SHL9VERSIONOBJ:b).c : $(SOLARENV)/src/version.c $(INCCOM)/$(SHL9VERSIONOBJ:b).h +# $(COPY) $(SOLARENV)/src/version.c $@ + $(COMMAND_ECHO)$(TYPE) $(SOLARENV)/src/version.c | $(SED) s/_version.h/$(SHL9VERSIONOBJ:b).h/ > $@ + +.INIT : $(SHL9VERSIONOBJDEP) +.ENDIF # "$(VERSIONOBJ)"!="" +.ENDIF + +.IF "$(GUI)" != "UNX" +.IF "$(GUI)" == "WNT" +.IF "$(SHL9IMPLIB)" == "" +SHL9IMPLIB=i$(TARGET)_t9 +.ENDIF # "$(SHL9IMPLIB)" == "" +.IF "$(COM)" != "GCC" +USE_9IMPLIB=-implib:$(LB)/$(SHL9IMPLIB).lib +SHL9IMPLIBN=$(LB)/$(SHL9IMPLIB).lib +.ELSE +USE_9IMPLIB=-Wl,--out-implib=$(SHL9IMPLIBN) +SHL9IMPLIBN=$(LB)/lib$(SHL9IMPLIB).dll.a +.ENDIF # "$(COM)" != "GCC" +ALLTAR : $(SHL9IMPLIBN) + +.IF "$(USE_DEFFILE)"=="" +.IF "$(COM)" != "GCC" +USE_9IMPLIB_DEPS=$(LB)/$(SHL9IMPLIB).lib +.ENDIF +.ENDIF # "$(USE_DEFFILE)"=="" +.ENDIF # "$(GUI)" == "WNT" +USE_SHL9DEF=$(SHL9DEF) +.ELSE # "$(GUI)" != "UNX" +USE_SHL9DEF= +SHL9DEPN+:=$(SHL9DEPNU) + +.IF "$(SHL9VERSIONMAP)"=="" +# to activate vmaps remove "#" +USE_SHL9VERSIONMAP=$(MISC)/$(SHL9TARGET).vmap +.ENDIF # "$(SHL9VERSIONMAP)"=="" + +.IF "$(USE_SHL9VERSIONMAP)"!="" + +.IF "$(SHL9FILTERFILE)"!="" +.IF "$(SHL9VERSIONMAP)"!="" +#eine von beiden ist zuviel +USE_SHL9VERSIONMAP=$(MISC)/$(SHL9TARGET).vmap +$(USE_SHL9VERSIONMAP) .PHONY: + @echo ----------------------------- + @echo you should only use versionmap OR exportfile + @echo ----------------------------- +# force_dmake_to_error + +.ENDIF # "$(SHL9VERSIONMAP)"!="" + +.IF "$(OS)" != "AIX" +SHL9VERSIONMAPPARA=$(LINKVERSIONMAPFLAG) $(USE_SHL9VERSIONMAP) +.ENDIF + +$(USE_SHL9VERSIONMAP): \ + $(SHL9OBJS)\ + $(SHL9LIBS)\ + $(SHL9FILTERFILE) + @$(RM) $@.dump +.IF "$(SHL9OBJS)"!="" +# dump remaining objects on the fly +.IF "$(OS)"=="MACOSX" + @-nm $(SHL9OBJS:s/.obj/.o/) > $@.dump +.ELSE + @nm $(SHL9OBJS:s/.obj/.o/) > $@.dump +.ENDIF +.ENDIF # "$(SHL9OBJS)!"="" + @$(TYPE) /dev/null $(SHL9LIBS:s/.lib/.dump/) >> $@.dump + $(COMMAND_ECHO) $(PERL) $(SOLARENV)/bin/mapgen.pl -d $@.dump -s $(SHL9INTERFACE) -f $(SHL9FILTERFILE) -m $@ + +.ELSE # "$(SHL9FILTERFILE)"!="" +USE_SHL9VERSIONMAP=$(MISC)/$(SHL9TARGET).vmap +$(USE_SHL9VERSIONMAP) : +.IF "$(VERBOSE)" == "TRUE" + @echo ----------------------------- + @echo SHL9FILTERFILE not set! + @echo ----------------------------- + @$(TOUCH) $@ + @echo dummy file to keep the dependencies for later use. +.ELSE + @$(TOUCH) $@ +.ENDIF +# force_dmake_to_error +.ENDIF # "$(SHL9FILTERFILE)"!="" +.ELSE # "$(USE_SHL9VERSIONMAP)"!="" + +#and now for the plain non-generic way... +.IF "$(SHL9VERSIONMAP)"!="" +USE_SHL9VERSIONMAP=$(MISC)/$(SHL9VERSIONMAP:b)_$(SHL9TARGET)$(SHL9VERSIONMAP:e) +.IF "$(OS)" != "AIX" +SHL9VERSIONMAPPARA=$(LINKVERSIONMAPFLAG) $(USE_SHL9VERSIONMAP) +.ENDIF + +.IF "$(OS)"=="MACOSX" +$(USE_SHL9VERSIONMAP): $(SHL9OBJS) $(SHL9LIBS) +.ENDIF + +# .ERRREMOVE is needed as a recipe line like "$(AWK) ... > $@" would create $@ +# even if the $(AWK) part fails: +$(USE_SHL9VERSIONMAP) .ERRREMOVE: $(SHL9VERSIONMAP) + @@-$(RM) -f $@ +# The following files will only be generated and needed on Mac OS X as temporary files +# in order to generate exported symbols list out of Linux/Solaris map files +.IF "$(OS)"=="MACOSX" + @-$(RM) -f $@.symregexp >& $(NULLDEV) + @-$(RM) -f $@.expsymlist >& $(NULLDEV) +.ENDIF +# Its questionable if the following condition '.IF "$(COMID)"=="gcc3"' makes sense and what +# happens if somebody will change it in the future +.IF "$(COMID)"=="gcc3" + $(COMMAND_ECHO) tr -d "\015" < $(SHL9VERSIONMAP) | $(AWK) -f $(SOLARENV)/bin/addsym.awk > $@ +.ELIF "$(COMNAME)"=="sunpro5" + $(COMMAND_ECHO) tr -d "\015" < $(SHL9VERSIONMAP) | $(GREP) -v $(IGNORE_SYMBOLS) > $@ +.ELSE # "$(COMID)"=="gcc3" + $(COMMAND_ECHO) tr -d "\015" < $(SHL9VERSIONMAP) > $@ +.ENDIF # "$(COMID)"=="gcc3" + @chmod a+w $@ +# Mac OS X post-processing generate an exported symbols list from the generated map file +# for details on exported symbols list see man ld on Mac OS X +.IF "$(OS)"=="MACOSX" + @-cat $@ | $(AWK) -f $(SOLARENV)/bin/unxmap-to-macosx-explist.awk | grep -v "\*\|?" > $@.exported-symbols + @-cat $@ | $(AWK) -f $(SOLARENV)/bin/unxmap-to-macosx-explist.awk | grep "\*\|?" > $@.symbols-regexp +# Shared libraries will be build out of the *.obj files specified in SHL?OBJS and SHL?LIBS +# Extract RTTI symbols from all the objects that will be used to build a shared library +.IF "$(SHL9OBJS)"!="" + -echo $(foreach,i,$(SHL9OBJS:s/.obj/.o/) $i) | xargs -n1 nm -gx | $(SOLARENV)/bin/addsym-macosx.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols +.ENDIF +.IF "$(SHL9LIBS)"!="" + $(COMMAND_ECHO)-$(TYPE) $(foreach,j,$(SHL9LIBS) $j) | $(SED) s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g | xargs -n1 nm -gx | $(SOLARENV)/bin/addsym-macosx.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols +.ENDIF +# overwrite the map file generate into the local output tree with the generated +# exported symbols list + cp $@.exported-symbols $@ +.ENDIF # .IF "$(OS)"=="MACOSX" +.ENDIF # "$(SHL9VERSIONMAP)"!="" +.ENDIF # "$(USE_SHL9VERSIONMAP)"!="" +.ENDIF # "$(GUI)" != "UNX" + +.IF "$(UNIXVERSIONNAMES)"!="" +.IF "$(OS)"!="MACOSX" && "$(OS)"!="IOS" && "$(OS)"!="AIX" +.IF "$(GUI)"=="UNX" +SHL9SONAME=\"$(SONAME_SWITCH)$(SHL9TARGETN:f)\" +.ENDIF # "$(GUI)"!="UNX" +.ENDIF # "$(OS)"!="MACOSX" +.ENDIF # "$(UNIXVERSIONNAMES)"!="" + +.IF "$(SHL9RES)"!="" +SHL9ALLRES+=$(SHL9RES) +SHL9LINKRES*=$(MISC)/$(SHL9TARGET).res +SHL9LINKRESO*=$(MISC)/$(SHL9TARGET)_res.o +.ENDIF # "$(SHL9RES)"!="" + +.IF "$(SHL9DEFAULTRES)$(use_shl_versions)"!="" +SHL9DEFAULTRES*=$(MISC)/$(SHL9TARGET)_def.res +SHL9ALLRES+=$(SHL9DEFAULTRES) +SHL9LINKRES*=$(MISC)/$(SHL9TARGET).res +SHL9LINKRESO*=$(MISC)/$(SHL9TARGET)_res.o +.ENDIF # "$(SHL9DEFAULTRES)$(use_shl_versions)"!="" + +#.IF "$(SHL9TARGETN)"!="" + +.IF "$(linkinc)"!="" +.IF "$(GUI)"=="WNT" +.IF "$(SHL9LIBS)"!="" +$(MISC)/$(SHL9TARGET)_linkinc.ls .PHONY: + @@-$(RM) $@ + $(COMMAND_ECHO)$(SED) -f $(SOLARENV)/bin/chrel.sed $(foreach,i,$(SHL9LIBS) $(i:s/.lib/.lin/)) >> $@ +.ENDIF # "$(SHL9LIBS)"!="" +.ENDIF + +LINKINCTARGETS+=$(MISC)/$(SHL9TARGETN:b)_linkinc.ls +$(SHL9TARGETN) : $(LINKINCTARGETS) + +.ELSE +.IF "$(SHL9USE_EXPORTS)"=="name" +.IF "$(GUI)"=="WNT" +.IF "$(COM)"!="GCC" +.IF "$(SHL9LIBS)"!="" +SHL9LINKLIST=$(MISC)/$(SHL9TARGET)_link.lst +SHL9LINKLISTPARAM=@$(SHL9LINKLIST) +$(SHL9LINKLIST) : $(SHL9LIBS) + @@-$(RM) $@ + $(COMMAND_ECHO)$(SED) -f $(SOLARENV)/bin/chrel.sed $(foreach,i,$(SHL9LIBS) $(i:s/.lib/.lin/)) >> $@ +.ENDIF # "$(SHL9LIBS)"!="" +.ENDIF # "$(COM)"!="GCC" +.ENDIF +.ENDIF # "$(SHL9USE_EXPORTS)"=="name" + +$(MISC)/%linkinc.ls: + @echo . > $@ +.ENDIF # "$(linkinc)"!="" + +.IF "$(COM)" == "GCC" && "$(SHL9IMPLIBN)" != "" +$(SHL9IMPLIBN) : $(SHL9TARGETN) +.ENDIF + +$(SHL9TARGETN) : \ + $(SHL9OBJS)\ + $(SHL9LIBS)\ + $(USE_9IMPLIB_DEPS)\ + $(USE_SHL9DEF)\ + $(USE_SHL9VERSIONMAP)\ + $(SHL9RES)\ + $(SHL9DEPN) \ + $(SHL9LINKLIST) + @echo "Making: " $(@:f) +.IF "$(GUI)" == "WNT" +.IF "$(SHL9DEFAULTRES)"!="" + @@-$(RM) $(MISC)/$(SHL9DEFAULTRES:b).rc +.IF "$(SHL9ICON)" != "" + @echo 1 ICON $(SHL9ICON) >> $(MISC)/$(SHL9DEFAULTRES:b).rc +.ENDIF +.IF "$(use_shl_versions)" != "" +.IF "$(SHL9ADD_VERINFO)"!="" + @echo $(EMQ)#include $(EMQ)"$(SHL9ADD_VERINFO)$(EMQ)" >> $(MISC)/$(SHL9DEFAULTRES:b).rc +.ELSE # "$(SHL9ADD_VERINFO)"!="" + @echo $(EMQ)#define ADDITIONAL_VERINFO1 >> $(MISC)/$(SHL9DEFAULTRES:b).rc + @echo $(EMQ)#define ADDITIONAL_VERINFO2 >> $(MISC)/$(SHL9DEFAULTRES:b).rc + @echo $(EMQ)#define ADDITIONAL_VERINFO3 >> $(MISC)/$(SHL9DEFAULTRES:b).rc +.ENDIF # "$(SHL9ADD_VERINFO)"!="" + @echo $(EMQ)#define VERVARIANT $(BUILD) >> $(MISC)/$(SHL9DEFAULTRES:b).rc + @echo $(EMQ)#define ORG_NAME $(SHL9TARGET)$(DLLPOST) >> $(MISC)/$(SHL9DEFAULTRES:b).rc + @echo $(EMQ)#define INTERNAL_NAME $(SHL9TARGET:b) >> $(MISC)/$(SHL9DEFAULTRES:b).rc + @echo $(EMQ)#include $(EMQ)"shlinfo.rc$(EMQ)" >> $(MISC)/$(SHL9DEFAULTRES:b).rc +.ENDIF # "$(use_shl_versions)" != "" +.IF "$(RCFLAGSOUTRES)"!="" +# rc, takes separate flag naming output file, source .rc file last + $(COMMAND_ECHO)$(RC) -DWIN32 $(INCLUDE) $(RCLINKFLAGS) $(RCFLAGSOUTRES)$(SHL9DEFAULTRES) $(MISC)/$(SHL9DEFAULTRES:b).rc +.ELSE +# windres, just takes output file last + $(COMMAND_ECHO)$(RC) -DWIN32 $(INCLUDE) $(RCLINKFLAGS) $(MISC)/$(SHL9DEFAULTRES:b).rc $(SHL9DEFAULTRES) +.ENDIF +.ENDIF # "$(SHL9DEFAULTRES)"!="" +.IF "$(SHL9ALLRES)"!="" + $(COMMAND_ECHO)$(TYPE) $(SHL9ALLRES) > $(SHL9LINKRES) +.IF "$(COM)"=="GCC" + $(WINDRES) $(SHL9LINKRES) $(SHL9LINKRESO) +.ENDIF # "$(COM)"=="GCC" +.ENDIF # "$(SHL9ALLRES)"!="" +.IF "$(COM)"=="GCC" +# GNU ld since 2.17 supports @cmdfile syntax +.IF "$(USE_DEFFILE)"!="" + $(COMMAND_ECHO)$(LINK) @$(mktmp $(strip \ + $(SHL9LINKFLAGS) \ + $(LINKFLAGSSHL) \ + $(SOLARLIB) \ + $(MINGWSSTDOBJ) \ + -o $@ \ + -Wl,-Map,$(MISC)/$(@:b).map \ + $(SHL9DEF) \ + $(USE_9IMPLIB) \ + $(STDOBJ) \ + $(SHL9VERSIONOBJ) $(SHL9OBJS) \ + $(subst,$(ROUT),$(PRJ)/$(ROUT) $(shell cat /dev/null $(SHL9LIBS))) \ + -Wl,--exclude-libs,ALL,--start-group $(SHL9STDLIBS) -Wl,--end-group \ + $(SHL9STDSHL) $(STDSHL9) \ + $(SHL9LINKRESO) \ + )) +.ELSE + @noop $(assign ALL9OBJLIST:=$(STDOBJ) $(SHL9OBJS) $(SHL9LINKRESO) $(shell $(TYPE) /dev/null $(SHL9LIBS) | $(SED) s?$(ROUT)?$(PRJ)/$(ROUT)?g)) +.IF "$(DEFLIB9NAME)"!="" # do not have to include objs + @noop $(assign DEF9OBJLIST:=$(shell $(TYPE) $(foreach,i,$(DEFLIB9NAME) $(SLB)/$(i).lib) | sed s?$(ROUT)?$(PRJ)/$(ROUT)?g)) + @noop $(foreach,i,$(DEF9OBJLIST) $(assign ALL9OBJLIST:=$(ALL9OBJLIST:s?$i??))) +.ENDIF # "$(DEFLIB9NAME)"!="" + $(COMMAND_ECHO)$(LINK) @$(mktmp $(strip \ + $(SHL9LINKFLAGS) \ + $(LINKFLAGSSHL) \ + $(SOLARLIB) \ + $(MINGWSSTDOBJ) \ + -o $@ \ + -Wl,-Map,$(MISC)/$(@:b).map \ + $(SHL9DEF) \ + $(USE_9IMPLIB) \ + $(STDOBJ) \ + $(SHL9VERSIONOBJ) $(SHL9OBJS) \ + $(subst,$(ROUT),$(PRJ)/$(ROUT) $(shell cat /dev/null $(SHL9LIBS))) \ + -Wl,--exclude-libs,ALL,--start-group $(SHL9STDLIBS) -Wl,--end-group \ + $(SHL9STDSHL) $(STDSHL9) \ + $(SHL9LINKRESO) \ + )) +.ENDIF +.ELSE +.IF "$(linkinc)"=="" +.IF "$(SHL9USE_EXPORTS)"!="name" +.IF "$(USE_DEFFILE)"!="" + $(COMMAND_ECHO)$(SHL9LINKER) @$(mktmp \ + $(SHL9LINKFLAGS) \ + $(LINKFLAGSSHL) \ + $(SHL9STACK) $(SHL9BASEX) \ + -out:$@ \ + -map:$(MISC)/$(@:b).map \ + -def:$(SHL9DEF) \ + $(USE_9IMPLIB) \ + $(STDOBJ) \ + $(SHL9VERSIONOBJ) $(SHL9OBJS) \ + $(SHL9LIBS) \ + $(SHL9STDLIBS) \ + $(SHL9STDSHL) $(STDSHL9) \ + $(SHL9LINKRES) \ + ) +# double check if target was really written... still making sense? + @@$(LS) $@ + @echo linking $@.manifest ... +.IF "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI) +.ELSE + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI) +.ENDIF # "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI) +.ELSE # "$(USE_DEFFILE)"!="" + $(COMMAND_ECHO)$(SHL9LINKER) @$(mktmp $(SHL9LINKFLAGS) \ + $(LINKFLAGSSHL) $(SHL9BASEX) \ + $(SHL9STACK) -out:$(SHL9TARGETN) \ + -map:$(MISC)/$(@:B).map \ + $(LB)/$(SHL9IMPLIB).exp \ + $(STDOBJ) \ + $(SHL9OBJS) $(SHL9VERSIONOBJ) \ + $(SHL9LIBS) \ + $(SHL9STDLIBS) \ + $(SHL9STDSHL) $(STDSHL9) \ + $(SHL9LINKRES) \ + ) +# double check if target was really written... still making sense? + @@$(LS) $@ + @echo linking $@.manifest ... +.IF "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI) +.ELSE + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI) +.ENDIF # "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI) +.ENDIF # "$(USE_DEFFILE)"!="" +.ELSE # "$(SHL9USE_EXPORTS)"!="name" + $(COMMAND_ECHO)$(SHL9LINKER) @$(mktmp $(SHL9LINKFLAGS) \ + $(LINKFLAGSSHL) $(SHL9BASEX) \ + $(SHL9STACK) -out:$(SHL9TARGETN) \ + -map:$(MISC)/$(@:B).map \ + $(USE_9IMPLIB) \ + $(STDOBJ) \ + $(SHL9OBJS) $(SHL9VERSIONOBJ)) \ + $(SHL9LINKLISTPARAM) \ + @$(mktmp $(SHL9STDLIBS) \ + $(SHL9STDSHL) $(STDSHL9) \ + $(SHL9LINKRES) \ + ) + @echo linking $@.manifest ... +.IF "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI) +.ELSE + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI) +.ENDIF # "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI) +.ENDIF # "$(SHL9USE_EXPORTS)"!="name" +.ELSE # "$(linkinc)"=="" + $(COMMAND_ECHO)-$(RM) del $(MISC)/$(SHL9TARGET).lnk + $(COMMAND_ECHO)-$(RM) $(MISC)/$(SHL9TARGET).lst + $(COMMAND_ECHO)$(TYPE) $(mktmp \ + $(SHL9LINKFLAGS) \ + $(LINKFLAGSSHL) $(SHL9BASEX) \ + $(SHL9STACK) $(MAPFILE) \ + -out:$@ \ + $(LB)/$(SHL9IMPLIB).exp \ + $(STDOBJ) \ + $(SHL9OBJS) \ + $(SHL9STDLIBS) \ + $(SHL9STDSHL) $(STDSHL9) \ + $(SHL9LINKRES) \ + ) >> $(MISC)/$(SHL9TARGET).lnk + $(COMMAND_ECHO)$(TYPE) $(MISC)/$(SHL9TARGETN:b)_linkinc.ls >> $(MISC)/$(SHL9TARGET).lnk + $(COMMAND_ECHO)$(SHL9LINKER) @$(MISC)/$(SHL9TARGET).lnk + @echo linking $@.manifest ... +.IF "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI) +.ELSE + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI) +.ENDIF # "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI) +.ENDIF # "$(linkinc)"=="" +.ENDIF # "$(COM)"=="GCC" +.ENDIF # "$(GUI)" == "WNT" +.IF "$(GUI)"=="UNX" +.IF "$(OS)"=="MACOSX" + @-$(RM) $(MISC)/$(@:b).list + @-$(RM) $(MISC)/$(TARGET).$(@:b)_9.cmd + @echo $(STDSLO) $(SHL9OBJS:s/.obj/.o/) \ + $(SHL9VERSIONOBJ) \ + `cat /dev/null $(SHL9LIBS) | sed s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g` | tr -s " " "\n" > $(MISC)/$(@:b).list + @/bin/echo -n $(SHL9LINKER) $(SHL9LINKFLAGS) $(SHL9VERSIONMAPPARA) $(LINKFLAGSSHL) -L$(PRJ)/$(ROUT)/lib $(SOLARLIB) -o $@ \ + $(SHL9STDLIBS) $(SHL9ARCHIVES) $(SHL9STDSHL) $(STDSHL9) -filelist $(MISC)/$(@:b).list $(LINKOUTPUT_FILTER) > $(MISC)/$(TARGET).$(@:b)_9.cmd + @$(PERL) $(SOLARENV)/bin/macosx-dylib-link-list.pl \ + `cat $(MISC)/$(TARGET).$(@:b)_9.cmd` \ + >> $(MISC)/$(TARGET).$(@:b)_9.cmd + .IF "$(VERBOSE)" == "TRUE" + @cat $(MISC)/$(TARGET).$(@:b)_9.cmd + .ENDIF + @+source $(MISC)/$(TARGET).$(@:b)_9.cmd + @$(PERL) $(SOLARENV)/bin/macosx-change-install-names.pl \ + shl $(SHL9RPATH) $@ +.IF "$(SHL9CREATEJNILIB)"!="" + @echo "Making: " $(@:f).jnilib + @macosx-create-bundle $@ +.ENDIF # "$(SHL9CREATEJNILIB)"!="" +.IF "$(UPDATER)"=="YES" +.IF "$(SHL9NOCHECK)"=="" + $(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS9) $(SHL9TARGETN) +.ENDIF # "$(SHL9NOCHECK)"!="" +.ENDIF +.ELIF "$(OS)"=="IOS" + $(COMMAND_ECHO)$(AR) $(LIB9FLAGS) $(LIBFLAGS) $@ $(subst,.obj,.o $(SHL9OBJS)) $(shell cat /dev/null $(LIB9TARGET) $(SHL9LIBS) | sed s\#'^'$(ROUT)\#$(PRJ)/$(ROUT)\#g) + $(COMMAND_ECHO)$(RANLIB) $@ +.ELSE # "$(OS)"=="MACOSX" + @-$(RM) $(MISC)/$(TARGET).$(@:b)_9.cmd + @echo $(SHL9LINKER) $(SHL9LINKFLAGS) $(SHL9SONAME) $(LINKFLAGSSHL) $(SHL9VERSIONMAPPARA) -L$(PRJ)/$(ROUT)/lib $(SOLARLIB) $(STDSLO) $(SHL9OBJS:s/.obj/.o/) \ + $(SHL9VERSIONOBJ) -o $@ \ + `cat /dev/null $(SHL9LIBS) | tr -s " " "\n" | $(SED) s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g` \ + $(SHL9STDLIBS) $(SHL9ARCHIVES) $(SHL9STDSHL) $(STDSHL9) $(LINKOUTPUT_FILTER) > $(MISC)/$(TARGET).$(@:b)_9.cmd + .IF "$(VERBOSE)" == "TRUE" + @cat $(MISC)/$(TARGET).$(@:b)_9.cmd + .ENDIF + @+source $(MISC)/$(TARGET).$(@:b)_9.cmd +.IF "$(UPDATER)"=="YES" +.IF "$(SHL9NOCHECK)"=="" + $(COMMAND_ECHO)-$(RM) $(SHL9TARGETN:d)check_$(SHL9TARGETN:f) + $(COMMAND_ECHO)$(RENAME) $(SHL9TARGETN) $(SHL9TARGETN:d)check_$(SHL9TARGETN:f) +.IF "$(VERBOSE)"=="TRUE" + $(COMMAND_ECHO)$(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS9) $(SHL9TARGETN:d)check_$(SHL9TARGETN:f) +.ELSE + $(COMMAND_ECHO)$(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS9) -- -s $(SHL9TARGETN:d)check_$(SHL9TARGETN:f) +.ENDIF +.ENDIF # "$(SHL9NOCHECK)"!="" +.ENDIF # "$(UPDATER)"=="YES" +.ENDIF # "$(OS)"=="MACOSX" +.IF "$(UNIXVERSIONNAMES)"!="" && "$(OS)"!="IOS" + $(COMMAND_ECHO)$(RM) $(LB)/$(SHL9TARGETN:b) + $(COMMAND_ECHO)cd $(LB) && ln -s $(SHL9TARGETN:f) $(SHL9TARGETN:b) +.ENDIF # "$(UNIXVERSIONNAMES)"!="" +.IF "$(VERBOSE)" == "TRUE" + @ls -l $@ +.ENDIF +.ENDIF # "$(GUI)" == "UNX" + +.ENDIF # "$(SHL9TARGETN)"!="" + +# unroll begin + +.IF "$(SHL10TARGETN)"!="" + +.IF "$(SHLLINKARCONLY)" != "" +SHL10STDLIBS= +STDSHL= +.ELSE +SHL10ARCHIVES= +.ENDIF + +# decide how to link +.IF "$(SHL10CODETYPE)"=="C" +SHL10LINKER=$(LINKC) +SHL10STDSHL=$(subst,CPPRUNTIME, $(STDSHL)) +SHL10LINKFLAGS+=$(LINKCFLAGS) +.ELSE # "$(SHL10CODETYPE)"=="C" +SHL10LINKER=$(LINK) +SHL10STDSHL=$(subst,CPPRUNTIME,$(STDLIBCPP) $(STDSHL)) +SHL10LINKFLAGS+=$(LINKFLAGS) +.ENDIF # "$(SHL10CODETYPE)"=="C" + +SHL10RPATH*=OOO +LINKFLAGSRUNPATH_$(SHL10RPATH)*=/ERROR:/Bad_SHL10RPATH_value +SHL10LINKFLAGS+=$(LINKFLAGSRUNPATH_$(SHL10RPATH)) + +.IF "$(SHL10USE_EXPORTS)"=="" +SHL10DEF*=$(MISC)/$(SHL10TARGET).def +.ENDIF # "$(SHL10USE_EXPORTS)"=="" + +EXTRALIBPATHS10=$(EXTRALIBPATHS) +.IF "$(UPDATER)"=="YES" +.IF "$(SHL10NOCHECK)"=="" +.IF "$(SOLAR_STLLIBPATH)"!="" +EXTRALIBPATHS10+=-L$(SOLAR_STLLIBPATH) +.ENDIF +.ENDIF # "$(SHL10NOCHECK)"!="" +.ENDIF +#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +#+++++++++++ version object ++++++++++++++++++++++++++++++++++++++++ +#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + +.IF "$(L10N_framework)"=="" +.IF "$(VERSIONOBJ)"!="" +SHL10VERSIONOBJ:=$(VERSIONOBJ:d){$(subst,$(DLLPOSTFIX),_dflt $(SHL10TARGET))}$(VERSIONOBJ:f) +USE_VERSIONH:=$(INCCOM)/$(SHL10VERSIONOBJ:b).h +.IF "$(GUI)" == "UNX" +SHL10VERSIONOBJDEP:=$(VERSIONOBJ:d){$(subst,$(DLLPOSTFIX),_dflt $(SHL10TARGET))}$(VERSIONOBJ:f:s/.o/.obj/) +.ELSE # "$(GUI)" == "UNX" +SHL10VERSIONOBJDEP:=$(VERSIONOBJ:d){$(subst,$(DLLPOSTFIX),_dflt $(SHL10TARGET))}$(VERSIONOBJ:f) +.ENDIF # "$(GUI)" == "UNX" +$(MISC)/$(SHL10VERSIONOBJ:b).c : $(SOLARENV)/src/version.c $(INCCOM)/$(SHL10VERSIONOBJ:b).h +# $(COPY) $(SOLARENV)/src/version.c $@ + $(COMMAND_ECHO)$(TYPE) $(SOLARENV)/src/version.c | $(SED) s/_version.h/$(SHL10VERSIONOBJ:b).h/ > $@ + +.INIT : $(SHL10VERSIONOBJDEP) +.ENDIF # "$(VERSIONOBJ)"!="" +.ENDIF + +.IF "$(GUI)" != "UNX" +.IF "$(GUI)" == "WNT" +.IF "$(SHL10IMPLIB)" == "" +SHL10IMPLIB=i$(TARGET)_t10 +.ENDIF # "$(SHL10IMPLIB)" == "" +.IF "$(COM)" != "GCC" +USE_10IMPLIB=-implib:$(LB)/$(SHL10IMPLIB).lib +SHL10IMPLIBN=$(LB)/$(SHL10IMPLIB).lib +.ELSE +USE_10IMPLIB=-Wl,--out-implib=$(SHL10IMPLIBN) +SHL10IMPLIBN=$(LB)/lib$(SHL10IMPLIB).dll.a +.ENDIF # "$(COM)" != "GCC" +ALLTAR : $(SHL10IMPLIBN) + +.IF "$(USE_DEFFILE)"=="" +.IF "$(COM)" != "GCC" +USE_10IMPLIB_DEPS=$(LB)/$(SHL10IMPLIB).lib +.ENDIF +.ENDIF # "$(USE_DEFFILE)"=="" +.ENDIF # "$(GUI)" == "WNT" +USE_SHL10DEF=$(SHL10DEF) +.ELSE # "$(GUI)" != "UNX" +USE_SHL10DEF= +SHL10DEPN+:=$(SHL10DEPNU) + +.IF "$(SHL10VERSIONMAP)"=="" +# to activate vmaps remove "#" +USE_SHL10VERSIONMAP=$(MISC)/$(SHL10TARGET).vmap +.ENDIF # "$(SHL10VERSIONMAP)"=="" + +.IF "$(USE_SHL10VERSIONMAP)"!="" + +.IF "$(SHL10FILTERFILE)"!="" +.IF "$(SHL10VERSIONMAP)"!="" +#eine von beiden ist zuviel +USE_SHL10VERSIONMAP=$(MISC)/$(SHL10TARGET).vmap +$(USE_SHL10VERSIONMAP) .PHONY: + @echo ----------------------------- + @echo you should only use versionmap OR exportfile + @echo ----------------------------- +# force_dmake_to_error + +.ENDIF # "$(SHL10VERSIONMAP)"!="" + +.IF "$(OS)" != "AIX" +SHL10VERSIONMAPPARA=$(LINKVERSIONMAPFLAG) $(USE_SHL10VERSIONMAP) +.ENDIF + +$(USE_SHL10VERSIONMAP): \ + $(SHL10OBJS)\ + $(SHL10LIBS)\ + $(SHL10FILTERFILE) + @$(RM) $@.dump +.IF "$(SHL10OBJS)"!="" +# dump remaining objects on the fly +.IF "$(OS)"=="MACOSX" + @-nm $(SHL10OBJS:s/.obj/.o/) > $@.dump +.ELSE + @nm $(SHL10OBJS:s/.obj/.o/) > $@.dump +.ENDIF +.ENDIF # "$(SHL10OBJS)!"="" + @$(TYPE) /dev/null $(SHL10LIBS:s/.lib/.dump/) >> $@.dump + $(COMMAND_ECHO) $(PERL) $(SOLARENV)/bin/mapgen.pl -d $@.dump -s $(SHL10INTERFACE) -f $(SHL10FILTERFILE) -m $@ + +.ELSE # "$(SHL10FILTERFILE)"!="" +USE_SHL10VERSIONMAP=$(MISC)/$(SHL10TARGET).vmap +$(USE_SHL10VERSIONMAP) : +.IF "$(VERBOSE)" == "TRUE" + @echo ----------------------------- + @echo SHL10FILTERFILE not set! + @echo ----------------------------- + @$(TOUCH) $@ + @echo dummy file to keep the dependencies for later use. +.ELSE + @$(TOUCH) $@ +.ENDIF +# force_dmake_to_error +.ENDIF # "$(SHL10FILTERFILE)"!="" +.ELSE # "$(USE_SHL10VERSIONMAP)"!="" + +#and now for the plain non-generic way... +.IF "$(SHL10VERSIONMAP)"!="" +USE_SHL10VERSIONMAP=$(MISC)/$(SHL10VERSIONMAP:b)_$(SHL10TARGET)$(SHL10VERSIONMAP:e) +.IF "$(OS)" != "AIX" +SHL10VERSIONMAPPARA=$(LINKVERSIONMAPFLAG) $(USE_SHL10VERSIONMAP) +.ENDIF + +.IF "$(OS)"=="MACOSX" +$(USE_SHL10VERSIONMAP): $(SHL10OBJS) $(SHL10LIBS) +.ENDIF + +# .ERRREMOVE is needed as a recipe line like "$(AWK) ... > $@" would create $@ +# even if the $(AWK) part fails: +$(USE_SHL10VERSIONMAP) .ERRREMOVE: $(SHL10VERSIONMAP) + @@-$(RM) -f $@ +# The following files will only be generated and needed on Mac OS X as temporary files +# in order to generate exported symbols list out of Linux/Solaris map files +.IF "$(OS)"=="MACOSX" + @-$(RM) -f $@.symregexp >& $(NULLDEV) + @-$(RM) -f $@.expsymlist >& $(NULLDEV) +.ENDIF +# Its questionable if the following condition '.IF "$(COMID)"=="gcc3"' makes sense and what +# happens if somebody will change it in the future +.IF "$(COMID)"=="gcc3" + $(COMMAND_ECHO) tr -d "\015" < $(SHL10VERSIONMAP) | $(AWK) -f $(SOLARENV)/bin/addsym.awk > $@ +.ELIF "$(COMNAME)"=="sunpro5" + $(COMMAND_ECHO) tr -d "\015" < $(SHL10VERSIONMAP) | $(GREP) -v $(IGNORE_SYMBOLS) > $@ +.ELSE # "$(COMID)"=="gcc3" + $(COMMAND_ECHO) tr -d "\015" < $(SHL10VERSIONMAP) > $@ +.ENDIF # "$(COMID)"=="gcc3" + @chmod a+w $@ +# Mac OS X post-processing generate an exported symbols list from the generated map file +# for details on exported symbols list see man ld on Mac OS X +.IF "$(OS)"=="MACOSX" + @-cat $@ | $(AWK) -f $(SOLARENV)/bin/unxmap-to-macosx-explist.awk | grep -v "\*\|?" > $@.exported-symbols + @-cat $@ | $(AWK) -f $(SOLARENV)/bin/unxmap-to-macosx-explist.awk | grep "\*\|?" > $@.symbols-regexp +# Shared libraries will be build out of the *.obj files specified in SHL?OBJS and SHL?LIBS +# Extract RTTI symbols from all the objects that will be used to build a shared library +.IF "$(SHL10OBJS)"!="" + -echo $(foreach,i,$(SHL10OBJS:s/.obj/.o/) $i) | xargs -n1 nm -gx | $(SOLARENV)/bin/addsym-macosx.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols +.ENDIF +.IF "$(SHL10LIBS)"!="" + $(COMMAND_ECHO)-$(TYPE) $(foreach,j,$(SHL10LIBS) $j) | $(SED) s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g | xargs -n1 nm -gx | $(SOLARENV)/bin/addsym-macosx.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols +.ENDIF +# overwrite the map file generate into the local output tree with the generated +# exported symbols list + cp $@.exported-symbols $@ +.ENDIF # .IF "$(OS)"=="MACOSX" +.ENDIF # "$(SHL10VERSIONMAP)"!="" +.ENDIF # "$(USE_SHL10VERSIONMAP)"!="" +.ENDIF # "$(GUI)" != "UNX" + +.IF "$(UNIXVERSIONNAMES)"!="" +.IF "$(OS)"!="MACOSX" && "$(OS)"!="IOS" && "$(OS)"!="AIX" +.IF "$(GUI)"=="UNX" +SHL10SONAME=\"$(SONAME_SWITCH)$(SHL10TARGETN:f)\" +.ENDIF # "$(GUI)"!="UNX" +.ENDIF # "$(OS)"!="MACOSX" +.ENDIF # "$(UNIXVERSIONNAMES)"!="" + +.IF "$(SHL10RES)"!="" +SHL10ALLRES+=$(SHL10RES) +SHL10LINKRES*=$(MISC)/$(SHL10TARGET).res +SHL10LINKRESO*=$(MISC)/$(SHL10TARGET)_res.o +.ENDIF # "$(SHL10RES)"!="" + +.IF "$(SHL10DEFAULTRES)$(use_shl_versions)"!="" +SHL10DEFAULTRES*=$(MISC)/$(SHL10TARGET)_def.res +SHL10ALLRES+=$(SHL10DEFAULTRES) +SHL10LINKRES*=$(MISC)/$(SHL10TARGET).res +SHL10LINKRESO*=$(MISC)/$(SHL10TARGET)_res.o +.ENDIF # "$(SHL10DEFAULTRES)$(use_shl_versions)"!="" + +#.IF "$(SHL10TARGETN)"!="" + +.IF "$(linkinc)"!="" +.IF "$(GUI)"=="WNT" +.IF "$(SHL10LIBS)"!="" +$(MISC)/$(SHL10TARGET)_linkinc.ls .PHONY: + @@-$(RM) $@ + $(COMMAND_ECHO)$(SED) -f $(SOLARENV)/bin/chrel.sed $(foreach,i,$(SHL10LIBS) $(i:s/.lib/.lin/)) >> $@ +.ENDIF # "$(SHL10LIBS)"!="" +.ENDIF + +LINKINCTARGETS+=$(MISC)/$(SHL10TARGETN:b)_linkinc.ls +$(SHL10TARGETN) : $(LINKINCTARGETS) + +.ELSE +.IF "$(SHL10USE_EXPORTS)"=="name" +.IF "$(GUI)"=="WNT" +.IF "$(COM)"!="GCC" +.IF "$(SHL10LIBS)"!="" +SHL10LINKLIST=$(MISC)/$(SHL10TARGET)_link.lst +SHL10LINKLISTPARAM=@$(SHL10LINKLIST) +$(SHL10LINKLIST) : $(SHL10LIBS) + @@-$(RM) $@ + $(COMMAND_ECHO)$(SED) -f $(SOLARENV)/bin/chrel.sed $(foreach,i,$(SHL10LIBS) $(i:s/.lib/.lin/)) >> $@ +.ENDIF # "$(SHL10LIBS)"!="" +.ENDIF # "$(COM)"!="GCC" +.ENDIF +.ENDIF # "$(SHL10USE_EXPORTS)"=="name" + +$(MISC)/%linkinc.ls: + @echo . > $@ +.ENDIF # "$(linkinc)"!="" + +.IF "$(COM)" == "GCC" && "$(SHL10IMPLIBN)" != "" +$(SHL10IMPLIBN) : $(SHL10TARGETN) +.ENDIF + +$(SHL10TARGETN) : \ + $(SHL10OBJS)\ + $(SHL10LIBS)\ + $(USE_10IMPLIB_DEPS)\ + $(USE_SHL10DEF)\ + $(USE_SHL10VERSIONMAP)\ + $(SHL10RES)\ + $(SHL10DEPN) \ + $(SHL10LINKLIST) + @echo "Making: " $(@:f) +.IF "$(GUI)" == "WNT" +.IF "$(SHL10DEFAULTRES)"!="" + @@-$(RM) $(MISC)/$(SHL10DEFAULTRES:b).rc +.IF "$(SHL10ICON)" != "" + @echo 1 ICON $(SHL10ICON) >> $(MISC)/$(SHL10DEFAULTRES:b).rc +.ENDIF +.IF "$(use_shl_versions)" != "" +.IF "$(SHL10ADD_VERINFO)"!="" + @echo $(EMQ)#include $(EMQ)"$(SHL10ADD_VERINFO)$(EMQ)" >> $(MISC)/$(SHL10DEFAULTRES:b).rc +.ELSE # "$(SHL10ADD_VERINFO)"!="" + @echo $(EMQ)#define ADDITIONAL_VERINFO1 >> $(MISC)/$(SHL10DEFAULTRES:b).rc + @echo $(EMQ)#define ADDITIONAL_VERINFO2 >> $(MISC)/$(SHL10DEFAULTRES:b).rc + @echo $(EMQ)#define ADDITIONAL_VERINFO3 >> $(MISC)/$(SHL10DEFAULTRES:b).rc +.ENDIF # "$(SHL10ADD_VERINFO)"!="" + @echo $(EMQ)#define VERVARIANT $(BUILD) >> $(MISC)/$(SHL10DEFAULTRES:b).rc + @echo $(EMQ)#define ORG_NAME $(SHL10TARGET)$(DLLPOST) >> $(MISC)/$(SHL10DEFAULTRES:b).rc + @echo $(EMQ)#define INTERNAL_NAME $(SHL10TARGET:b) >> $(MISC)/$(SHL10DEFAULTRES:b).rc + @echo $(EMQ)#include $(EMQ)"shlinfo.rc$(EMQ)" >> $(MISC)/$(SHL10DEFAULTRES:b).rc +.ENDIF # "$(use_shl_versions)" != "" +.IF "$(RCFLAGSOUTRES)"!="" +# rc, takes separate flag naming output file, source .rc file last + $(COMMAND_ECHO)$(RC) -DWIN32 $(INCLUDE) $(RCLINKFLAGS) $(RCFLAGSOUTRES)$(SHL10DEFAULTRES) $(MISC)/$(SHL10DEFAULTRES:b).rc +.ELSE +# windres, just takes output file last + $(COMMAND_ECHO)$(RC) -DWIN32 $(INCLUDE) $(RCLINKFLAGS) $(MISC)/$(SHL10DEFAULTRES:b).rc $(SHL10DEFAULTRES) +.ENDIF +.ENDIF # "$(SHL10DEFAULTRES)"!="" +.IF "$(SHL10ALLRES)"!="" + $(COMMAND_ECHO)$(TYPE) $(SHL10ALLRES) > $(SHL10LINKRES) +.IF "$(COM)"=="GCC" + $(WINDRES) $(SHL10LINKRES) $(SHL10LINKRESO) +.ENDIF # "$(COM)"=="GCC" +.ENDIF # "$(SHL10ALLRES)"!="" +.IF "$(COM)"=="GCC" +# GNU ld since 2.17 supports @cmdfile syntax +.IF "$(USE_DEFFILE)"!="" + $(COMMAND_ECHO)$(LINK) @$(mktmp $(strip \ + $(SHL10LINKFLAGS) \ + $(LINKFLAGSSHL) \ + $(SOLARLIB) \ + $(MINGWSSTDOBJ) \ + -o $@ \ + -Wl,-Map,$(MISC)/$(@:b).map \ + $(SHL10DEF) \ + $(USE_10IMPLIB) \ + $(STDOBJ) \ + $(SHL10VERSIONOBJ) $(SHL10OBJS) \ + $(subst,$(ROUT),$(PRJ)/$(ROUT) $(shell cat /dev/null $(SHL10LIBS))) \ + -Wl,--exclude-libs,ALL,--start-group $(SHL10STDLIBS) -Wl,--end-group \ + $(SHL10STDSHL) $(STDSHL10) \ + $(SHL10LINKRESO) \ + )) +.ELSE + @noop $(assign ALL10OBJLIST:=$(STDOBJ) $(SHL10OBJS) $(SHL10LINKRESO) $(shell $(TYPE) /dev/null $(SHL10LIBS) | $(SED) s?$(ROUT)?$(PRJ)/$(ROUT)?g)) +.IF "$(DEFLIB10NAME)"!="" # do not have to include objs + @noop $(assign DEF10OBJLIST:=$(shell $(TYPE) $(foreach,i,$(DEFLIB10NAME) $(SLB)/$(i).lib) | sed s?$(ROUT)?$(PRJ)/$(ROUT)?g)) + @noop $(foreach,i,$(DEF10OBJLIST) $(assign ALL10OBJLIST:=$(ALL10OBJLIST:s?$i??))) +.ENDIF # "$(DEFLIB10NAME)"!="" + $(COMMAND_ECHO)$(LINK) @$(mktmp $(strip \ + $(SHL10LINKFLAGS) \ + $(LINKFLAGSSHL) \ + $(SOLARLIB) \ + $(MINGWSSTDOBJ) \ + -o $@ \ + -Wl,-Map,$(MISC)/$(@:b).map \ + $(SHL10DEF) \ + $(USE_10IMPLIB) \ + $(STDOBJ) \ + $(SHL10VERSIONOBJ) $(SHL10OBJS) \ + $(subst,$(ROUT),$(PRJ)/$(ROUT) $(shell cat /dev/null $(SHL10LIBS))) \ + -Wl,--exclude-libs,ALL,--start-group $(SHL10STDLIBS) -Wl,--end-group \ + $(SHL10STDSHL) $(STDSHL10) \ + $(SHL10LINKRESO) \ + )) +.ENDIF +.ELSE +.IF "$(linkinc)"=="" +.IF "$(SHL10USE_EXPORTS)"!="name" +.IF "$(USE_DEFFILE)"!="" + $(COMMAND_ECHO)$(SHL10LINKER) @$(mktmp \ + $(SHL10LINKFLAGS) \ + $(LINKFLAGSSHL) \ + $(SHL10STACK) $(SHL10BASEX) \ + -out:$@ \ + -map:$(MISC)/$(@:b).map \ + -def:$(SHL10DEF) \ + $(USE_10IMPLIB) \ + $(STDOBJ) \ + $(SHL10VERSIONOBJ) $(SHL10OBJS) \ + $(SHL10LIBS) \ + $(SHL10STDLIBS) \ + $(SHL10STDSHL) $(STDSHL10) \ + $(SHL10LINKRES) \ + ) +# double check if target was really written... still making sense? + @@$(LS) $@ + @echo linking $@.manifest ... +.IF "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI) +.ELSE + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI) +.ENDIF # "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI) +.ELSE # "$(USE_DEFFILE)"!="" + $(COMMAND_ECHO)$(SHL10LINKER) @$(mktmp $(SHL10LINKFLAGS) \ + $(LINKFLAGSSHL) $(SHL10BASEX) \ + $(SHL10STACK) -out:$(SHL10TARGETN) \ + -map:$(MISC)/$(@:B).map \ + $(LB)/$(SHL10IMPLIB).exp \ + $(STDOBJ) \ + $(SHL10OBJS) $(SHL10VERSIONOBJ) \ + $(SHL10LIBS) \ + $(SHL10STDLIBS) \ + $(SHL10STDSHL) $(STDSHL10) \ + $(SHL10LINKRES) \ + ) +# double check if target was really written... still making sense? + @@$(LS) $@ + @echo linking $@.manifest ... +.IF "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI) +.ELSE + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI) +.ENDIF # "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI) +.ENDIF # "$(USE_DEFFILE)"!="" +.ELSE # "$(SHL10USE_EXPORTS)"!="name" + $(COMMAND_ECHO)$(SHL10LINKER) @$(mktmp $(SHL10LINKFLAGS) \ + $(LINKFLAGSSHL) $(SHL10BASEX) \ + $(SHL10STACK) -out:$(SHL10TARGETN) \ + -map:$(MISC)/$(@:B).map \ + $(USE_10IMPLIB) \ + $(STDOBJ) \ + $(SHL10OBJS) $(SHL10VERSIONOBJ)) \ + $(SHL10LINKLISTPARAM) \ + @$(mktmp $(SHL10STDLIBS) \ + $(SHL10STDSHL) $(STDSHL10) \ + $(SHL10LINKRES) \ + ) + @echo linking $@.manifest ... +.IF "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI) +.ELSE + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI) +.ENDIF # "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI) +.ENDIF # "$(SHL10USE_EXPORTS)"!="name" +.ELSE # "$(linkinc)"=="" + $(COMMAND_ECHO)-$(RM) del $(MISC)/$(SHL10TARGET).lnk + $(COMMAND_ECHO)-$(RM) $(MISC)/$(SHL10TARGET).lst + $(COMMAND_ECHO)$(TYPE) $(mktmp \ + $(SHL10LINKFLAGS) \ + $(LINKFLAGSSHL) $(SHL10BASEX) \ + $(SHL10STACK) $(MAPFILE) \ + -out:$@ \ + $(LB)/$(SHL10IMPLIB).exp \ + $(STDOBJ) \ + $(SHL10OBJS) \ + $(SHL10STDLIBS) \ + $(SHL10STDSHL) $(STDSHL10) \ + $(SHL10LINKRES) \ + ) >> $(MISC)/$(SHL10TARGET).lnk + $(COMMAND_ECHO)$(TYPE) $(MISC)/$(SHL10TARGETN:b)_linkinc.ls >> $(MISC)/$(SHL10TARGET).lnk + $(COMMAND_ECHO)$(SHL10LINKER) @$(MISC)/$(SHL10TARGET).lnk + @echo linking $@.manifest ... +.IF "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI) +.ELSE + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI) +.ENDIF # "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI) +.ENDIF # "$(linkinc)"=="" +.ENDIF # "$(COM)"=="GCC" +.ENDIF # "$(GUI)" == "WNT" +.IF "$(GUI)"=="UNX" +.IF "$(OS)"=="MACOSX" + @-$(RM) $(MISC)/$(@:b).list + @-$(RM) $(MISC)/$(TARGET).$(@:b)_10.cmd + @echo $(STDSLO) $(SHL10OBJS:s/.obj/.o/) \ + $(SHL10VERSIONOBJ) \ + `cat /dev/null $(SHL10LIBS) | sed s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g` | tr -s " " "\n" > $(MISC)/$(@:b).list + @/bin/echo -n $(SHL10LINKER) $(SHL10LINKFLAGS) $(SHL10VERSIONMAPPARA) $(LINKFLAGSSHL) -L$(PRJ)/$(ROUT)/lib $(SOLARLIB) -o $@ \ + $(SHL10STDLIBS) $(SHL10ARCHIVES) $(SHL10STDSHL) $(STDSHL10) -filelist $(MISC)/$(@:b).list $(LINKOUTPUT_FILTER) > $(MISC)/$(TARGET).$(@:b)_10.cmd + @$(PERL) $(SOLARENV)/bin/macosx-dylib-link-list.pl \ + `cat $(MISC)/$(TARGET).$(@:b)_10.cmd` \ + >> $(MISC)/$(TARGET).$(@:b)_10.cmd + .IF "$(VERBOSE)" == "TRUE" + @cat $(MISC)/$(TARGET).$(@:b)_10.cmd + .ENDIF + @+source $(MISC)/$(TARGET).$(@:b)_10.cmd + @$(PERL) $(SOLARENV)/bin/macosx-change-install-names.pl \ + shl $(SHL10RPATH) $@ +.IF "$(SHL10CREATEJNILIB)"!="" + @echo "Making: " $(@:f).jnilib + @macosx-create-bundle $@ +.ENDIF # "$(SHL10CREATEJNILIB)"!="" +.IF "$(UPDATER)"=="YES" +.IF "$(SHL10NOCHECK)"=="" + $(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS10) $(SHL10TARGETN) +.ENDIF # "$(SHL10NOCHECK)"!="" +.ENDIF +.ELIF "$(OS)"=="IOS" + $(COMMAND_ECHO)$(AR) $(LIB10FLAGS) $(LIBFLAGS) $@ $(subst,.obj,.o $(SHL10OBJS)) $(shell cat /dev/null $(LIB10TARGET) $(SHL10LIBS) | sed s\#'^'$(ROUT)\#$(PRJ)/$(ROUT)\#g) + $(COMMAND_ECHO)$(RANLIB) $@ +.ELSE # "$(OS)"=="MACOSX" + @-$(RM) $(MISC)/$(TARGET).$(@:b)_10.cmd + @echo $(SHL10LINKER) $(SHL10LINKFLAGS) $(SHL10SONAME) $(LINKFLAGSSHL) $(SHL10VERSIONMAPPARA) -L$(PRJ)/$(ROUT)/lib $(SOLARLIB) $(STDSLO) $(SHL10OBJS:s/.obj/.o/) \ + $(SHL10VERSIONOBJ) -o $@ \ + `cat /dev/null $(SHL10LIBS) | tr -s " " "\n" | $(SED) s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g` \ + $(SHL10STDLIBS) $(SHL10ARCHIVES) $(SHL10STDSHL) $(STDSHL10) $(LINKOUTPUT_FILTER) > $(MISC)/$(TARGET).$(@:b)_10.cmd + .IF "$(VERBOSE)" == "TRUE" + @cat $(MISC)/$(TARGET).$(@:b)_10.cmd + .ENDIF + @+source $(MISC)/$(TARGET).$(@:b)_10.cmd +.IF "$(UPDATER)"=="YES" +.IF "$(SHL10NOCHECK)"=="" + $(COMMAND_ECHO)-$(RM) $(SHL10TARGETN:d)check_$(SHL10TARGETN:f) + $(COMMAND_ECHO)$(RENAME) $(SHL10TARGETN) $(SHL10TARGETN:d)check_$(SHL10TARGETN:f) +.IF "$(VERBOSE)"=="TRUE" + $(COMMAND_ECHO)$(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS10) $(SHL10TARGETN:d)check_$(SHL10TARGETN:f) +.ELSE + $(COMMAND_ECHO)$(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS10) -- -s $(SHL10TARGETN:d)check_$(SHL10TARGETN:f) +.ENDIF +.ENDIF # "$(SHL10NOCHECK)"!="" +.ENDIF # "$(UPDATER)"=="YES" +.ENDIF # "$(OS)"=="MACOSX" +.IF "$(UNIXVERSIONNAMES)"!="" && "$(OS)"!="IOS" + $(COMMAND_ECHO)$(RM) $(LB)/$(SHL10TARGETN:b) + $(COMMAND_ECHO)cd $(LB) && ln -s $(SHL10TARGETN:f) $(SHL10TARGETN:b) +.ENDIF # "$(UNIXVERSIONNAMES)"!="" +.IF "$(VERBOSE)" == "TRUE" + @ls -l $@ +.ENDIF +.ENDIF # "$(GUI)" == "UNX" + +.ENDIF # "$(SHL10TARGETN)"!="" + +# unroll begin + +.IF "$(SHL1IMPLIBN)" != "" + +.IF "$(UPDATER)"=="YES" +USELIB1DEPN+=$(SHL1LIBS) +.ELSE +.ENDIF + +.IF "$(USE_DEFFILE)"!="" +USE_SHL1TARGET=$(SHL1TARGETN) +.ENDIF + +.IF "$(GUI)$(COM)" != "WNTGCC" +.IF "$(GUI)" != "UNX" +$(SHL1IMPLIBN): \ + $(SHL1DEF) \ + $(USE_SHL1TARGET) \ + $(USELIB1DEPN) \ + $(USELIBDEPN) +.ELSE +$(SHL1IMPLIBN): \ + $(SHL1LIBS) +.ENDIF + @echo "Making: " $(@:f) +.IF "$(GUI)" == "WNT" +# bei use_deffile implib von linker erstellt +.IF "$(USE_DEFFILE)"=="" + $(IMPLIB) $(IMPLIBFLAGS) @$(mktmp -out:$(SHL1IMPLIBN) \ + -def:$(SHL1DEF) ) +.ELSE # "$(USE_DEFFILE)=="" + @echo build of $(SHL1TARGETN) creates $@ + @$(TOUCH) $@ +.ENDIF # "$(USE_DEFFILE)=="" + +.ELSE + @echo no ImportLibs on Mac and *ix + @-$(RM) $@ + @$(TOUCH) $@ +.ENDIF +.ENDIF +.ENDIF + +# unroll begin + +.IF "$(SHL2IMPLIBN)" != "" + +.IF "$(UPDATER)"=="YES" +USELIB2DEPN+=$(SHL2LIBS) +.ELSE +.ENDIF + +.IF "$(USE_DEFFILE)"!="" +USE_SHL2TARGET=$(SHL2TARGETN) +.ENDIF + +.IF "$(GUI)$(COM)" != "WNTGCC" +.IF "$(GUI)" != "UNX" +$(SHL2IMPLIBN): \ + $(SHL2DEF) \ + $(USE_SHL2TARGET) \ + $(USELIB2DEPN) \ + $(USELIBDEPN) +.ELSE +$(SHL2IMPLIBN): \ + $(SHL2LIBS) +.ENDIF + @echo "Making: " $(@:f) +.IF "$(GUI)" == "WNT" +# bei use_deffile implib von linker erstellt +.IF "$(USE_DEFFILE)"=="" + $(IMPLIB) $(IMPLIBFLAGS) @$(mktmp -out:$(SHL2IMPLIBN) \ + -def:$(SHL2DEF) ) +.ELSE # "$(USE_DEFFILE)=="" + @echo build of $(SHL2TARGETN) creates $@ + @$(TOUCH) $@ +.ENDIF # "$(USE_DEFFILE)=="" + +.ELSE + @echo no ImportLibs on Mac and *ix + @-$(RM) $@ + @$(TOUCH) $@ +.ENDIF +.ENDIF +.ENDIF + +# unroll begin + +.IF "$(SHL3IMPLIBN)" != "" + +.IF "$(UPDATER)"=="YES" +USELIB3DEPN+=$(SHL3LIBS) +.ELSE +.ENDIF + +.IF "$(USE_DEFFILE)"!="" +USE_SHL3TARGET=$(SHL3TARGETN) +.ENDIF + +.IF "$(GUI)$(COM)" != "WNTGCC" +.IF "$(GUI)" != "UNX" +$(SHL3IMPLIBN): \ + $(SHL3DEF) \ + $(USE_SHL3TARGET) \ + $(USELIB3DEPN) \ + $(USELIBDEPN) +.ELSE +$(SHL3IMPLIBN): \ + $(SHL3LIBS) +.ENDIF + @echo "Making: " $(@:f) +.IF "$(GUI)" == "WNT" +# bei use_deffile implib von linker erstellt +.IF "$(USE_DEFFILE)"=="" + $(IMPLIB) $(IMPLIBFLAGS) @$(mktmp -out:$(SHL3IMPLIBN) \ + -def:$(SHL3DEF) ) +.ELSE # "$(USE_DEFFILE)=="" + @echo build of $(SHL3TARGETN) creates $@ + @$(TOUCH) $@ +.ENDIF # "$(USE_DEFFILE)=="" + +.ELSE + @echo no ImportLibs on Mac and *ix + @-$(RM) $@ + @$(TOUCH) $@ +.ENDIF +.ENDIF +.ENDIF + +# unroll begin + +.IF "$(SHL4IMPLIBN)" != "" + +.IF "$(UPDATER)"=="YES" +USELIB4DEPN+=$(SHL4LIBS) +.ELSE +.ENDIF + +.IF "$(USE_DEFFILE)"!="" +USE_SHL4TARGET=$(SHL4TARGETN) +.ENDIF + +.IF "$(GUI)$(COM)" != "WNTGCC" +.IF "$(GUI)" != "UNX" +$(SHL4IMPLIBN): \ + $(SHL4DEF) \ + $(USE_SHL4TARGET) \ + $(USELIB4DEPN) \ + $(USELIBDEPN) +.ELSE +$(SHL4IMPLIBN): \ + $(SHL4LIBS) +.ENDIF + @echo "Making: " $(@:f) +.IF "$(GUI)" == "WNT" +# bei use_deffile implib von linker erstellt +.IF "$(USE_DEFFILE)"=="" + $(IMPLIB) $(IMPLIBFLAGS) @$(mktmp -out:$(SHL4IMPLIBN) \ + -def:$(SHL4DEF) ) +.ELSE # "$(USE_DEFFILE)=="" + @echo build of $(SHL4TARGETN) creates $@ + @$(TOUCH) $@ +.ENDIF # "$(USE_DEFFILE)=="" + +.ELSE + @echo no ImportLibs on Mac and *ix + @-$(RM) $@ + @$(TOUCH) $@ +.ENDIF +.ENDIF +.ENDIF + +# unroll begin + +.IF "$(SHL5IMPLIBN)" != "" + +.IF "$(UPDATER)"=="YES" +USELIB5DEPN+=$(SHL5LIBS) +.ELSE +.ENDIF + +.IF "$(USE_DEFFILE)"!="" +USE_SHL5TARGET=$(SHL5TARGETN) +.ENDIF + +.IF "$(GUI)$(COM)" != "WNTGCC" +.IF "$(GUI)" != "UNX" +$(SHL5IMPLIBN): \ + $(SHL5DEF) \ + $(USE_SHL5TARGET) \ + $(USELIB5DEPN) \ + $(USELIBDEPN) +.ELSE +$(SHL5IMPLIBN): \ + $(SHL5LIBS) +.ENDIF + @echo "Making: " $(@:f) +.IF "$(GUI)" == "WNT" +# bei use_deffile implib von linker erstellt +.IF "$(USE_DEFFILE)"=="" + $(IMPLIB) $(IMPLIBFLAGS) @$(mktmp -out:$(SHL5IMPLIBN) \ + -def:$(SHL5DEF) ) +.ELSE # "$(USE_DEFFILE)=="" + @echo build of $(SHL5TARGETN) creates $@ + @$(TOUCH) $@ +.ENDIF # "$(USE_DEFFILE)=="" + +.ELSE + @echo no ImportLibs on Mac and *ix + @-$(RM) $@ + @$(TOUCH) $@ +.ENDIF +.ENDIF +.ENDIF + +# unroll begin + +.IF "$(SHL6IMPLIBN)" != "" + +.IF "$(UPDATER)"=="YES" +USELIB6DEPN+=$(SHL6LIBS) +.ELSE +.ENDIF + +.IF "$(USE_DEFFILE)"!="" +USE_SHL6TARGET=$(SHL6TARGETN) +.ENDIF + +.IF "$(GUI)$(COM)" != "WNTGCC" +.IF "$(GUI)" != "UNX" +$(SHL6IMPLIBN): \ + $(SHL6DEF) \ + $(USE_SHL6TARGET) \ + $(USELIB6DEPN) \ + $(USELIBDEPN) +.ELSE +$(SHL6IMPLIBN): \ + $(SHL6LIBS) +.ENDIF + @echo "Making: " $(@:f) +.IF "$(GUI)" == "WNT" +# bei use_deffile implib von linker erstellt +.IF "$(USE_DEFFILE)"=="" + $(IMPLIB) $(IMPLIBFLAGS) @$(mktmp -out:$(SHL6IMPLIBN) \ + -def:$(SHL6DEF) ) +.ELSE # "$(USE_DEFFILE)=="" + @echo build of $(SHL6TARGETN) creates $@ + @$(TOUCH) $@ +.ENDIF # "$(USE_DEFFILE)=="" + +.ELSE + @echo no ImportLibs on Mac and *ix + @-$(RM) $@ + @$(TOUCH) $@ +.ENDIF +.ENDIF +.ENDIF + +# unroll begin + +.IF "$(SHL7IMPLIBN)" != "" + +.IF "$(UPDATER)"=="YES" +USELIB7DEPN+=$(SHL7LIBS) +.ELSE +.ENDIF + +.IF "$(USE_DEFFILE)"!="" +USE_SHL7TARGET=$(SHL7TARGETN) +.ENDIF + +.IF "$(GUI)$(COM)" != "WNTGCC" +.IF "$(GUI)" != "UNX" +$(SHL7IMPLIBN): \ + $(SHL7DEF) \ + $(USE_SHL7TARGET) \ + $(USELIB7DEPN) \ + $(USELIBDEPN) +.ELSE +$(SHL7IMPLIBN): \ + $(SHL7LIBS) +.ENDIF + @echo "Making: " $(@:f) +.IF "$(GUI)" == "WNT" +# bei use_deffile implib von linker erstellt +.IF "$(USE_DEFFILE)"=="" + $(IMPLIB) $(IMPLIBFLAGS) @$(mktmp -out:$(SHL7IMPLIBN) \ + -def:$(SHL7DEF) ) +.ELSE # "$(USE_DEFFILE)=="" + @echo build of $(SHL7TARGETN) creates $@ + @$(TOUCH) $@ +.ENDIF # "$(USE_DEFFILE)=="" + +.ELSE + @echo no ImportLibs on Mac and *ix + @-$(RM) $@ + @$(TOUCH) $@ +.ENDIF +.ENDIF +.ENDIF + +# unroll begin + +.IF "$(SHL8IMPLIBN)" != "" + +.IF "$(UPDATER)"=="YES" +USELIB8DEPN+=$(SHL8LIBS) +.ELSE +.ENDIF + +.IF "$(USE_DEFFILE)"!="" +USE_SHL8TARGET=$(SHL8TARGETN) +.ENDIF + +.IF "$(GUI)$(COM)" != "WNTGCC" +.IF "$(GUI)" != "UNX" +$(SHL8IMPLIBN): \ + $(SHL8DEF) \ + $(USE_SHL8TARGET) \ + $(USELIB8DEPN) \ + $(USELIBDEPN) +.ELSE +$(SHL8IMPLIBN): \ + $(SHL8LIBS) +.ENDIF + @echo "Making: " $(@:f) +.IF "$(GUI)" == "WNT" +# bei use_deffile implib von linker erstellt +.IF "$(USE_DEFFILE)"=="" + $(IMPLIB) $(IMPLIBFLAGS) @$(mktmp -out:$(SHL8IMPLIBN) \ + -def:$(SHL8DEF) ) +.ELSE # "$(USE_DEFFILE)=="" + @echo build of $(SHL8TARGETN) creates $@ + @$(TOUCH) $@ +.ENDIF # "$(USE_DEFFILE)=="" + +.ELSE + @echo no ImportLibs on Mac and *ix + @-$(RM) $@ + @$(TOUCH) $@ +.ENDIF +.ENDIF +.ENDIF + +# unroll begin + +.IF "$(SHL9IMPLIBN)" != "" + +.IF "$(UPDATER)"=="YES" +USELIB9DEPN+=$(SHL9LIBS) +.ELSE +.ENDIF + +.IF "$(USE_DEFFILE)"!="" +USE_SHL9TARGET=$(SHL9TARGETN) +.ENDIF + +.IF "$(GUI)$(COM)" != "WNTGCC" +.IF "$(GUI)" != "UNX" +$(SHL9IMPLIBN): \ + $(SHL9DEF) \ + $(USE_SHL9TARGET) \ + $(USELIB9DEPN) \ + $(USELIBDEPN) +.ELSE +$(SHL9IMPLIBN): \ + $(SHL9LIBS) +.ENDIF + @echo "Making: " $(@:f) +.IF "$(GUI)" == "WNT" +# bei use_deffile implib von linker erstellt +.IF "$(USE_DEFFILE)"=="" + $(IMPLIB) $(IMPLIBFLAGS) @$(mktmp -out:$(SHL9IMPLIBN) \ + -def:$(SHL9DEF) ) +.ELSE # "$(USE_DEFFILE)=="" + @echo build of $(SHL9TARGETN) creates $@ + @$(TOUCH) $@ +.ENDIF # "$(USE_DEFFILE)=="" + +.ELSE + @echo no ImportLibs on Mac and *ix + @-$(RM) $@ + @$(TOUCH) $@ +.ENDIF +.ENDIF +.ENDIF + +# unroll begin + +.IF "$(SHL10IMPLIBN)" != "" + +.IF "$(UPDATER)"=="YES" +USELIB10DEPN+=$(SHL10LIBS) +.ELSE +.ENDIF + +.IF "$(USE_DEFFILE)"!="" +USE_SHL10TARGET=$(SHL10TARGETN) +.ENDIF + +.IF "$(GUI)$(COM)" != "WNTGCC" +.IF "$(GUI)" != "UNX" +$(SHL10IMPLIBN): \ + $(SHL10DEF) \ + $(USE_SHL10TARGET) \ + $(USELIB10DEPN) \ + $(USELIBDEPN) +.ELSE +$(SHL10IMPLIBN): \ + $(SHL10LIBS) +.ENDIF + @echo "Making: " $(@:f) +.IF "$(GUI)" == "WNT" +# bei use_deffile implib von linker erstellt +.IF "$(USE_DEFFILE)"=="" + $(IMPLIB) $(IMPLIBFLAGS) @$(mktmp -out:$(SHL10IMPLIBN) \ + -def:$(SHL10DEF) ) +.ELSE # "$(USE_DEFFILE)=="" + @echo build of $(SHL10TARGETN) creates $@ + @$(TOUCH) $@ +.ENDIF # "$(USE_DEFFILE)=="" + +.ELSE + @echo no ImportLibs on Mac and *ix + @-$(RM) $@ + @$(TOUCH) $@ +.ENDIF +.ENDIF +.ENDIF + diff --git a/solenv/inc/_tg_srs.mk b/solenv/inc/_tg_srs.mk new file mode 100644 index 000000000000..375fab35b800 --- /dev/null +++ b/solenv/inc/_tg_srs.mk @@ -0,0 +1,410 @@ +# unroll begin + +.IF "$(SRS1NAME)"!="" + +$(MISC)/$(TARGET).$(SRS1NAME).dprr: $(LOCALIZE_ME_DEST) + +$(MISC)/$(TARGET).$(SRS1NAME).dprr: $(SRC1FILES) + @echo "Making: " $(@:f) + @@-$(RM) $(MISC)/$(TARGET).$(SRS1NAME).dprr + $(COMMAND_ECHO)$(RSC) $(VERBOSITY) $(SRSDEFAULT) $(RSC_SRS_CHARSET) $(RSCFLAGS) -I$(RSCEXTINC) -I$(INCLOCPRJ) -I$(INCLOCAL) -I$(INC) -I$(INCCOM) $(RSCDEFS) $(RSCUPDVERDEF) -fp={$(SRS)/$(SRS1NAME).srs} -fo=$@ -p=$(TARGET) $(SRC1FILES) + +.IF "$(WITH_LANG)"!="" + +$(foreach,i,$(SRC1FILES) $(COMMONMISC)/$(TARGET)/$i) : $$(@:f) $(LOCALIZESDF) + @echo "Making: " $(@:f) + $(COMMAND_ECHO)-$(MKDIR) $(@:d) + $(COMMAND_ECHO)-$(RM) $@ + $(COMMAND_ECHO)-$(MKDIRHIER) $(COMMONMISC)$/$(PRJNAME) + $(COMMAND_ECHO)$(WRAPCMD) $(TRANSEX) -p $(PRJNAME) -i $(@:f) -o $(@).$(INPATH) -m $(LOCALIZESDF) -l all + $(COMMAND_ECHO)$(RENAME) $@.$(INPATH) $@ + $(COMMAND_ECHO)-$(RM) $@.$(INPATH) + +$(SRS)/$(SRS1NAME).srs: $(LOCALIZE_ME_DEST) + +$(SRS)/$(SRS1NAME).srs: $(foreach,i,$(SRC1FILES) $(COMMONMISC)/$(TARGET)/$i) +.ELSE # "$(WITH_LANG)"!="" +$(SRS)/$(SRS1NAME).srs: $(SRC1FILES) +.ENDIF # "$(WITH_LANG)"!="" + @echo "Making: " $(@:f) + $(COMMAND_ECHO)$(RSC) -presponse $(VERBOSITY) @$(mktmp \ + $(SRSDEFAULT) $(RSC_SRS_CHARSET) $(RSCFLAGS) -I$(RSCEXTINC) \ + $(INCLUDE) $(RSCDEFS) $(RSCUPDVERDEF) \ + -fp=$@.$(INPATH) \ + $< \ + ) + $(COMMAND_ECHO)-$(RM) $@ + $(COMMAND_ECHO)$(RENAME) $@.$(INPATH) $@ + $(COMMAND_ECHO)-$(RM) $@.$(INPATH) + +.ENDIF # "$(SRS1NAME)"!="" + +# unroll begin + +.IF "$(SRS2NAME)"!="" + +$(MISC)/$(TARGET).$(SRS2NAME).dprr: $(LOCALIZE_ME_DEST) + +$(MISC)/$(TARGET).$(SRS2NAME).dprr: $(SRC2FILES) + @echo "Making: " $(@:f) + @@-$(RM) $(MISC)/$(TARGET).$(SRS2NAME).dprr + $(COMMAND_ECHO)$(RSC) $(VERBOSITY) $(SRSDEFAULT) $(RSC_SRS_CHARSET) $(RSCFLAGS) -I$(RSCEXTINC) -I$(INCLOCPRJ) -I$(INCLOCAL) -I$(INC) -I$(INCCOM) $(RSCDEFS) $(RSCUPDVERDEF) -fp={$(SRS)/$(SRS2NAME).srs} -fo=$@ -p=$(TARGET) $(SRC2FILES) + +.IF "$(WITH_LANG)"!="" + +$(foreach,i,$(SRC2FILES) $(COMMONMISC)/$(TARGET)/$i) : $$(@:f) $(LOCALIZESDF) + @echo "Making: " $(@:f) + $(COMMAND_ECHO)-$(MKDIR) $(@:d) + $(COMMAND_ECHO)-$(RM) $@ + $(COMMAND_ECHO)-$(MKDIRHIER) $(COMMONMISC)$/$(PRJNAME) + $(COMMAND_ECHO)$(WRAPCMD) $(TRANSEX) -p $(PRJNAME) -i $(@:f) -o $(@).$(INPATH) -m $(LOCALIZESDF) -l all + $(COMMAND_ECHO)$(RENAME) $@.$(INPATH) $@ + $(COMMAND_ECHO)-$(RM) $@.$(INPATH) + +$(SRS)/$(SRS2NAME).srs: $(LOCALIZE_ME_DEST) + +$(SRS)/$(SRS2NAME).srs: $(foreach,i,$(SRC2FILES) $(COMMONMISC)/$(TARGET)/$i) +.ELSE # "$(WITH_LANG)"!="" +$(SRS)/$(SRS2NAME).srs: $(SRC2FILES) +.ENDIF # "$(WITH_LANG)"!="" + @echo "Making: " $(@:f) + $(COMMAND_ECHO)$(RSC) -presponse $(VERBOSITY) @$(mktmp \ + $(SRSDEFAULT) $(RSC_SRS_CHARSET) $(RSCFLAGS) -I$(RSCEXTINC) \ + $(INCLUDE) $(RSCDEFS) $(RSCUPDVERDEF) \ + -fp=$@.$(INPATH) \ + $< \ + ) + $(COMMAND_ECHO)-$(RM) $@ + $(COMMAND_ECHO)$(RENAME) $@.$(INPATH) $@ + $(COMMAND_ECHO)-$(RM) $@.$(INPATH) + +.ENDIF # "$(SRS2NAME)"!="" + +# unroll begin + +.IF "$(SRS3NAME)"!="" + +$(MISC)/$(TARGET).$(SRS3NAME).dprr: $(LOCALIZE_ME_DEST) + +$(MISC)/$(TARGET).$(SRS3NAME).dprr: $(SRC3FILES) + @echo "Making: " $(@:f) + @@-$(RM) $(MISC)/$(TARGET).$(SRS3NAME).dprr + $(COMMAND_ECHO)$(RSC) $(VERBOSITY) $(SRSDEFAULT) $(RSC_SRS_CHARSET) $(RSCFLAGS) -I$(RSCEXTINC) -I$(INCLOCPRJ) -I$(INCLOCAL) -I$(INC) -I$(INCCOM) $(RSCDEFS) $(RSCUPDVERDEF) -fp={$(SRS)/$(SRS3NAME).srs} -fo=$@ -p=$(TARGET) $(SRC3FILES) + +.IF "$(WITH_LANG)"!="" + +$(foreach,i,$(SRC3FILES) $(COMMONMISC)/$(TARGET)/$i) : $$(@:f) $(LOCALIZESDF) + @echo "Making: " $(@:f) + $(COMMAND_ECHO)-$(MKDIR) $(@:d) + $(COMMAND_ECHO)-$(RM) $@ + $(COMMAND_ECHO)-$(MKDIRHIER) $(COMMONMISC)$/$(PRJNAME) + $(COMMAND_ECHO)$(WRAPCMD) $(TRANSEX) -p $(PRJNAME) -i $(@:f) -o $(@).$(INPATH) -m $(LOCALIZESDF) -l all + $(COMMAND_ECHO)$(RENAME) $@.$(INPATH) $@ + $(COMMAND_ECHO)-$(RM) $@.$(INPATH) + +$(SRS)/$(SRS3NAME).srs: $(LOCALIZE_ME_DEST) + +$(SRS)/$(SRS3NAME).srs: $(foreach,i,$(SRC3FILES) $(COMMONMISC)/$(TARGET)/$i) +.ELSE # "$(WITH_LANG)"!="" +$(SRS)/$(SRS3NAME).srs: $(SRC3FILES) +.ENDIF # "$(WITH_LANG)"!="" + @echo "Making: " $(@:f) + $(COMMAND_ECHO)$(RSC) -presponse $(VERBOSITY) @$(mktmp \ + $(SRSDEFAULT) $(RSC_SRS_CHARSET) $(RSCFLAGS) -I$(RSCEXTINC) \ + $(INCLUDE) $(RSCDEFS) $(RSCUPDVERDEF) \ + -fp=$@.$(INPATH) \ + $< \ + ) + $(COMMAND_ECHO)-$(RM) $@ + $(COMMAND_ECHO)$(RENAME) $@.$(INPATH) $@ + $(COMMAND_ECHO)-$(RM) $@.$(INPATH) + +.ENDIF # "$(SRS3NAME)"!="" + +# unroll begin + +.IF "$(SRS4NAME)"!="" + +$(MISC)/$(TARGET).$(SRS4NAME).dprr: $(LOCALIZE_ME_DEST) + +$(MISC)/$(TARGET).$(SRS4NAME).dprr: $(SRC4FILES) + @echo "Making: " $(@:f) + @@-$(RM) $(MISC)/$(TARGET).$(SRS4NAME).dprr + $(COMMAND_ECHO)$(RSC) $(VERBOSITY) $(SRSDEFAULT) $(RSC_SRS_CHARSET) $(RSCFLAGS) -I$(RSCEXTINC) -I$(INCLOCPRJ) -I$(INCLOCAL) -I$(INC) -I$(INCCOM) $(RSCDEFS) $(RSCUPDVERDEF) -fp={$(SRS)/$(SRS4NAME).srs} -fo=$@ -p=$(TARGET) $(SRC4FILES) + +.IF "$(WITH_LANG)"!="" + +$(foreach,i,$(SRC4FILES) $(COMMONMISC)/$(TARGET)/$i) : $$(@:f) $(LOCALIZESDF) + @echo "Making: " $(@:f) + $(COMMAND_ECHO)-$(MKDIR) $(@:d) + $(COMMAND_ECHO)-$(RM) $@ + $(COMMAND_ECHO)-$(MKDIRHIER) $(COMMONMISC)$/$(PRJNAME) + $(COMMAND_ECHO)$(WRAPCMD) $(TRANSEX) -p $(PRJNAME) -i $(@:f) -o $(@).$(INPATH) -m $(LOCALIZESDF) -l all + $(COMMAND_ECHO)$(RENAME) $@.$(INPATH) $@ + $(COMMAND_ECHO)-$(RM) $@.$(INPATH) + +$(SRS)/$(SRS4NAME).srs: $(LOCALIZE_ME_DEST) + +$(SRS)/$(SRS4NAME).srs: $(foreach,i,$(SRC4FILES) $(COMMONMISC)/$(TARGET)/$i) +.ELSE # "$(WITH_LANG)"!="" +$(SRS)/$(SRS4NAME).srs: $(SRC4FILES) +.ENDIF # "$(WITH_LANG)"!="" + @echo "Making: " $(@:f) + $(COMMAND_ECHO)$(RSC) -presponse $(VERBOSITY) @$(mktmp \ + $(SRSDEFAULT) $(RSC_SRS_CHARSET) $(RSCFLAGS) -I$(RSCEXTINC) \ + $(INCLUDE) $(RSCDEFS) $(RSCUPDVERDEF) \ + -fp=$@.$(INPATH) \ + $< \ + ) + $(COMMAND_ECHO)-$(RM) $@ + $(COMMAND_ECHO)$(RENAME) $@.$(INPATH) $@ + $(COMMAND_ECHO)-$(RM) $@.$(INPATH) + +.ENDIF # "$(SRS4NAME)"!="" + +# unroll begin + +.IF "$(SRS5NAME)"!="" + +$(MISC)/$(TARGET).$(SRS5NAME).dprr: $(LOCALIZE_ME_DEST) + +$(MISC)/$(TARGET).$(SRS5NAME).dprr: $(SRC5FILES) + @echo "Making: " $(@:f) + @@-$(RM) $(MISC)/$(TARGET).$(SRS5NAME).dprr + $(COMMAND_ECHO)$(RSC) $(VERBOSITY) $(SRSDEFAULT) $(RSC_SRS_CHARSET) $(RSCFLAGS) -I$(RSCEXTINC) -I$(INCLOCPRJ) -I$(INCLOCAL) -I$(INC) -I$(INCCOM) $(RSCDEFS) $(RSCUPDVERDEF) -fp={$(SRS)/$(SRS5NAME).srs} -fo=$@ -p=$(TARGET) $(SRC5FILES) + +.IF "$(WITH_LANG)"!="" + +$(foreach,i,$(SRC5FILES) $(COMMONMISC)/$(TARGET)/$i) : $$(@:f) $(LOCALIZESDF) + @echo "Making: " $(@:f) + $(COMMAND_ECHO)-$(MKDIR) $(@:d) + $(COMMAND_ECHO)-$(RM) $@ + $(COMMAND_ECHO)-$(MKDIRHIER) $(COMMONMISC)$/$(PRJNAME) + $(COMMAND_ECHO)$(WRAPCMD) $(TRANSEX) -p $(PRJNAME) -i $(@:f) -o $(@).$(INPATH) -m $(LOCALIZESDF) -l all + $(COMMAND_ECHO)$(RENAME) $@.$(INPATH) $@ + $(COMMAND_ECHO)-$(RM) $@.$(INPATH) + +$(SRS)/$(SRS5NAME).srs: $(LOCALIZE_ME_DEST) + +$(SRS)/$(SRS5NAME).srs: $(foreach,i,$(SRC5FILES) $(COMMONMISC)/$(TARGET)/$i) +.ELSE # "$(WITH_LANG)"!="" +$(SRS)/$(SRS5NAME).srs: $(SRC5FILES) +.ENDIF # "$(WITH_LANG)"!="" + @echo "Making: " $(@:f) + $(COMMAND_ECHO)$(RSC) -presponse $(VERBOSITY) @$(mktmp \ + $(SRSDEFAULT) $(RSC_SRS_CHARSET) $(RSCFLAGS) -I$(RSCEXTINC) \ + $(INCLUDE) $(RSCDEFS) $(RSCUPDVERDEF) \ + -fp=$@.$(INPATH) \ + $< \ + ) + $(COMMAND_ECHO)-$(RM) $@ + $(COMMAND_ECHO)$(RENAME) $@.$(INPATH) $@ + $(COMMAND_ECHO)-$(RM) $@.$(INPATH) + +.ENDIF # "$(SRS5NAME)"!="" + +# unroll begin + +.IF "$(SRS6NAME)"!="" + +$(MISC)/$(TARGET).$(SRS6NAME).dprr: $(LOCALIZE_ME_DEST) + +$(MISC)/$(TARGET).$(SRS6NAME).dprr: $(SRC6FILES) + @echo "Making: " $(@:f) + @@-$(RM) $(MISC)/$(TARGET).$(SRS6NAME).dprr + $(COMMAND_ECHO)$(RSC) $(VERBOSITY) $(SRSDEFAULT) $(RSC_SRS_CHARSET) $(RSCFLAGS) -I$(RSCEXTINC) -I$(INCLOCPRJ) -I$(INCLOCAL) -I$(INC) -I$(INCCOM) $(RSCDEFS) $(RSCUPDVERDEF) -fp={$(SRS)/$(SRS6NAME).srs} -fo=$@ -p=$(TARGET) $(SRC6FILES) + +.IF "$(WITH_LANG)"!="" + +$(foreach,i,$(SRC6FILES) $(COMMONMISC)/$(TARGET)/$i) : $$(@:f) $(LOCALIZESDF) + @echo "Making: " $(@:f) + $(COMMAND_ECHO)-$(MKDIR) $(@:d) + $(COMMAND_ECHO)-$(RM) $@ + $(COMMAND_ECHO)-$(MKDIRHIER) $(COMMONMISC)$/$(PRJNAME) + $(COMMAND_ECHO)$(WRAPCMD) $(TRANSEX) -p $(PRJNAME) -i $(@:f) -o $(@).$(INPATH) -m $(LOCALIZESDF) -l all + $(COMMAND_ECHO)$(RENAME) $@.$(INPATH) $@ + $(COMMAND_ECHO)-$(RM) $@.$(INPATH) + +$(SRS)/$(SRS6NAME).srs: $(LOCALIZE_ME_DEST) + +$(SRS)/$(SRS6NAME).srs: $(foreach,i,$(SRC6FILES) $(COMMONMISC)/$(TARGET)/$i) +.ELSE # "$(WITH_LANG)"!="" +$(SRS)/$(SRS6NAME).srs: $(SRC6FILES) +.ENDIF # "$(WITH_LANG)"!="" + @echo "Making: " $(@:f) + $(COMMAND_ECHO)$(RSC) -presponse $(VERBOSITY) @$(mktmp \ + $(SRSDEFAULT) $(RSC_SRS_CHARSET) $(RSCFLAGS) -I$(RSCEXTINC) \ + $(INCLUDE) $(RSCDEFS) $(RSCUPDVERDEF) \ + -fp=$@.$(INPATH) \ + $< \ + ) + $(COMMAND_ECHO)-$(RM) $@ + $(COMMAND_ECHO)$(RENAME) $@.$(INPATH) $@ + $(COMMAND_ECHO)-$(RM) $@.$(INPATH) + +.ENDIF # "$(SRS6NAME)"!="" + +# unroll begin + +.IF "$(SRS7NAME)"!="" + +$(MISC)/$(TARGET).$(SRS7NAME).dprr: $(LOCALIZE_ME_DEST) + +$(MISC)/$(TARGET).$(SRS7NAME).dprr: $(SRC7FILES) + @echo "Making: " $(@:f) + @@-$(RM) $(MISC)/$(TARGET).$(SRS7NAME).dprr + $(COMMAND_ECHO)$(RSC) $(VERBOSITY) $(SRSDEFAULT) $(RSC_SRS_CHARSET) $(RSCFLAGS) -I$(RSCEXTINC) -I$(INCLOCPRJ) -I$(INCLOCAL) -I$(INC) -I$(INCCOM) $(RSCDEFS) $(RSCUPDVERDEF) -fp={$(SRS)/$(SRS7NAME).srs} -fo=$@ -p=$(TARGET) $(SRC7FILES) + +.IF "$(WITH_LANG)"!="" + +$(foreach,i,$(SRC7FILES) $(COMMONMISC)/$(TARGET)/$i) : $$(@:f) $(LOCALIZESDF) + @echo "Making: " $(@:f) + $(COMMAND_ECHO)-$(MKDIR) $(@:d) + $(COMMAND_ECHO)-$(RM) $@ + $(COMMAND_ECHO)-$(MKDIRHIER) $(COMMONMISC)$/$(PRJNAME) + $(COMMAND_ECHO)$(WRAPCMD) $(TRANSEX) -p $(PRJNAME) -i $(@:f) -o $(@).$(INPATH) -m $(LOCALIZESDF) -l all + $(COMMAND_ECHO)$(RENAME) $@.$(INPATH) $@ + $(COMMAND_ECHO)-$(RM) $@.$(INPATH) + +$(SRS)/$(SRS7NAME).srs: $(LOCALIZE_ME_DEST) + +$(SRS)/$(SRS7NAME).srs: $(foreach,i,$(SRC7FILES) $(COMMONMISC)/$(TARGET)/$i) +.ELSE # "$(WITH_LANG)"!="" +$(SRS)/$(SRS7NAME).srs: $(SRC7FILES) +.ENDIF # "$(WITH_LANG)"!="" + @echo "Making: " $(@:f) + $(COMMAND_ECHO)$(RSC) -presponse $(VERBOSITY) @$(mktmp \ + $(SRSDEFAULT) $(RSC_SRS_CHARSET) $(RSCFLAGS) -I$(RSCEXTINC) \ + $(INCLUDE) $(RSCDEFS) $(RSCUPDVERDEF) \ + -fp=$@.$(INPATH) \ + $< \ + ) + $(COMMAND_ECHO)-$(RM) $@ + $(COMMAND_ECHO)$(RENAME) $@.$(INPATH) $@ + $(COMMAND_ECHO)-$(RM) $@.$(INPATH) + +.ENDIF # "$(SRS7NAME)"!="" + +# unroll begin + +.IF "$(SRS8NAME)"!="" + +$(MISC)/$(TARGET).$(SRS8NAME).dprr: $(LOCALIZE_ME_DEST) + +$(MISC)/$(TARGET).$(SRS8NAME).dprr: $(SRC8FILES) + @echo "Making: " $(@:f) + @@-$(RM) $(MISC)/$(TARGET).$(SRS8NAME).dprr + $(COMMAND_ECHO)$(RSC) $(VERBOSITY) $(SRSDEFAULT) $(RSC_SRS_CHARSET) $(RSCFLAGS) -I$(RSCEXTINC) -I$(INCLOCPRJ) -I$(INCLOCAL) -I$(INC) -I$(INCCOM) $(RSCDEFS) $(RSCUPDVERDEF) -fp={$(SRS)/$(SRS8NAME).srs} -fo=$@ -p=$(TARGET) $(SRC8FILES) + +.IF "$(WITH_LANG)"!="" + +$(foreach,i,$(SRC8FILES) $(COMMONMISC)/$(TARGET)/$i) : $$(@:f) $(LOCALIZESDF) + @echo "Making: " $(@:f) + $(COMMAND_ECHO)-$(MKDIR) $(@:d) + $(COMMAND_ECHO)-$(RM) $@ + $(COMMAND_ECHO)-$(MKDIRHIER) $(COMMONMISC)$/$(PRJNAME) + $(COMMAND_ECHO)$(WRAPCMD) $(TRANSEX) -p $(PRJNAME) -i $(@:f) -o $(@).$(INPATH) -m $(LOCALIZESDF) -l all + $(COMMAND_ECHO)$(RENAME) $@.$(INPATH) $@ + $(COMMAND_ECHO)-$(RM) $@.$(INPATH) + +$(SRS)/$(SRS8NAME).srs: $(LOCALIZE_ME_DEST) + +$(SRS)/$(SRS8NAME).srs: $(foreach,i,$(SRC8FILES) $(COMMONMISC)/$(TARGET)/$i) +.ELSE # "$(WITH_LANG)"!="" +$(SRS)/$(SRS8NAME).srs: $(SRC8FILES) +.ENDIF # "$(WITH_LANG)"!="" + @echo "Making: " $(@:f) + $(COMMAND_ECHO)$(RSC) -presponse $(VERBOSITY) @$(mktmp \ + $(SRSDEFAULT) $(RSC_SRS_CHARSET) $(RSCFLAGS) -I$(RSCEXTINC) \ + $(INCLUDE) $(RSCDEFS) $(RSCUPDVERDEF) \ + -fp=$@.$(INPATH) \ + $< \ + ) + $(COMMAND_ECHO)-$(RM) $@ + $(COMMAND_ECHO)$(RENAME) $@.$(INPATH) $@ + $(COMMAND_ECHO)-$(RM) $@.$(INPATH) + +.ENDIF # "$(SRS8NAME)"!="" + +# unroll begin + +.IF "$(SRS9NAME)"!="" + +$(MISC)/$(TARGET).$(SRS9NAME).dprr: $(LOCALIZE_ME_DEST) + +$(MISC)/$(TARGET).$(SRS9NAME).dprr: $(SRC9FILES) + @echo "Making: " $(@:f) + @@-$(RM) $(MISC)/$(TARGET).$(SRS9NAME).dprr + $(COMMAND_ECHO)$(RSC) $(VERBOSITY) $(SRSDEFAULT) $(RSC_SRS_CHARSET) $(RSCFLAGS) -I$(RSCEXTINC) -I$(INCLOCPRJ) -I$(INCLOCAL) -I$(INC) -I$(INCCOM) $(RSCDEFS) $(RSCUPDVERDEF) -fp={$(SRS)/$(SRS9NAME).srs} -fo=$@ -p=$(TARGET) $(SRC9FILES) + +.IF "$(WITH_LANG)"!="" + +$(foreach,i,$(SRC9FILES) $(COMMONMISC)/$(TARGET)/$i) : $$(@:f) $(LOCALIZESDF) + @echo "Making: " $(@:f) + $(COMMAND_ECHO)-$(MKDIR) $(@:d) + $(COMMAND_ECHO)-$(RM) $@ + $(COMMAND_ECHO)-$(MKDIRHIER) $(COMMONMISC)$/$(PRJNAME) + $(COMMAND_ECHO)$(WRAPCMD) $(TRANSEX) -p $(PRJNAME) -i $(@:f) -o $(@).$(INPATH) -m $(LOCALIZESDF) -l all + $(COMMAND_ECHO)$(RENAME) $@.$(INPATH) $@ + $(COMMAND_ECHO)-$(RM) $@.$(INPATH) + +$(SRS)/$(SRS9NAME).srs: $(LOCALIZE_ME_DEST) + +$(SRS)/$(SRS9NAME).srs: $(foreach,i,$(SRC9FILES) $(COMMONMISC)/$(TARGET)/$i) +.ELSE # "$(WITH_LANG)"!="" +$(SRS)/$(SRS9NAME).srs: $(SRC9FILES) +.ENDIF # "$(WITH_LANG)"!="" + @echo "Making: " $(@:f) + $(COMMAND_ECHO)$(RSC) -presponse $(VERBOSITY) @$(mktmp \ + $(SRSDEFAULT) $(RSC_SRS_CHARSET) $(RSCFLAGS) -I$(RSCEXTINC) \ + $(INCLUDE) $(RSCDEFS) $(RSCUPDVERDEF) \ + -fp=$@.$(INPATH) \ + $< \ + ) + $(COMMAND_ECHO)-$(RM) $@ + $(COMMAND_ECHO)$(RENAME) $@.$(INPATH) $@ + $(COMMAND_ECHO)-$(RM) $@.$(INPATH) + +.ENDIF # "$(SRS9NAME)"!="" + +# unroll begin + +.IF "$(SRS10NAME)"!="" + +$(MISC)/$(TARGET).$(SRS10NAME).dprr: $(LOCALIZE_ME_DEST) + +$(MISC)/$(TARGET).$(SRS10NAME).dprr: $(SRC10FILES) + @echo "Making: " $(@:f) + @@-$(RM) $(MISC)/$(TARGET).$(SRS10NAME).dprr + $(COMMAND_ECHO)$(RSC) $(VERBOSITY) $(SRSDEFAULT) $(RSC_SRS_CHARSET) $(RSCFLAGS) -I$(RSCEXTINC) -I$(INCLOCPRJ) -I$(INCLOCAL) -I$(INC) -I$(INCCOM) $(RSCDEFS) $(RSCUPDVERDEF) -fp={$(SRS)/$(SRS10NAME).srs} -fo=$@ -p=$(TARGET) $(SRC10FILES) + +.IF "$(WITH_LANG)"!="" + +$(foreach,i,$(SRC10FILES) $(COMMONMISC)/$(TARGET)/$i) : $$(@:f) $(LOCALIZESDF) + @echo "Making: " $(@:f) + $(COMMAND_ECHO)-$(MKDIR) $(@:d) + $(COMMAND_ECHO)-$(RM) $@ + $(COMMAND_ECHO)-$(MKDIRHIER) $(COMMONMISC)$/$(PRJNAME) + $(COMMAND_ECHO)$(WRAPCMD) $(TRANSEX) -p $(PRJNAME) -i $(@:f) -o $(@).$(INPATH) -m $(LOCALIZESDF) -l all + $(COMMAND_ECHO)$(RENAME) $@.$(INPATH) $@ + $(COMMAND_ECHO)-$(RM) $@.$(INPATH) + +$(SRS)/$(SRS10NAME).srs: $(LOCALIZE_ME_DEST) + +$(SRS)/$(SRS10NAME).srs: $(foreach,i,$(SRC10FILES) $(COMMONMISC)/$(TARGET)/$i) +.ELSE # "$(WITH_LANG)"!="" +$(SRS)/$(SRS10NAME).srs: $(SRC10FILES) +.ENDIF # "$(WITH_LANG)"!="" + @echo "Making: " $(@:f) + $(COMMAND_ECHO)$(RSC) -presponse $(VERBOSITY) @$(mktmp \ + $(SRSDEFAULT) $(RSC_SRS_CHARSET) $(RSCFLAGS) -I$(RSCEXTINC) \ + $(INCLUDE) $(RSCDEFS) $(RSCUPDVERDEF) \ + -fp=$@.$(INPATH) \ + $< \ + ) + $(COMMAND_ECHO)-$(RM) $@ + $(COMMAND_ECHO)$(RENAME) $@.$(INPATH) $@ + $(COMMAND_ECHO)-$(RM) $@.$(INPATH) + +.ENDIF # "$(SRS10NAME)"!="" + diff --git a/solenv/inc/_tg_zip.mk b/solenv/inc/_tg_zip.mk new file mode 100644 index 000000000000..c60480bc5288 --- /dev/null +++ b/solenv/inc/_tg_zip.mk @@ -0,0 +1,1310 @@ +# unroll begin + +.IF "$(GUI)"=="WNT" +command_seperator=&& +#command_seperator=^ +avoid_cvs_dir=-x "*CVS*" -x "*.svn*" +.ELSE +command_seperator=; +avoid_cvs_dir=-x "*CVS*" -x "*.svn*" + +.ENDIF + +.IF "$(ZIP1TARGET)"!="" + +.IF "$(ZIP1STRIPLANGUAGETAGS)" != "" +CALLXSLTPROC:=$(XSLTPROC) +.EXPORT: CALLXSLTPROC +.ENDIF + +ZIP1EXT*=.zip +.IF "$(common_build_zip)"!="" +.IF "$(ZIP1LIST:s/LANGDIR//)" == "$(ZIP1LIST)" +ZIP1TARGETN=$(COMMONBIN)/$(ZIP1TARGET)$(ZIP1EXT) +.ELSE +ZIP1TARGETN=$(foreach,i,$(zip1alllangiso) $(COMMONBIN)/$(ZIP1TARGET)_$i$(ZIP1EXT) ) +.ENDIF +.ELSE # "$(common_build_zip)"!="" +.IF "$(ZIP1LIST:s/LANGDIR//)" == "$(ZIP1LIST)" +ZIP1TARGETN=$(BIN)/$(ZIP1TARGET)$(ZIP1EXT) +.ELSE +ZIP1TARGETN=$(foreach,i,$(zip1alllangiso) $(BIN)/$(ZIP1TARGET)_$i$(ZIP1EXT) ) +.ENDIF +.ENDIF # "$(common_build_zip)"!="" +ZIP1DEPFILE=$(subst,$(COMMON_OUTDIR),$(OUTPATH) $(subst,/bin/,/misc/ $(ZIP1TARGETN:s/$(ZIP1EXT)/.dpzz/))) +ZIPDEPFILES+=$(ZIP1DEPFILE) + +ZIP1DIR*=$(ZIPDIR) +ZIP1FLAGS*=$(ZIPFLAGS) +.IF "$(zip1generatedlangs)"!="" +zip1langdirs*=$(alllangiso) +.ELSE # "$(zip1generatedlangs)"!="" +zip1langdirs:=$(shell @-test -d {$(subst,/$(LANGDIR), $(null,$(ZIP1DIR) . $(ZIP1DIR)))}/ && find {$(subst,/$(LANGDIR), $(null,$(ZIP1DIR) . $(ZIP1DIR)))}/ -type d ! -name CVS ! -name ".svn" ! -name "." | sed "s/\.\/\///" | sed "s/\.\///" ) +.ENDIF # "$(zip1generatedlangs)"!="" +.IF "$(ZIP1FORCEALLLANG)"!="" +zip1alllangiso:=$(foreach,i,$(completelangiso) $(foreach,j,$(zip1langdirs) $(eq,$i,$j $i $(NULL)))) +.ELSE # "$(ZIP1ALLLANG)" != "" +zip1alllangiso*:=$(foreach,i,$(alllangiso) $(foreach,j,$(zip1langdirs) $(eq,$i,$j $i $(NULL)))) +.ENDIF # "$(ZIP1ALLLANG)" != "" +.ENDIF # "$(ZIP1TARGET)"!="" + +.IF "$(ZIP1TARGETN)"!="" + +ZIP1TMP:=$(mktmp iii) + +$(MISC)/$(TARGET).$(PWD:f).$(ZIP1TARGET).dpzz : $(ZIP1TARGETN) + +.IF "$(common_build_zip)"!="" +ZIP1HELPVAR=$(COMMONBIN)/$(ZIP1TARGET) +.ELSE # "$(common_build_zip)"!="" +ZIP1HELPVAR=$(BIN)/$(ZIP1TARGET) +.ENDIF # "$(common_build_zip)"!="" + +$(ZIP1DEPFILE) : + @echo # > $(MISC)/$(@:f) +.IF "$(common_build_zip)"!="" +.IF "$(ZIP1DIR)" != "" + $(COMMAND_ECHO)-$(MKDIRHIER) $(ZIP1DIR) + $(COMMAND_ECHO)$(CDD) $(subst,LANGDIR,. $(subst,/LANGDIR, $(ZIP1DIR))) $(command_seperator) $(ZIPDEP) $(ZIP1FLAGS) -prefix $(subst,LANGDIR,. $(subst,/LANGDIR, $(ZIP1DIR)))/ $(subst,$(OUTPATH),$(COMMON_OUTDIR) $(subst,/misc/,/bin/ $(@:s/.dpzz/$(ZIP1EXT)/))) $(foreach,j,$(ZIP1LIST) "{$(subst,LANGDIR,{$(subst,$(ZIP1TARGET)_, $(@:f:b))} $j )}") $(avoid_cvs_dir) >> $(PWD)/$(PRJ)/$(ROUT)/misc/$(@:f) +.ELSE # "$(ZIP1DIR)" != "" + $(COMMAND_ECHO)-$(ZIPDEP) $(ZIP1FLAGS) $(subst,$(OUTPATH),$(COMMON_OUTDIR) $(subst,/misc/,/bin/ $(@:s/.dpzz/$(ZIP1EXT)/))) $(foreach,j,$(ZIP1LIST) "{$(subst,LANGDIR,{$(subst,$(ZIP1TARGET)_, $(@:f:b))} $j )}") $(avoid_cvs_dir) >> $(MISC)/$(@:f) +.ENDIF # "$(ZIP1DIR)" != "" +.ELSE # "$(common_build_zip)"!="" +.IF "$(ZIP1DIR)" != "" + $(COMMAND_ECHO)-$(MKDIRHIER) $(ZIP1DIR) + $(COMMAND_ECHO)$(CDD) $(subst,LANGDIR,. $(subst,/LANGDIR, $(ZIP1DIR))) $(command_seperator) $(ZIPDEP) $(ZIP1FLAGS) -prefix $(subst,LANGDIR,. $(subst,/LANGDIR, $(ZIP1DIR)))/ $(subst,/misc/,/bin/ $(@:s/.dpzz/$(ZIP1EXT)/)) $(foreach,j,$(ZIP1LIST) "{$(subst,LANGDIR,{$(subst,$(BIN)/$(ZIP1TARGET)_, $(subst,/misc/,/bin/ $(@:db)))} $j )}") $(avoid_cvs_dir) >> $(PWD)/$(PRJ)/$(ROUT)/misc/$(@:f) +.ELSE # "$(ZIP1DIR)" != "" + $(COMMAND_ECHO)-$(ZIPDEP) $(ZIP1FLAGS) $(subst,/misc/,/bin/ $(@:s/.dpzz/$(ZIP1EXT)/)) $(foreach,j,$(ZIP1LIST) "{$(subst,LANGDIR,{$(subst,$(BIN)/$(ZIP1TARGET)_, $(subst,/misc/,/bin/ $(@:db)))} $j )}") $(avoid_cvs_dir) >> $(MISC)/$(@:f) +.ENDIF # "$(ZIP1DIR)" != "" +.ENDIF # "$(common_build_zip)"!="" + @echo $(@:n:s#\#/#) : makefile.mk >> $(MISC)/$(@:f) + + +$(ZIP1TARGETN) : delzip $(ZIP1DEPS) + @echo "Making: " $(@:f) + @@$(!eq,$?,$(?:s/delzip/zzz/) -$(RM) echo) $(uniq $@ $(subst,$(COMMON_OUTDIR),$(OUTPATH) $@)) + @$(eq,$?,$(?:s/delzip/zzz/) noop echo ) rebuilding zipfiles + @echo ------------------------------ $(eq,$?,$(?:s/delzip/zzz/) >&$(NULLDEV) ) +.IF "$(common_build_zip)"!="" +.IF "$(ZIP1DIR)" != "" + @@-$(GNUCOPY) -p $@ $(ZIP1TMP).$(ZIP1TARGET){$(subst,$(ZIP1HELPVAR),_ $(@:db))}$(ZIP1EXT) + $(COMMAND_ECHO)-$(CDD) $(subst,LANGDIR,{$(subst,$(ZIP1HELPVAR)_, $(@:db))} $(ZIP1DIR)) $(command_seperator) zip $(ZIP_VERBOSITY) $(ZIP1FLAGS) $(ZIP1TMP).$(ZIP1TARGET){$(subst,$(ZIP1HELPVAR),_ $(@:db))}$(ZIP1EXT) $(subst,LANGDIR_away/, $(ZIP1LIST:s/LANGDIR/LANGDIR_away/)) -x delzip $(avoid_cvs_dir) $(CHECKZIPRESULT) + $(COMMAND_ECHO)$(IFEXIST) $(ZIP1TMP).$(ZIP1TARGET){$(subst,$(ZIP1HELPVAR),_ $(@:db))}$(ZIP1EXT) $(THEN) \ + $(PERL) -w $(SOLARENV)/bin/cleanzip.pl $(ZIP1TMP).$(ZIP1TARGET){$(subst,$(ZIP1HELPVAR),_ $(@:db))}$(ZIP1EXT) \ + $(FI) + $(COMMAND_ECHO)$(COPY) $(ZIP1TMP).$(ZIP1TARGET){$(subst,$(ZIP1HELPVAR),_ $(@:db))}$(ZIP1EXT) $@.$(INPATH) + $(COMMAND_ECHO)$(RM) $(ZIP1TMP).$(ZIP1TARGET){$(subst,$(ZIP1HELPVAR),_ $(@:db))}$(ZIP1EXT) +.ELSE # "$(ZIP1DIR)" != "" + @@-$(GNUCOPY) -p $@ $(subst,$(COMMON_OUTDIR),$(OUTPATH) $@) + $(COMMAND_ECHO)zip $(ZIP_VERBOSITY) $(ZIP1FLAGS) $(subst,$(COMMON_OUTDIR),$(OUTPATH) $@) $(foreach,j,$(ZIP1LIST) $(subst,LANGDIR,{$(subst,$(ZIP1HELPVAR)_, $(@:db))} $j )) -x delzip $(avoid_cvs_dir) $(CHECKZIPRESULT) + $(COMMAND_ECHO)$(IFEXIST) $(subst,$(COMMON_OUTDIR),$(OUTPATH) $@) $(THEN) \ + $(PERL) -w $(SOLARENV)/bin/cleanzip.pl $(subst,$(COMMON_OUTDIR),$(OUTPATH) $@) \ + $(FI) + @@-$(GNUCOPY) -p $(subst,$(COMMON_OUTDIR),$(OUTPATH) $@) $@.$(INPATH) + @-$(RM) $(subst,$(COMMON_OUTDIR),$(OUTPATH) $@) +.ENDIF # "$(ZIP1DIR)" != "" + @@-$(RM) $@ + @$(IFEXIST) $@.$(INPATH) $(THEN) $(RENAME:s/+//) $@.$(INPATH) $@ $(FI) +# @$(IFEXIST) $@ $(THEN) $(TOUCH) $@ $(FI) # even if it's not used... +.ELSE # "$(common_build_zip)"!="" +.IF "$(ZIP1DIR)" != "" + @@-$(GNUCOPY) -p $@ $(ZIP1TMP).$(ZIP1TARGET){$(subst,$(ZIP1HELPVAR),_ $(@:db))}$(ZIP1EXT) + $(COMMAND_ECHO)-$(CDD) $(subst,LANGDIR,{$(subst,$(ZIP1HELPVAR)_, $(@:db))} $(ZIP1DIR)) $(command_seperator) zip $(ZIP_VERBOSITY) $(ZIP1FLAGS) $(ZIP1TMP).$(ZIP1TARGET){$(subst,$(ZIP1HELPVAR),_ $(@:db))}$(ZIP1EXT) $(subst,LANGDIR_away/, $(ZIP1LIST:s/LANGDIR/LANGDIR_away/)) -x delzip $(avoid_cvs_dir) $(CHECKZIPRESULT) + $(COMMAND_ECHO)$(IFEXIST) $(ZIP1TMP).$(ZIP1TARGET){$(subst,$(ZIP1HELPVAR),_ $(@:db))}$(ZIP1EXT) $(THEN) \ + $(PERL) -w $(SOLARENV)/bin/cleanzip.pl $(ZIP1TMP).$(ZIP1TARGET){$(subst,$(ZIP1HELPVAR),_ $(@:db))}$(ZIP1EXT) \ + $(FI) + $(COMMAND_ECHO)$(COPY) $(ZIP1TMP).$(ZIP1TARGET){$(subst,$(ZIP1HELPVAR),_ $(@:db))}$(ZIP1EXT) $@ + $(COMMAND_ECHO)$(RM) $(ZIP1TMP).$(ZIP1TARGET){$(subst,$(ZIP1HELPVAR),_ $(@:db))}$(ZIP1EXT) +.ELSE # "$(ZIP1DIR)" != "" + $(COMMAND_ECHO)zip $(ZIP_VERBOSITY) $(ZIP1FLAGS) $@ $(foreach,j,$(ZIP1LIST) $(subst,LANGDIR,{$(subst,$(BIN)/$(ZIP1TARGET)_, $(@:db))} $j )) -x delzip $(avoid_cvs_dir) $(CHECKZIPRESULT) + $(COMMAND_ECHO)$(IFEXIST) $@ $(THEN) \ + $(PERL) -w $(SOLARENV)/bin/cleanzip.pl $@ \ + $(FI) +.IF "$(ZIP1STRIPLANGUAGETAGS)" != "" + $(COMMAND_ECHO)$(IFEXIST) $@ $(THEN) \ + $(SOLARENV)/bin/striplanguagetags.sh $@ \ + $(FI) +.ENDIF +.ENDIF # "$(ZIP1DIR)" != "" +.ENDIF # "$(common_build_zip)"!="" +.ENDIF + +# unroll begin + +.IF "$(GUI)"=="WNT" +command_seperator=&& +#command_seperator=^ +avoid_cvs_dir=-x "*CVS*" -x "*.svn*" +.ELSE +command_seperator=; +avoid_cvs_dir=-x "*CVS*" -x "*.svn*" + +.ENDIF + +.IF "$(ZIP2TARGET)"!="" + +.IF "$(ZIP2STRIPLANGUAGETAGS)" != "" +CALLXSLTPROC:=$(XSLTPROC) +.EXPORT: CALLXSLTPROC +.ENDIF + +ZIP2EXT*=.zip +.IF "$(common_build_zip)"!="" +.IF "$(ZIP2LIST:s/LANGDIR//)" == "$(ZIP2LIST)" +ZIP2TARGETN=$(COMMONBIN)/$(ZIP2TARGET)$(ZIP2EXT) +.ELSE +ZIP2TARGETN=$(foreach,i,$(zip2alllangiso) $(COMMONBIN)/$(ZIP2TARGET)_$i$(ZIP2EXT) ) +.ENDIF +.ELSE # "$(common_build_zip)"!="" +.IF "$(ZIP2LIST:s/LANGDIR//)" == "$(ZIP2LIST)" +ZIP2TARGETN=$(BIN)/$(ZIP2TARGET)$(ZIP2EXT) +.ELSE +ZIP2TARGETN=$(foreach,i,$(zip2alllangiso) $(BIN)/$(ZIP2TARGET)_$i$(ZIP2EXT) ) +.ENDIF +.ENDIF # "$(common_build_zip)"!="" +ZIP2DEPFILE=$(subst,$(COMMON_OUTDIR),$(OUTPATH) $(subst,/bin/,/misc/ $(ZIP2TARGETN:s/$(ZIP2EXT)/.dpzz/))) +ZIPDEPFILES+=$(ZIP2DEPFILE) + +ZIP2DIR*=$(ZIPDIR) +ZIP2FLAGS*=$(ZIPFLAGS) +.IF "$(zip2generatedlangs)"!="" +zip2langdirs*=$(alllangiso) +.ELSE # "$(zip2generatedlangs)"!="" +zip2langdirs:=$(shell @-test -d {$(subst,/$(LANGDIR), $(null,$(ZIP2DIR) . $(ZIP2DIR)))}/ && find {$(subst,/$(LANGDIR), $(null,$(ZIP2DIR) . $(ZIP2DIR)))}/ -type d ! -name CVS ! -name ".svn" ! -name "." | sed "s/\.\/\///" | sed "s/\.\///" ) +.ENDIF # "$(zip2generatedlangs)"!="" +.IF "$(ZIP2FORCEALLLANG)"!="" +zip2alllangiso:=$(foreach,i,$(completelangiso) $(foreach,j,$(zip2langdirs) $(eq,$i,$j $i $(NULL)))) +.ELSE # "$(ZIP2ALLLANG)" != "" +zip2alllangiso*:=$(foreach,i,$(alllangiso) $(foreach,j,$(zip2langdirs) $(eq,$i,$j $i $(NULL)))) +.ENDIF # "$(ZIP2ALLLANG)" != "" +.ENDIF # "$(ZIP2TARGET)"!="" + +.IF "$(ZIP2TARGETN)"!="" + +ZIP2TMP:=$(mktmp iii) + +$(MISC)/$(TARGET).$(PWD:f).$(ZIP2TARGET).dpzz : $(ZIP2TARGETN) + +.IF "$(common_build_zip)"!="" +ZIP2HELPVAR=$(COMMONBIN)/$(ZIP2TARGET) +.ELSE # "$(common_build_zip)"!="" +ZIP2HELPVAR=$(BIN)/$(ZIP2TARGET) +.ENDIF # "$(common_build_zip)"!="" + +$(ZIP2DEPFILE) : + @echo # > $(MISC)/$(@:f) +.IF "$(common_build_zip)"!="" +.IF "$(ZIP2DIR)" != "" + $(COMMAND_ECHO)-$(MKDIRHIER) $(ZIP2DIR) + $(COMMAND_ECHO)$(CDD) $(subst,LANGDIR,. $(subst,/LANGDIR, $(ZIP2DIR))) $(command_seperator) $(ZIPDEP) $(ZIP2FLAGS) -prefix $(subst,LANGDIR,. $(subst,/LANGDIR, $(ZIP2DIR)))/ $(subst,$(OUTPATH),$(COMMON_OUTDIR) $(subst,/misc/,/bin/ $(@:s/.dpzz/$(ZIP2EXT)/))) $(foreach,j,$(ZIP2LIST) "{$(subst,LANGDIR,{$(subst,$(ZIP2TARGET)_, $(@:f:b))} $j )}") $(avoid_cvs_dir) >> $(PWD)/$(PRJ)/$(ROUT)/misc/$(@:f) +.ELSE # "$(ZIP2DIR)" != "" + $(COMMAND_ECHO)-$(ZIPDEP) $(ZIP2FLAGS) $(subst,$(OUTPATH),$(COMMON_OUTDIR) $(subst,/misc/,/bin/ $(@:s/.dpzz/$(ZIP2EXT)/))) $(foreach,j,$(ZIP2LIST) "{$(subst,LANGDIR,{$(subst,$(ZIP2TARGET)_, $(@:f:b))} $j )}") $(avoid_cvs_dir) >> $(MISC)/$(@:f) +.ENDIF # "$(ZIP2DIR)" != "" +.ELSE # "$(common_build_zip)"!="" +.IF "$(ZIP2DIR)" != "" + $(COMMAND_ECHO)-$(MKDIRHIER) $(ZIP2DIR) + $(COMMAND_ECHO)$(CDD) $(subst,LANGDIR,. $(subst,/LANGDIR, $(ZIP2DIR))) $(command_seperator) $(ZIPDEP) $(ZIP2FLAGS) -prefix $(subst,LANGDIR,. $(subst,/LANGDIR, $(ZIP2DIR)))/ $(subst,/misc/,/bin/ $(@:s/.dpzz/$(ZIP2EXT)/)) $(foreach,j,$(ZIP2LIST) "{$(subst,LANGDIR,{$(subst,$(BIN)/$(ZIP2TARGET)_, $(subst,/misc/,/bin/ $(@:db)))} $j )}") $(avoid_cvs_dir) >> $(PWD)/$(PRJ)/$(ROUT)/misc/$(@:f) +.ELSE # "$(ZIP2DIR)" != "" + $(COMMAND_ECHO)-$(ZIPDEP) $(ZIP2FLAGS) $(subst,/misc/,/bin/ $(@:s/.dpzz/$(ZIP2EXT)/)) $(foreach,j,$(ZIP2LIST) "{$(subst,LANGDIR,{$(subst,$(BIN)/$(ZIP2TARGET)_, $(subst,/misc/,/bin/ $(@:db)))} $j )}") $(avoid_cvs_dir) >> $(MISC)/$(@:f) +.ENDIF # "$(ZIP2DIR)" != "" +.ENDIF # "$(common_build_zip)"!="" + @echo $(@:n:s#\#/#) : makefile.mk >> $(MISC)/$(@:f) + + +$(ZIP2TARGETN) : delzip $(ZIP2DEPS) + @echo "Making: " $(@:f) + @@$(!eq,$?,$(?:s/delzip/zzz/) -$(RM) echo) $(uniq $@ $(subst,$(COMMON_OUTDIR),$(OUTPATH) $@)) + @$(eq,$?,$(?:s/delzip/zzz/) noop echo ) rebuilding zipfiles + @echo ------------------------------ $(eq,$?,$(?:s/delzip/zzz/) >&$(NULLDEV) ) +.IF "$(common_build_zip)"!="" +.IF "$(ZIP2DIR)" != "" + @@-$(GNUCOPY) -p $@ $(ZIP2TMP).$(ZIP2TARGET){$(subst,$(ZIP2HELPVAR),_ $(@:db))}$(ZIP2EXT) + $(COMMAND_ECHO)-$(CDD) $(subst,LANGDIR,{$(subst,$(ZIP2HELPVAR)_, $(@:db))} $(ZIP2DIR)) $(command_seperator) zip $(ZIP_VERBOSITY) $(ZIP2FLAGS) $(ZIP2TMP).$(ZIP2TARGET){$(subst,$(ZIP2HELPVAR),_ $(@:db))}$(ZIP2EXT) $(subst,LANGDIR_away/, $(ZIP2LIST:s/LANGDIR/LANGDIR_away/)) -x delzip $(avoid_cvs_dir) $(CHECKZIPRESULT) + $(COMMAND_ECHO)$(IFEXIST) $(ZIP2TMP).$(ZIP2TARGET){$(subst,$(ZIP2HELPVAR),_ $(@:db))}$(ZIP2EXT) $(THEN) \ + $(PERL) -w $(SOLARENV)/bin/cleanzip.pl $(ZIP2TMP).$(ZIP2TARGET){$(subst,$(ZIP2HELPVAR),_ $(@:db))}$(ZIP2EXT) \ + $(FI) + $(COMMAND_ECHO)$(COPY) $(ZIP2TMP).$(ZIP2TARGET){$(subst,$(ZIP2HELPVAR),_ $(@:db))}$(ZIP2EXT) $@.$(INPATH) + $(COMMAND_ECHO)$(RM) $(ZIP2TMP).$(ZIP2TARGET){$(subst,$(ZIP2HELPVAR),_ $(@:db))}$(ZIP2EXT) +.ELSE # "$(ZIP2DIR)" != "" + @@-$(GNUCOPY) -p $@ $(subst,$(COMMON_OUTDIR),$(OUTPATH) $@) + $(COMMAND_ECHO)zip $(ZIP_VERBOSITY) $(ZIP2FLAGS) $(subst,$(COMMON_OUTDIR),$(OUTPATH) $@) $(foreach,j,$(ZIP2LIST) $(subst,LANGDIR,{$(subst,$(ZIP2HELPVAR)_, $(@:db))} $j )) -x delzip $(avoid_cvs_dir) $(CHECKZIPRESULT) + $(COMMAND_ECHO)$(IFEXIST) $(subst,$(COMMON_OUTDIR),$(OUTPATH) $@) $(THEN) \ + $(PERL) -w $(SOLARENV)/bin/cleanzip.pl $(subst,$(COMMON_OUTDIR),$(OUTPATH) $@) \ + $(FI) + @@-$(GNUCOPY) -p $(subst,$(COMMON_OUTDIR),$(OUTPATH) $@) $@.$(INPATH) + @-$(RM) $(subst,$(COMMON_OUTDIR),$(OUTPATH) $@) +.ENDIF # "$(ZIP2DIR)" != "" + @@-$(RM) $@ + @$(IFEXIST) $@.$(INPATH) $(THEN) $(RENAME:s/+//) $@.$(INPATH) $@ $(FI) +# @$(IFEXIST) $@ $(THEN) $(TOUCH) $@ $(FI) # even if it's not used... +.ELSE # "$(common_build_zip)"!="" +.IF "$(ZIP2DIR)" != "" + @@-$(GNUCOPY) -p $@ $(ZIP2TMP).$(ZIP2TARGET){$(subst,$(ZIP2HELPVAR),_ $(@:db))}$(ZIP2EXT) + $(COMMAND_ECHO)-$(CDD) $(subst,LANGDIR,{$(subst,$(ZIP2HELPVAR)_, $(@:db))} $(ZIP2DIR)) $(command_seperator) zip $(ZIP_VERBOSITY) $(ZIP2FLAGS) $(ZIP2TMP).$(ZIP2TARGET){$(subst,$(ZIP2HELPVAR),_ $(@:db))}$(ZIP2EXT) $(subst,LANGDIR_away/, $(ZIP2LIST:s/LANGDIR/LANGDIR_away/)) -x delzip $(avoid_cvs_dir) $(CHECKZIPRESULT) + $(COMMAND_ECHO)$(IFEXIST) $(ZIP2TMP).$(ZIP2TARGET){$(subst,$(ZIP2HELPVAR),_ $(@:db))}$(ZIP2EXT) $(THEN) \ + $(PERL) -w $(SOLARENV)/bin/cleanzip.pl $(ZIP2TMP).$(ZIP2TARGET){$(subst,$(ZIP2HELPVAR),_ $(@:db))}$(ZIP2EXT) \ + $(FI) + $(COMMAND_ECHO)$(COPY) $(ZIP2TMP).$(ZIP2TARGET){$(subst,$(ZIP2HELPVAR),_ $(@:db))}$(ZIP2EXT) $@ + $(COMMAND_ECHO)$(RM) $(ZIP2TMP).$(ZIP2TARGET){$(subst,$(ZIP2HELPVAR),_ $(@:db))}$(ZIP2EXT) +.ELSE # "$(ZIP2DIR)" != "" + $(COMMAND_ECHO)zip $(ZIP_VERBOSITY) $(ZIP2FLAGS) $@ $(foreach,j,$(ZIP2LIST) $(subst,LANGDIR,{$(subst,$(BIN)/$(ZIP2TARGET)_, $(@:db))} $j )) -x delzip $(avoid_cvs_dir) $(CHECKZIPRESULT) + $(COMMAND_ECHO)$(IFEXIST) $@ $(THEN) \ + $(PERL) -w $(SOLARENV)/bin/cleanzip.pl $@ \ + $(FI) +.IF "$(ZIP2STRIPLANGUAGETAGS)" != "" + $(COMMAND_ECHO)$(IFEXIST) $@ $(THEN) \ + $(SOLARENV)/bin/striplanguagetags.sh $@ \ + $(FI) +.ENDIF +.ENDIF # "$(ZIP2DIR)" != "" +.ENDIF # "$(common_build_zip)"!="" +.ENDIF + +# unroll begin + +.IF "$(GUI)"=="WNT" +command_seperator=&& +#command_seperator=^ +avoid_cvs_dir=-x "*CVS*" -x "*.svn*" +.ELSE +command_seperator=; +avoid_cvs_dir=-x "*CVS*" -x "*.svn*" + +.ENDIF + +.IF "$(ZIP3TARGET)"!="" + +.IF "$(ZIP3STRIPLANGUAGETAGS)" != "" +CALLXSLTPROC:=$(XSLTPROC) +.EXPORT: CALLXSLTPROC +.ENDIF + +ZIP3EXT*=.zip +.IF "$(common_build_zip)"!="" +.IF "$(ZIP3LIST:s/LANGDIR//)" == "$(ZIP3LIST)" +ZIP3TARGETN=$(COMMONBIN)/$(ZIP3TARGET)$(ZIP3EXT) +.ELSE +ZIP3TARGETN=$(foreach,i,$(zip3alllangiso) $(COMMONBIN)/$(ZIP3TARGET)_$i$(ZIP3EXT) ) +.ENDIF +.ELSE # "$(common_build_zip)"!="" +.IF "$(ZIP3LIST:s/LANGDIR//)" == "$(ZIP3LIST)" +ZIP3TARGETN=$(BIN)/$(ZIP3TARGET)$(ZIP3EXT) +.ELSE +ZIP3TARGETN=$(foreach,i,$(zip3alllangiso) $(BIN)/$(ZIP3TARGET)_$i$(ZIP3EXT) ) +.ENDIF +.ENDIF # "$(common_build_zip)"!="" +ZIP3DEPFILE=$(subst,$(COMMON_OUTDIR),$(OUTPATH) $(subst,/bin/,/misc/ $(ZIP3TARGETN:s/$(ZIP3EXT)/.dpzz/))) +ZIPDEPFILES+=$(ZIP3DEPFILE) + +ZIP3DIR*=$(ZIPDIR) +ZIP3FLAGS*=$(ZIPFLAGS) +.IF "$(zip3generatedlangs)"!="" +zip3langdirs*=$(alllangiso) +.ELSE # "$(zip3generatedlangs)"!="" +zip3langdirs:=$(shell @-test -d {$(subst,/$(LANGDIR), $(null,$(ZIP3DIR) . $(ZIP3DIR)))}/ && find {$(subst,/$(LANGDIR), $(null,$(ZIP3DIR) . $(ZIP3DIR)))}/ -type d ! -name CVS ! -name ".svn" ! -name "." | sed "s/\.\/\///" | sed "s/\.\///" ) +.ENDIF # "$(zip3generatedlangs)"!="" +.IF "$(ZIP3FORCEALLLANG)"!="" +zip3alllangiso:=$(foreach,i,$(completelangiso) $(foreach,j,$(zip3langdirs) $(eq,$i,$j $i $(NULL)))) +.ELSE # "$(ZIP3ALLLANG)" != "" +zip3alllangiso*:=$(foreach,i,$(alllangiso) $(foreach,j,$(zip3langdirs) $(eq,$i,$j $i $(NULL)))) +.ENDIF # "$(ZIP3ALLLANG)" != "" +.ENDIF # "$(ZIP3TARGET)"!="" + +.IF "$(ZIP3TARGETN)"!="" + +ZIP3TMP:=$(mktmp iii) + +$(MISC)/$(TARGET).$(PWD:f).$(ZIP3TARGET).dpzz : $(ZIP3TARGETN) + +.IF "$(common_build_zip)"!="" +ZIP3HELPVAR=$(COMMONBIN)/$(ZIP3TARGET) +.ELSE # "$(common_build_zip)"!="" +ZIP3HELPVAR=$(BIN)/$(ZIP3TARGET) +.ENDIF # "$(common_build_zip)"!="" + +$(ZIP3DEPFILE) : + @echo # > $(MISC)/$(@:f) +.IF "$(common_build_zip)"!="" +.IF "$(ZIP3DIR)" != "" + $(COMMAND_ECHO)-$(MKDIRHIER) $(ZIP3DIR) + $(COMMAND_ECHO)$(CDD) $(subst,LANGDIR,. $(subst,/LANGDIR, $(ZIP3DIR))) $(command_seperator) $(ZIPDEP) $(ZIP3FLAGS) -prefix $(subst,LANGDIR,. $(subst,/LANGDIR, $(ZIP3DIR)))/ $(subst,$(OUTPATH),$(COMMON_OUTDIR) $(subst,/misc/,/bin/ $(@:s/.dpzz/$(ZIP3EXT)/))) $(foreach,j,$(ZIP3LIST) "{$(subst,LANGDIR,{$(subst,$(ZIP3TARGET)_, $(@:f:b))} $j )}") $(avoid_cvs_dir) >> $(PWD)/$(PRJ)/$(ROUT)/misc/$(@:f) +.ELSE # "$(ZIP3DIR)" != "" + $(COMMAND_ECHO)-$(ZIPDEP) $(ZIP3FLAGS) $(subst,$(OUTPATH),$(COMMON_OUTDIR) $(subst,/misc/,/bin/ $(@:s/.dpzz/$(ZIP3EXT)/))) $(foreach,j,$(ZIP3LIST) "{$(subst,LANGDIR,{$(subst,$(ZIP3TARGET)_, $(@:f:b))} $j )}") $(avoid_cvs_dir) >> $(MISC)/$(@:f) +.ENDIF # "$(ZIP3DIR)" != "" +.ELSE # "$(common_build_zip)"!="" +.IF "$(ZIP3DIR)" != "" + $(COMMAND_ECHO)-$(MKDIRHIER) $(ZIP3DIR) + $(COMMAND_ECHO)$(CDD) $(subst,LANGDIR,. $(subst,/LANGDIR, $(ZIP3DIR))) $(command_seperator) $(ZIPDEP) $(ZIP3FLAGS) -prefix $(subst,LANGDIR,. $(subst,/LANGDIR, $(ZIP3DIR)))/ $(subst,/misc/,/bin/ $(@:s/.dpzz/$(ZIP3EXT)/)) $(foreach,j,$(ZIP3LIST) "{$(subst,LANGDIR,{$(subst,$(BIN)/$(ZIP3TARGET)_, $(subst,/misc/,/bin/ $(@:db)))} $j )}") $(avoid_cvs_dir) >> $(PWD)/$(PRJ)/$(ROUT)/misc/$(@:f) +.ELSE # "$(ZIP3DIR)" != "" + $(COMMAND_ECHO)-$(ZIPDEP) $(ZIP3FLAGS) $(subst,/misc/,/bin/ $(@:s/.dpzz/$(ZIP3EXT)/)) $(foreach,j,$(ZIP3LIST) "{$(subst,LANGDIR,{$(subst,$(BIN)/$(ZIP3TARGET)_, $(subst,/misc/,/bin/ $(@:db)))} $j )}") $(avoid_cvs_dir) >> $(MISC)/$(@:f) +.ENDIF # "$(ZIP3DIR)" != "" +.ENDIF # "$(common_build_zip)"!="" + @echo $(@:n:s#\#/#) : makefile.mk >> $(MISC)/$(@:f) + + +$(ZIP3TARGETN) : delzip $(ZIP3DEPS) + @echo "Making: " $(@:f) + @@$(!eq,$?,$(?:s/delzip/zzz/) -$(RM) echo) $(uniq $@ $(subst,$(COMMON_OUTDIR),$(OUTPATH) $@)) + @$(eq,$?,$(?:s/delzip/zzz/) noop echo ) rebuilding zipfiles + @echo ------------------------------ $(eq,$?,$(?:s/delzip/zzz/) >&$(NULLDEV) ) +.IF "$(common_build_zip)"!="" +.IF "$(ZIP3DIR)" != "" + @@-$(GNUCOPY) -p $@ $(ZIP3TMP).$(ZIP3TARGET){$(subst,$(ZIP3HELPVAR),_ $(@:db))}$(ZIP3EXT) + $(COMMAND_ECHO)-$(CDD) $(subst,LANGDIR,{$(subst,$(ZIP3HELPVAR)_, $(@:db))} $(ZIP3DIR)) $(command_seperator) zip $(ZIP_VERBOSITY) $(ZIP3FLAGS) $(ZIP3TMP).$(ZIP3TARGET){$(subst,$(ZIP3HELPVAR),_ $(@:db))}$(ZIP3EXT) $(subst,LANGDIR_away/, $(ZIP3LIST:s/LANGDIR/LANGDIR_away/)) -x delzip $(avoid_cvs_dir) $(CHECKZIPRESULT) + $(COMMAND_ECHO)$(IFEXIST) $(ZIP3TMP).$(ZIP3TARGET){$(subst,$(ZIP3HELPVAR),_ $(@:db))}$(ZIP3EXT) $(THEN) \ + $(PERL) -w $(SOLARENV)/bin/cleanzip.pl $(ZIP3TMP).$(ZIP3TARGET){$(subst,$(ZIP3HELPVAR),_ $(@:db))}$(ZIP3EXT) \ + $(FI) + $(COMMAND_ECHO)$(COPY) $(ZIP3TMP).$(ZIP3TARGET){$(subst,$(ZIP3HELPVAR),_ $(@:db))}$(ZIP3EXT) $@.$(INPATH) + $(COMMAND_ECHO)$(RM) $(ZIP3TMP).$(ZIP3TARGET){$(subst,$(ZIP3HELPVAR),_ $(@:db))}$(ZIP3EXT) +.ELSE # "$(ZIP3DIR)" != "" + @@-$(GNUCOPY) -p $@ $(subst,$(COMMON_OUTDIR),$(OUTPATH) $@) + $(COMMAND_ECHO)zip $(ZIP_VERBOSITY) $(ZIP3FLAGS) $(subst,$(COMMON_OUTDIR),$(OUTPATH) $@) $(foreach,j,$(ZIP3LIST) $(subst,LANGDIR,{$(subst,$(ZIP3HELPVAR)_, $(@:db))} $j )) -x delzip $(avoid_cvs_dir) $(CHECKZIPRESULT) + $(COMMAND_ECHO)$(IFEXIST) $(subst,$(COMMON_OUTDIR),$(OUTPATH) $@) $(THEN) \ + $(PERL) -w $(SOLARENV)/bin/cleanzip.pl $(subst,$(COMMON_OUTDIR),$(OUTPATH) $@) \ + $(FI) + @@-$(GNUCOPY) -p $(subst,$(COMMON_OUTDIR),$(OUTPATH) $@) $@.$(INPATH) + @-$(RM) $(subst,$(COMMON_OUTDIR),$(OUTPATH) $@) +.ENDIF # "$(ZIP3DIR)" != "" + @@-$(RM) $@ + @$(IFEXIST) $@.$(INPATH) $(THEN) $(RENAME:s/+//) $@.$(INPATH) $@ $(FI) +# @$(IFEXIST) $@ $(THEN) $(TOUCH) $@ $(FI) # even if it's not used... +.ELSE # "$(common_build_zip)"!="" +.IF "$(ZIP3DIR)" != "" + @@-$(GNUCOPY) -p $@ $(ZIP3TMP).$(ZIP3TARGET){$(subst,$(ZIP3HELPVAR),_ $(@:db))}$(ZIP3EXT) + $(COMMAND_ECHO)-$(CDD) $(subst,LANGDIR,{$(subst,$(ZIP3HELPVAR)_, $(@:db))} $(ZIP3DIR)) $(command_seperator) zip $(ZIP_VERBOSITY) $(ZIP3FLAGS) $(ZIP3TMP).$(ZIP3TARGET){$(subst,$(ZIP3HELPVAR),_ $(@:db))}$(ZIP3EXT) $(subst,LANGDIR_away/, $(ZIP3LIST:s/LANGDIR/LANGDIR_away/)) -x delzip $(avoid_cvs_dir) $(CHECKZIPRESULT) + $(COMMAND_ECHO)$(IFEXIST) $(ZIP3TMP).$(ZIP3TARGET){$(subst,$(ZIP3HELPVAR),_ $(@:db))}$(ZIP3EXT) $(THEN) \ + $(PERL) -w $(SOLARENV)/bin/cleanzip.pl $(ZIP3TMP).$(ZIP3TARGET){$(subst,$(ZIP3HELPVAR),_ $(@:db))}$(ZIP3EXT) \ + $(FI) + $(COMMAND_ECHO)$(COPY) $(ZIP3TMP).$(ZIP3TARGET){$(subst,$(ZIP3HELPVAR),_ $(@:db))}$(ZIP3EXT) $@ + $(COMMAND_ECHO)$(RM) $(ZIP3TMP).$(ZIP3TARGET){$(subst,$(ZIP3HELPVAR),_ $(@:db))}$(ZIP3EXT) +.ELSE # "$(ZIP3DIR)" != "" + $(COMMAND_ECHO)zip $(ZIP_VERBOSITY) $(ZIP3FLAGS) $@ $(foreach,j,$(ZIP3LIST) $(subst,LANGDIR,{$(subst,$(BIN)/$(ZIP3TARGET)_, $(@:db))} $j )) -x delzip $(avoid_cvs_dir) $(CHECKZIPRESULT) + $(COMMAND_ECHO)$(IFEXIST) $@ $(THEN) \ + $(PERL) -w $(SOLARENV)/bin/cleanzip.pl $@ \ + $(FI) +.IF "$(ZIP3STRIPLANGUAGETAGS)" != "" + $(COMMAND_ECHO)$(IFEXIST) $@ $(THEN) \ + $(SOLARENV)/bin/striplanguagetags.sh $@ \ + $(FI) +.ENDIF +.ENDIF # "$(ZIP3DIR)" != "" +.ENDIF # "$(common_build_zip)"!="" +.ENDIF + +# unroll begin + +.IF "$(GUI)"=="WNT" +command_seperator=&& +#command_seperator=^ +avoid_cvs_dir=-x "*CVS*" -x "*.svn*" +.ELSE +command_seperator=; +avoid_cvs_dir=-x "*CVS*" -x "*.svn*" + +.ENDIF + +.IF "$(ZIP4TARGET)"!="" + +.IF "$(ZIP4STRIPLANGUAGETAGS)" != "" +CALLXSLTPROC:=$(XSLTPROC) +.EXPORT: CALLXSLTPROC +.ENDIF + +ZIP4EXT*=.zip +.IF "$(common_build_zip)"!="" +.IF "$(ZIP4LIST:s/LANGDIR//)" == "$(ZIP4LIST)" +ZIP4TARGETN=$(COMMONBIN)/$(ZIP4TARGET)$(ZIP4EXT) +.ELSE +ZIP4TARGETN=$(foreach,i,$(zip4alllangiso) $(COMMONBIN)/$(ZIP4TARGET)_$i$(ZIP4EXT) ) +.ENDIF +.ELSE # "$(common_build_zip)"!="" +.IF "$(ZIP4LIST:s/LANGDIR//)" == "$(ZIP4LIST)" +ZIP4TARGETN=$(BIN)/$(ZIP4TARGET)$(ZIP4EXT) +.ELSE +ZIP4TARGETN=$(foreach,i,$(zip4alllangiso) $(BIN)/$(ZIP4TARGET)_$i$(ZIP4EXT) ) +.ENDIF +.ENDIF # "$(common_build_zip)"!="" +ZIP4DEPFILE=$(subst,$(COMMON_OUTDIR),$(OUTPATH) $(subst,/bin/,/misc/ $(ZIP4TARGETN:s/$(ZIP4EXT)/.dpzz/))) +ZIPDEPFILES+=$(ZIP4DEPFILE) + +ZIP4DIR*=$(ZIPDIR) +ZIP4FLAGS*=$(ZIPFLAGS) +.IF "$(zip4generatedlangs)"!="" +zip4langdirs*=$(alllangiso) +.ELSE # "$(zip4generatedlangs)"!="" +zip4langdirs:=$(shell @-test -d {$(subst,/$(LANGDIR), $(null,$(ZIP4DIR) . $(ZIP4DIR)))}/ && find {$(subst,/$(LANGDIR), $(null,$(ZIP4DIR) . $(ZIP4DIR)))}/ -type d ! -name CVS ! -name ".svn" ! -name "." | sed "s/\.\/\///" | sed "s/\.\///" ) +.ENDIF # "$(zip4generatedlangs)"!="" +.IF "$(ZIP4FORCEALLLANG)"!="" +zip4alllangiso:=$(foreach,i,$(completelangiso) $(foreach,j,$(zip4langdirs) $(eq,$i,$j $i $(NULL)))) +.ELSE # "$(ZIP4ALLLANG)" != "" +zip4alllangiso*:=$(foreach,i,$(alllangiso) $(foreach,j,$(zip4langdirs) $(eq,$i,$j $i $(NULL)))) +.ENDIF # "$(ZIP4ALLLANG)" != "" +.ENDIF # "$(ZIP4TARGET)"!="" + +.IF "$(ZIP4TARGETN)"!="" + +ZIP4TMP:=$(mktmp iii) + +$(MISC)/$(TARGET).$(PWD:f).$(ZIP4TARGET).dpzz : $(ZIP4TARGETN) + +.IF "$(common_build_zip)"!="" +ZIP4HELPVAR=$(COMMONBIN)/$(ZIP4TARGET) +.ELSE # "$(common_build_zip)"!="" +ZIP4HELPVAR=$(BIN)/$(ZIP4TARGET) +.ENDIF # "$(common_build_zip)"!="" + +$(ZIP4DEPFILE) : + @echo # > $(MISC)/$(@:f) +.IF "$(common_build_zip)"!="" +.IF "$(ZIP4DIR)" != "" + $(COMMAND_ECHO)-$(MKDIRHIER) $(ZIP4DIR) + $(COMMAND_ECHO)$(CDD) $(subst,LANGDIR,. $(subst,/LANGDIR, $(ZIP4DIR))) $(command_seperator) $(ZIPDEP) $(ZIP4FLAGS) -prefix $(subst,LANGDIR,. $(subst,/LANGDIR, $(ZIP4DIR)))/ $(subst,$(OUTPATH),$(COMMON_OUTDIR) $(subst,/misc/,/bin/ $(@:s/.dpzz/$(ZIP4EXT)/))) $(foreach,j,$(ZIP4LIST) "{$(subst,LANGDIR,{$(subst,$(ZIP4TARGET)_, $(@:f:b))} $j )}") $(avoid_cvs_dir) >> $(PWD)/$(PRJ)/$(ROUT)/misc/$(@:f) +.ELSE # "$(ZIP4DIR)" != "" + $(COMMAND_ECHO)-$(ZIPDEP) $(ZIP4FLAGS) $(subst,$(OUTPATH),$(COMMON_OUTDIR) $(subst,/misc/,/bin/ $(@:s/.dpzz/$(ZIP4EXT)/))) $(foreach,j,$(ZIP4LIST) "{$(subst,LANGDIR,{$(subst,$(ZIP4TARGET)_, $(@:f:b))} $j )}") $(avoid_cvs_dir) >> $(MISC)/$(@:f) +.ENDIF # "$(ZIP4DIR)" != "" +.ELSE # "$(common_build_zip)"!="" +.IF "$(ZIP4DIR)" != "" + $(COMMAND_ECHO)-$(MKDIRHIER) $(ZIP4DIR) + $(COMMAND_ECHO)$(CDD) $(subst,LANGDIR,. $(subst,/LANGDIR, $(ZIP4DIR))) $(command_seperator) $(ZIPDEP) $(ZIP4FLAGS) -prefix $(subst,LANGDIR,. $(subst,/LANGDIR, $(ZIP4DIR)))/ $(subst,/misc/,/bin/ $(@:s/.dpzz/$(ZIP4EXT)/)) $(foreach,j,$(ZIP4LIST) "{$(subst,LANGDIR,{$(subst,$(BIN)/$(ZIP4TARGET)_, $(subst,/misc/,/bin/ $(@:db)))} $j )}") $(avoid_cvs_dir) >> $(PWD)/$(PRJ)/$(ROUT)/misc/$(@:f) +.ELSE # "$(ZIP4DIR)" != "" + $(COMMAND_ECHO)-$(ZIPDEP) $(ZIP4FLAGS) $(subst,/misc/,/bin/ $(@:s/.dpzz/$(ZIP4EXT)/)) $(foreach,j,$(ZIP4LIST) "{$(subst,LANGDIR,{$(subst,$(BIN)/$(ZIP4TARGET)_, $(subst,/misc/,/bin/ $(@:db)))} $j )}") $(avoid_cvs_dir) >> $(MISC)/$(@:f) +.ENDIF # "$(ZIP4DIR)" != "" +.ENDIF # "$(common_build_zip)"!="" + @echo $(@:n:s#\#/#) : makefile.mk >> $(MISC)/$(@:f) + + +$(ZIP4TARGETN) : delzip $(ZIP4DEPS) + @echo "Making: " $(@:f) + @@$(!eq,$?,$(?:s/delzip/zzz/) -$(RM) echo) $(uniq $@ $(subst,$(COMMON_OUTDIR),$(OUTPATH) $@)) + @$(eq,$?,$(?:s/delzip/zzz/) noop echo ) rebuilding zipfiles + @echo ------------------------------ $(eq,$?,$(?:s/delzip/zzz/) >&$(NULLDEV) ) +.IF "$(common_build_zip)"!="" +.IF "$(ZIP4DIR)" != "" + @@-$(GNUCOPY) -p $@ $(ZIP4TMP).$(ZIP4TARGET){$(subst,$(ZIP4HELPVAR),_ $(@:db))}$(ZIP4EXT) + $(COMMAND_ECHO)-$(CDD) $(subst,LANGDIR,{$(subst,$(ZIP4HELPVAR)_, $(@:db))} $(ZIP4DIR)) $(command_seperator) zip $(ZIP_VERBOSITY) $(ZIP4FLAGS) $(ZIP4TMP).$(ZIP4TARGET){$(subst,$(ZIP4HELPVAR),_ $(@:db))}$(ZIP4EXT) $(subst,LANGDIR_away/, $(ZIP4LIST:s/LANGDIR/LANGDIR_away/)) -x delzip $(avoid_cvs_dir) $(CHECKZIPRESULT) + $(COMMAND_ECHO)$(IFEXIST) $(ZIP4TMP).$(ZIP4TARGET){$(subst,$(ZIP4HELPVAR),_ $(@:db))}$(ZIP4EXT) $(THEN) \ + $(PERL) -w $(SOLARENV)/bin/cleanzip.pl $(ZIP4TMP).$(ZIP4TARGET){$(subst,$(ZIP4HELPVAR),_ $(@:db))}$(ZIP4EXT) \ + $(FI) + $(COMMAND_ECHO)$(COPY) $(ZIP4TMP).$(ZIP4TARGET){$(subst,$(ZIP4HELPVAR),_ $(@:db))}$(ZIP4EXT) $@.$(INPATH) + $(COMMAND_ECHO)$(RM) $(ZIP4TMP).$(ZIP4TARGET){$(subst,$(ZIP4HELPVAR),_ $(@:db))}$(ZIP4EXT) +.ELSE # "$(ZIP4DIR)" != "" + @@-$(GNUCOPY) -p $@ $(subst,$(COMMON_OUTDIR),$(OUTPATH) $@) + $(COMMAND_ECHO)zip $(ZIP_VERBOSITY) $(ZIP4FLAGS) $(subst,$(COMMON_OUTDIR),$(OUTPATH) $@) $(foreach,j,$(ZIP4LIST) $(subst,LANGDIR,{$(subst,$(ZIP4HELPVAR)_, $(@:db))} $j )) -x delzip $(avoid_cvs_dir) $(CHECKZIPRESULT) + $(COMMAND_ECHO)$(IFEXIST) $(subst,$(COMMON_OUTDIR),$(OUTPATH) $@) $(THEN) \ + $(PERL) -w $(SOLARENV)/bin/cleanzip.pl $(subst,$(COMMON_OUTDIR),$(OUTPATH) $@) \ + $(FI) + @@-$(GNUCOPY) -p $(subst,$(COMMON_OUTDIR),$(OUTPATH) $@) $@.$(INPATH) + @-$(RM) $(subst,$(COMMON_OUTDIR),$(OUTPATH) $@) +.ENDIF # "$(ZIP4DIR)" != "" + @@-$(RM) $@ + @$(IFEXIST) $@.$(INPATH) $(THEN) $(RENAME:s/+//) $@.$(INPATH) $@ $(FI) +# @$(IFEXIST) $@ $(THEN) $(TOUCH) $@ $(FI) # even if it's not used... +.ELSE # "$(common_build_zip)"!="" +.IF "$(ZIP4DIR)" != "" + @@-$(GNUCOPY) -p $@ $(ZIP4TMP).$(ZIP4TARGET){$(subst,$(ZIP4HELPVAR),_ $(@:db))}$(ZIP4EXT) + $(COMMAND_ECHO)-$(CDD) $(subst,LANGDIR,{$(subst,$(ZIP4HELPVAR)_, $(@:db))} $(ZIP4DIR)) $(command_seperator) zip $(ZIP_VERBOSITY) $(ZIP4FLAGS) $(ZIP4TMP).$(ZIP4TARGET){$(subst,$(ZIP4HELPVAR),_ $(@:db))}$(ZIP4EXT) $(subst,LANGDIR_away/, $(ZIP4LIST:s/LANGDIR/LANGDIR_away/)) -x delzip $(avoid_cvs_dir) $(CHECKZIPRESULT) + $(COMMAND_ECHO)$(IFEXIST) $(ZIP4TMP).$(ZIP4TARGET){$(subst,$(ZIP4HELPVAR),_ $(@:db))}$(ZIP4EXT) $(THEN) \ + $(PERL) -w $(SOLARENV)/bin/cleanzip.pl $(ZIP4TMP).$(ZIP4TARGET){$(subst,$(ZIP4HELPVAR),_ $(@:db))}$(ZIP4EXT) \ + $(FI) + $(COMMAND_ECHO)$(COPY) $(ZIP4TMP).$(ZIP4TARGET){$(subst,$(ZIP4HELPVAR),_ $(@:db))}$(ZIP4EXT) $@ + $(COMMAND_ECHO)$(RM) $(ZIP4TMP).$(ZIP4TARGET){$(subst,$(ZIP4HELPVAR),_ $(@:db))}$(ZIP4EXT) +.ELSE # "$(ZIP4DIR)" != "" + $(COMMAND_ECHO)zip $(ZIP_VERBOSITY) $(ZIP4FLAGS) $@ $(foreach,j,$(ZIP4LIST) $(subst,LANGDIR,{$(subst,$(BIN)/$(ZIP4TARGET)_, $(@:db))} $j )) -x delzip $(avoid_cvs_dir) $(CHECKZIPRESULT) + $(COMMAND_ECHO)$(IFEXIST) $@ $(THEN) \ + $(PERL) -w $(SOLARENV)/bin/cleanzip.pl $@ \ + $(FI) +.IF "$(ZIP4STRIPLANGUAGETAGS)" != "" + $(COMMAND_ECHO)$(IFEXIST) $@ $(THEN) \ + $(SOLARENV)/bin/striplanguagetags.sh $@ \ + $(FI) +.ENDIF +.ENDIF # "$(ZIP4DIR)" != "" +.ENDIF # "$(common_build_zip)"!="" +.ENDIF + +# unroll begin + +.IF "$(GUI)"=="WNT" +command_seperator=&& +#command_seperator=^ +avoid_cvs_dir=-x "*CVS*" -x "*.svn*" +.ELSE +command_seperator=; +avoid_cvs_dir=-x "*CVS*" -x "*.svn*" + +.ENDIF + +.IF "$(ZIP5TARGET)"!="" + +.IF "$(ZIP5STRIPLANGUAGETAGS)" != "" +CALLXSLTPROC:=$(XSLTPROC) +.EXPORT: CALLXSLTPROC +.ENDIF + +ZIP5EXT*=.zip +.IF "$(common_build_zip)"!="" +.IF "$(ZIP5LIST:s/LANGDIR//)" == "$(ZIP5LIST)" +ZIP5TARGETN=$(COMMONBIN)/$(ZIP5TARGET)$(ZIP5EXT) +.ELSE +ZIP5TARGETN=$(foreach,i,$(zip5alllangiso) $(COMMONBIN)/$(ZIP5TARGET)_$i$(ZIP5EXT) ) +.ENDIF +.ELSE # "$(common_build_zip)"!="" +.IF "$(ZIP5LIST:s/LANGDIR//)" == "$(ZIP5LIST)" +ZIP5TARGETN=$(BIN)/$(ZIP5TARGET)$(ZIP5EXT) +.ELSE +ZIP5TARGETN=$(foreach,i,$(zip5alllangiso) $(BIN)/$(ZIP5TARGET)_$i$(ZIP5EXT) ) +.ENDIF +.ENDIF # "$(common_build_zip)"!="" +ZIP5DEPFILE=$(subst,$(COMMON_OUTDIR),$(OUTPATH) $(subst,/bin/,/misc/ $(ZIP5TARGETN:s/$(ZIP5EXT)/.dpzz/))) +ZIPDEPFILES+=$(ZIP5DEPFILE) + +ZIP5DIR*=$(ZIPDIR) +ZIP5FLAGS*=$(ZIPFLAGS) +.IF "$(zip5generatedlangs)"!="" +zip5langdirs*=$(alllangiso) +.ELSE # "$(zip5generatedlangs)"!="" +zip5langdirs:=$(shell @-test -d {$(subst,/$(LANGDIR), $(null,$(ZIP5DIR) . $(ZIP5DIR)))}/ && find {$(subst,/$(LANGDIR), $(null,$(ZIP5DIR) . $(ZIP5DIR)))}/ -type d ! -name CVS ! -name ".svn" ! -name "." | sed "s/\.\/\///" | sed "s/\.\///" ) +.ENDIF # "$(zip5generatedlangs)"!="" +.IF "$(ZIP5FORCEALLLANG)"!="" +zip5alllangiso:=$(foreach,i,$(completelangiso) $(foreach,j,$(zip5langdirs) $(eq,$i,$j $i $(NULL)))) +.ELSE # "$(ZIP5ALLLANG)" != "" +zip5alllangiso*:=$(foreach,i,$(alllangiso) $(foreach,j,$(zip5langdirs) $(eq,$i,$j $i $(NULL)))) +.ENDIF # "$(ZIP5ALLLANG)" != "" +.ENDIF # "$(ZIP5TARGET)"!="" + +.IF "$(ZIP5TARGETN)"!="" + +ZIP5TMP:=$(mktmp iii) + +$(MISC)/$(TARGET).$(PWD:f).$(ZIP5TARGET).dpzz : $(ZIP5TARGETN) + +.IF "$(common_build_zip)"!="" +ZIP5HELPVAR=$(COMMONBIN)/$(ZIP5TARGET) +.ELSE # "$(common_build_zip)"!="" +ZIP5HELPVAR=$(BIN)/$(ZIP5TARGET) +.ENDIF # "$(common_build_zip)"!="" + +$(ZIP5DEPFILE) : + @echo # > $(MISC)/$(@:f) +.IF "$(common_build_zip)"!="" +.IF "$(ZIP5DIR)" != "" + $(COMMAND_ECHO)-$(MKDIRHIER) $(ZIP5DIR) + $(COMMAND_ECHO)$(CDD) $(subst,LANGDIR,. $(subst,/LANGDIR, $(ZIP5DIR))) $(command_seperator) $(ZIPDEP) $(ZIP5FLAGS) -prefix $(subst,LANGDIR,. $(subst,/LANGDIR, $(ZIP5DIR)))/ $(subst,$(OUTPATH),$(COMMON_OUTDIR) $(subst,/misc/,/bin/ $(@:s/.dpzz/$(ZIP5EXT)/))) $(foreach,j,$(ZIP5LIST) "{$(subst,LANGDIR,{$(subst,$(ZIP5TARGET)_, $(@:f:b))} $j )}") $(avoid_cvs_dir) >> $(PWD)/$(PRJ)/$(ROUT)/misc/$(@:f) +.ELSE # "$(ZIP5DIR)" != "" + $(COMMAND_ECHO)-$(ZIPDEP) $(ZIP5FLAGS) $(subst,$(OUTPATH),$(COMMON_OUTDIR) $(subst,/misc/,/bin/ $(@:s/.dpzz/$(ZIP5EXT)/))) $(foreach,j,$(ZIP5LIST) "{$(subst,LANGDIR,{$(subst,$(ZIP5TARGET)_, $(@:f:b))} $j )}") $(avoid_cvs_dir) >> $(MISC)/$(@:f) +.ENDIF # "$(ZIP5DIR)" != "" +.ELSE # "$(common_build_zip)"!="" +.IF "$(ZIP5DIR)" != "" + $(COMMAND_ECHO)-$(MKDIRHIER) $(ZIP5DIR) + $(COMMAND_ECHO)$(CDD) $(subst,LANGDIR,. $(subst,/LANGDIR, $(ZIP5DIR))) $(command_seperator) $(ZIPDEP) $(ZIP5FLAGS) -prefix $(subst,LANGDIR,. $(subst,/LANGDIR, $(ZIP5DIR)))/ $(subst,/misc/,/bin/ $(@:s/.dpzz/$(ZIP5EXT)/)) $(foreach,j,$(ZIP5LIST) "{$(subst,LANGDIR,{$(subst,$(BIN)/$(ZIP5TARGET)_, $(subst,/misc/,/bin/ $(@:db)))} $j )}") $(avoid_cvs_dir) >> $(PWD)/$(PRJ)/$(ROUT)/misc/$(@:f) +.ELSE # "$(ZIP5DIR)" != "" + $(COMMAND_ECHO)-$(ZIPDEP) $(ZIP5FLAGS) $(subst,/misc/,/bin/ $(@:s/.dpzz/$(ZIP5EXT)/)) $(foreach,j,$(ZIP5LIST) "{$(subst,LANGDIR,{$(subst,$(BIN)/$(ZIP5TARGET)_, $(subst,/misc/,/bin/ $(@:db)))} $j )}") $(avoid_cvs_dir) >> $(MISC)/$(@:f) +.ENDIF # "$(ZIP5DIR)" != "" +.ENDIF # "$(common_build_zip)"!="" + @echo $(@:n:s#\#/#) : makefile.mk >> $(MISC)/$(@:f) + + +$(ZIP5TARGETN) : delzip $(ZIP5DEPS) + @echo "Making: " $(@:f) + @@$(!eq,$?,$(?:s/delzip/zzz/) -$(RM) echo) $(uniq $@ $(subst,$(COMMON_OUTDIR),$(OUTPATH) $@)) + @$(eq,$?,$(?:s/delzip/zzz/) noop echo ) rebuilding zipfiles + @echo ------------------------------ $(eq,$?,$(?:s/delzip/zzz/) >&$(NULLDEV) ) +.IF "$(common_build_zip)"!="" +.IF "$(ZIP5DIR)" != "" + @@-$(GNUCOPY) -p $@ $(ZIP5TMP).$(ZIP5TARGET){$(subst,$(ZIP5HELPVAR),_ $(@:db))}$(ZIP5EXT) + $(COMMAND_ECHO)-$(CDD) $(subst,LANGDIR,{$(subst,$(ZIP5HELPVAR)_, $(@:db))} $(ZIP5DIR)) $(command_seperator) zip $(ZIP_VERBOSITY) $(ZIP5FLAGS) $(ZIP5TMP).$(ZIP5TARGET){$(subst,$(ZIP5HELPVAR),_ $(@:db))}$(ZIP5EXT) $(subst,LANGDIR_away/, $(ZIP5LIST:s/LANGDIR/LANGDIR_away/)) -x delzip $(avoid_cvs_dir) $(CHECKZIPRESULT) + $(COMMAND_ECHO)$(IFEXIST) $(ZIP5TMP).$(ZIP5TARGET){$(subst,$(ZIP5HELPVAR),_ $(@:db))}$(ZIP5EXT) $(THEN) \ + $(PERL) -w $(SOLARENV)/bin/cleanzip.pl $(ZIP5TMP).$(ZIP5TARGET){$(subst,$(ZIP5HELPVAR),_ $(@:db))}$(ZIP5EXT) \ + $(FI) + $(COMMAND_ECHO)$(COPY) $(ZIP5TMP).$(ZIP5TARGET){$(subst,$(ZIP5HELPVAR),_ $(@:db))}$(ZIP5EXT) $@.$(INPATH) + $(COMMAND_ECHO)$(RM) $(ZIP5TMP).$(ZIP5TARGET){$(subst,$(ZIP5HELPVAR),_ $(@:db))}$(ZIP5EXT) +.ELSE # "$(ZIP5DIR)" != "" + @@-$(GNUCOPY) -p $@ $(subst,$(COMMON_OUTDIR),$(OUTPATH) $@) + $(COMMAND_ECHO)zip $(ZIP_VERBOSITY) $(ZIP5FLAGS) $(subst,$(COMMON_OUTDIR),$(OUTPATH) $@) $(foreach,j,$(ZIP5LIST) $(subst,LANGDIR,{$(subst,$(ZIP5HELPVAR)_, $(@:db))} $j )) -x delzip $(avoid_cvs_dir) $(CHECKZIPRESULT) + $(COMMAND_ECHO)$(IFEXIST) $(subst,$(COMMON_OUTDIR),$(OUTPATH) $@) $(THEN) \ + $(PERL) -w $(SOLARENV)/bin/cleanzip.pl $(subst,$(COMMON_OUTDIR),$(OUTPATH) $@) \ + $(FI) + @@-$(GNUCOPY) -p $(subst,$(COMMON_OUTDIR),$(OUTPATH) $@) $@.$(INPATH) + @-$(RM) $(subst,$(COMMON_OUTDIR),$(OUTPATH) $@) +.ENDIF # "$(ZIP5DIR)" != "" + @@-$(RM) $@ + @$(IFEXIST) $@.$(INPATH) $(THEN) $(RENAME:s/+//) $@.$(INPATH) $@ $(FI) +# @$(IFEXIST) $@ $(THEN) $(TOUCH) $@ $(FI) # even if it's not used... +.ELSE # "$(common_build_zip)"!="" +.IF "$(ZIP5DIR)" != "" + @@-$(GNUCOPY) -p $@ $(ZIP5TMP).$(ZIP5TARGET){$(subst,$(ZIP5HELPVAR),_ $(@:db))}$(ZIP5EXT) + $(COMMAND_ECHO)-$(CDD) $(subst,LANGDIR,{$(subst,$(ZIP5HELPVAR)_, $(@:db))} $(ZIP5DIR)) $(command_seperator) zip $(ZIP_VERBOSITY) $(ZIP5FLAGS) $(ZIP5TMP).$(ZIP5TARGET){$(subst,$(ZIP5HELPVAR),_ $(@:db))}$(ZIP5EXT) $(subst,LANGDIR_away/, $(ZIP5LIST:s/LANGDIR/LANGDIR_away/)) -x delzip $(avoid_cvs_dir) $(CHECKZIPRESULT) + $(COMMAND_ECHO)$(IFEXIST) $(ZIP5TMP).$(ZIP5TARGET){$(subst,$(ZIP5HELPVAR),_ $(@:db))}$(ZIP5EXT) $(THEN) \ + $(PERL) -w $(SOLARENV)/bin/cleanzip.pl $(ZIP5TMP).$(ZIP5TARGET){$(subst,$(ZIP5HELPVAR),_ $(@:db))}$(ZIP5EXT) \ + $(FI) + $(COMMAND_ECHO)$(COPY) $(ZIP5TMP).$(ZIP5TARGET){$(subst,$(ZIP5HELPVAR),_ $(@:db))}$(ZIP5EXT) $@ + $(COMMAND_ECHO)$(RM) $(ZIP5TMP).$(ZIP5TARGET){$(subst,$(ZIP5HELPVAR),_ $(@:db))}$(ZIP5EXT) +.ELSE # "$(ZIP5DIR)" != "" + $(COMMAND_ECHO)zip $(ZIP_VERBOSITY) $(ZIP5FLAGS) $@ $(foreach,j,$(ZIP5LIST) $(subst,LANGDIR,{$(subst,$(BIN)/$(ZIP5TARGET)_, $(@:db))} $j )) -x delzip $(avoid_cvs_dir) $(CHECKZIPRESULT) + $(COMMAND_ECHO)$(IFEXIST) $@ $(THEN) \ + $(PERL) -w $(SOLARENV)/bin/cleanzip.pl $@ \ + $(FI) +.IF "$(ZIP5STRIPLANGUAGETAGS)" != "" + $(COMMAND_ECHO)$(IFEXIST) $@ $(THEN) \ + $(SOLARENV)/bin/striplanguagetags.sh $@ \ + $(FI) +.ENDIF +.ENDIF # "$(ZIP5DIR)" != "" +.ENDIF # "$(common_build_zip)"!="" +.ENDIF + +# unroll begin + +.IF "$(GUI)"=="WNT" +command_seperator=&& +#command_seperator=^ +avoid_cvs_dir=-x "*CVS*" -x "*.svn*" +.ELSE +command_seperator=; +avoid_cvs_dir=-x "*CVS*" -x "*.svn*" + +.ENDIF + +.IF "$(ZIP6TARGET)"!="" + +.IF "$(ZIP6STRIPLANGUAGETAGS)" != "" +CALLXSLTPROC:=$(XSLTPROC) +.EXPORT: CALLXSLTPROC +.ENDIF + +ZIP6EXT*=.zip +.IF "$(common_build_zip)"!="" +.IF "$(ZIP6LIST:s/LANGDIR//)" == "$(ZIP6LIST)" +ZIP6TARGETN=$(COMMONBIN)/$(ZIP6TARGET)$(ZIP6EXT) +.ELSE +ZIP6TARGETN=$(foreach,i,$(zip6alllangiso) $(COMMONBIN)/$(ZIP6TARGET)_$i$(ZIP6EXT) ) +.ENDIF +.ELSE # "$(common_build_zip)"!="" +.IF "$(ZIP6LIST:s/LANGDIR//)" == "$(ZIP6LIST)" +ZIP6TARGETN=$(BIN)/$(ZIP6TARGET)$(ZIP6EXT) +.ELSE +ZIP6TARGETN=$(foreach,i,$(zip6alllangiso) $(BIN)/$(ZIP6TARGET)_$i$(ZIP6EXT) ) +.ENDIF +.ENDIF # "$(common_build_zip)"!="" +ZIP6DEPFILE=$(subst,$(COMMON_OUTDIR),$(OUTPATH) $(subst,/bin/,/misc/ $(ZIP6TARGETN:s/$(ZIP6EXT)/.dpzz/))) +ZIPDEPFILES+=$(ZIP6DEPFILE) + +ZIP6DIR*=$(ZIPDIR) +ZIP6FLAGS*=$(ZIPFLAGS) +.IF "$(zip6generatedlangs)"!="" +zip6langdirs*=$(alllangiso) +.ELSE # "$(zip6generatedlangs)"!="" +zip6langdirs:=$(shell @-test -d {$(subst,/$(LANGDIR), $(null,$(ZIP6DIR) . $(ZIP6DIR)))}/ && find {$(subst,/$(LANGDIR), $(null,$(ZIP6DIR) . $(ZIP6DIR)))}/ -type d ! -name CVS ! -name ".svn" ! -name "." | sed "s/\.\/\///" | sed "s/\.\///" ) +.ENDIF # "$(zip6generatedlangs)"!="" +.IF "$(ZIP6FORCEALLLANG)"!="" +zip6alllangiso:=$(foreach,i,$(completelangiso) $(foreach,j,$(zip6langdirs) $(eq,$i,$j $i $(NULL)))) +.ELSE # "$(ZIP6ALLLANG)" != "" +zip6alllangiso*:=$(foreach,i,$(alllangiso) $(foreach,j,$(zip6langdirs) $(eq,$i,$j $i $(NULL)))) +.ENDIF # "$(ZIP6ALLLANG)" != "" +.ENDIF # "$(ZIP6TARGET)"!="" + +.IF "$(ZIP6TARGETN)"!="" + +ZIP6TMP:=$(mktmp iii) + +$(MISC)/$(TARGET).$(PWD:f).$(ZIP6TARGET).dpzz : $(ZIP6TARGETN) + +.IF "$(common_build_zip)"!="" +ZIP6HELPVAR=$(COMMONBIN)/$(ZIP6TARGET) +.ELSE # "$(common_build_zip)"!="" +ZIP6HELPVAR=$(BIN)/$(ZIP6TARGET) +.ENDIF # "$(common_build_zip)"!="" + +$(ZIP6DEPFILE) : + @echo # > $(MISC)/$(@:f) +.IF "$(common_build_zip)"!="" +.IF "$(ZIP6DIR)" != "" + $(COMMAND_ECHO)-$(MKDIRHIER) $(ZIP6DIR) + $(COMMAND_ECHO)$(CDD) $(subst,LANGDIR,. $(subst,/LANGDIR, $(ZIP6DIR))) $(command_seperator) $(ZIPDEP) $(ZIP6FLAGS) -prefix $(subst,LANGDIR,. $(subst,/LANGDIR, $(ZIP6DIR)))/ $(subst,$(OUTPATH),$(COMMON_OUTDIR) $(subst,/misc/,/bin/ $(@:s/.dpzz/$(ZIP6EXT)/))) $(foreach,j,$(ZIP6LIST) "{$(subst,LANGDIR,{$(subst,$(ZIP6TARGET)_, $(@:f:b))} $j )}") $(avoid_cvs_dir) >> $(PWD)/$(PRJ)/$(ROUT)/misc/$(@:f) +.ELSE # "$(ZIP6DIR)" != "" + $(COMMAND_ECHO)-$(ZIPDEP) $(ZIP6FLAGS) $(subst,$(OUTPATH),$(COMMON_OUTDIR) $(subst,/misc/,/bin/ $(@:s/.dpzz/$(ZIP6EXT)/))) $(foreach,j,$(ZIP6LIST) "{$(subst,LANGDIR,{$(subst,$(ZIP6TARGET)_, $(@:f:b))} $j )}") $(avoid_cvs_dir) >> $(MISC)/$(@:f) +.ENDIF # "$(ZIP6DIR)" != "" +.ELSE # "$(common_build_zip)"!="" +.IF "$(ZIP6DIR)" != "" + $(COMMAND_ECHO)-$(MKDIRHIER) $(ZIP6DIR) + $(COMMAND_ECHO)$(CDD) $(subst,LANGDIR,. $(subst,/LANGDIR, $(ZIP6DIR))) $(command_seperator) $(ZIPDEP) $(ZIP6FLAGS) -prefix $(subst,LANGDIR,. $(subst,/LANGDIR, $(ZIP6DIR)))/ $(subst,/misc/,/bin/ $(@:s/.dpzz/$(ZIP6EXT)/)) $(foreach,j,$(ZIP6LIST) "{$(subst,LANGDIR,{$(subst,$(BIN)/$(ZIP6TARGET)_, $(subst,/misc/,/bin/ $(@:db)))} $j )}") $(avoid_cvs_dir) >> $(PWD)/$(PRJ)/$(ROUT)/misc/$(@:f) +.ELSE # "$(ZIP6DIR)" != "" + $(COMMAND_ECHO)-$(ZIPDEP) $(ZIP6FLAGS) $(subst,/misc/,/bin/ $(@:s/.dpzz/$(ZIP6EXT)/)) $(foreach,j,$(ZIP6LIST) "{$(subst,LANGDIR,{$(subst,$(BIN)/$(ZIP6TARGET)_, $(subst,/misc/,/bin/ $(@:db)))} $j )}") $(avoid_cvs_dir) >> $(MISC)/$(@:f) +.ENDIF # "$(ZIP6DIR)" != "" +.ENDIF # "$(common_build_zip)"!="" + @echo $(@:n:s#\#/#) : makefile.mk >> $(MISC)/$(@:f) + + +$(ZIP6TARGETN) : delzip $(ZIP6DEPS) + @echo "Making: " $(@:f) + @@$(!eq,$?,$(?:s/delzip/zzz/) -$(RM) echo) $(uniq $@ $(subst,$(COMMON_OUTDIR),$(OUTPATH) $@)) + @$(eq,$?,$(?:s/delzip/zzz/) noop echo ) rebuilding zipfiles + @echo ------------------------------ $(eq,$?,$(?:s/delzip/zzz/) >&$(NULLDEV) ) +.IF "$(common_build_zip)"!="" +.IF "$(ZIP6DIR)" != "" + @@-$(GNUCOPY) -p $@ $(ZIP6TMP).$(ZIP6TARGET){$(subst,$(ZIP6HELPVAR),_ $(@:db))}$(ZIP6EXT) + $(COMMAND_ECHO)-$(CDD) $(subst,LANGDIR,{$(subst,$(ZIP6HELPVAR)_, $(@:db))} $(ZIP6DIR)) $(command_seperator) zip $(ZIP_VERBOSITY) $(ZIP6FLAGS) $(ZIP6TMP).$(ZIP6TARGET){$(subst,$(ZIP6HELPVAR),_ $(@:db))}$(ZIP6EXT) $(subst,LANGDIR_away/, $(ZIP6LIST:s/LANGDIR/LANGDIR_away/)) -x delzip $(avoid_cvs_dir) $(CHECKZIPRESULT) + $(COMMAND_ECHO)$(IFEXIST) $(ZIP6TMP).$(ZIP6TARGET){$(subst,$(ZIP6HELPVAR),_ $(@:db))}$(ZIP6EXT) $(THEN) \ + $(PERL) -w $(SOLARENV)/bin/cleanzip.pl $(ZIP6TMP).$(ZIP6TARGET){$(subst,$(ZIP6HELPVAR),_ $(@:db))}$(ZIP6EXT) \ + $(FI) + $(COMMAND_ECHO)$(COPY) $(ZIP6TMP).$(ZIP6TARGET){$(subst,$(ZIP6HELPVAR),_ $(@:db))}$(ZIP6EXT) $@.$(INPATH) + $(COMMAND_ECHO)$(RM) $(ZIP6TMP).$(ZIP6TARGET){$(subst,$(ZIP6HELPVAR),_ $(@:db))}$(ZIP6EXT) +.ELSE # "$(ZIP6DIR)" != "" + @@-$(GNUCOPY) -p $@ $(subst,$(COMMON_OUTDIR),$(OUTPATH) $@) + $(COMMAND_ECHO)zip $(ZIP_VERBOSITY) $(ZIP6FLAGS) $(subst,$(COMMON_OUTDIR),$(OUTPATH) $@) $(foreach,j,$(ZIP6LIST) $(subst,LANGDIR,{$(subst,$(ZIP6HELPVAR)_, $(@:db))} $j )) -x delzip $(avoid_cvs_dir) $(CHECKZIPRESULT) + $(COMMAND_ECHO)$(IFEXIST) $(subst,$(COMMON_OUTDIR),$(OUTPATH) $@) $(THEN) \ + $(PERL) -w $(SOLARENV)/bin/cleanzip.pl $(subst,$(COMMON_OUTDIR),$(OUTPATH) $@) \ + $(FI) + @@-$(GNUCOPY) -p $(subst,$(COMMON_OUTDIR),$(OUTPATH) $@) $@.$(INPATH) + @-$(RM) $(subst,$(COMMON_OUTDIR),$(OUTPATH) $@) +.ENDIF # "$(ZIP6DIR)" != "" + @@-$(RM) $@ + @$(IFEXIST) $@.$(INPATH) $(THEN) $(RENAME:s/+//) $@.$(INPATH) $@ $(FI) +# @$(IFEXIST) $@ $(THEN) $(TOUCH) $@ $(FI) # even if it's not used... +.ELSE # "$(common_build_zip)"!="" +.IF "$(ZIP6DIR)" != "" + @@-$(GNUCOPY) -p $@ $(ZIP6TMP).$(ZIP6TARGET){$(subst,$(ZIP6HELPVAR),_ $(@:db))}$(ZIP6EXT) + $(COMMAND_ECHO)-$(CDD) $(subst,LANGDIR,{$(subst,$(ZIP6HELPVAR)_, $(@:db))} $(ZIP6DIR)) $(command_seperator) zip $(ZIP_VERBOSITY) $(ZIP6FLAGS) $(ZIP6TMP).$(ZIP6TARGET){$(subst,$(ZIP6HELPVAR),_ $(@:db))}$(ZIP6EXT) $(subst,LANGDIR_away/, $(ZIP6LIST:s/LANGDIR/LANGDIR_away/)) -x delzip $(avoid_cvs_dir) $(CHECKZIPRESULT) + $(COMMAND_ECHO)$(IFEXIST) $(ZIP6TMP).$(ZIP6TARGET){$(subst,$(ZIP6HELPVAR),_ $(@:db))}$(ZIP6EXT) $(THEN) \ + $(PERL) -w $(SOLARENV)/bin/cleanzip.pl $(ZIP6TMP).$(ZIP6TARGET){$(subst,$(ZIP6HELPVAR),_ $(@:db))}$(ZIP6EXT) \ + $(FI) + $(COMMAND_ECHO)$(COPY) $(ZIP6TMP).$(ZIP6TARGET){$(subst,$(ZIP6HELPVAR),_ $(@:db))}$(ZIP6EXT) $@ + $(COMMAND_ECHO)$(RM) $(ZIP6TMP).$(ZIP6TARGET){$(subst,$(ZIP6HELPVAR),_ $(@:db))}$(ZIP6EXT) +.ELSE # "$(ZIP6DIR)" != "" + $(COMMAND_ECHO)zip $(ZIP_VERBOSITY) $(ZIP6FLAGS) $@ $(foreach,j,$(ZIP6LIST) $(subst,LANGDIR,{$(subst,$(BIN)/$(ZIP6TARGET)_, $(@:db))} $j )) -x delzip $(avoid_cvs_dir) $(CHECKZIPRESULT) + $(COMMAND_ECHO)$(IFEXIST) $@ $(THEN) \ + $(PERL) -w $(SOLARENV)/bin/cleanzip.pl $@ \ + $(FI) +.IF "$(ZIP6STRIPLANGUAGETAGS)" != "" + $(COMMAND_ECHO)$(IFEXIST) $@ $(THEN) \ + $(SOLARENV)/bin/striplanguagetags.sh $@ \ + $(FI) +.ENDIF +.ENDIF # "$(ZIP6DIR)" != "" +.ENDIF # "$(common_build_zip)"!="" +.ENDIF + +# unroll begin + +.IF "$(GUI)"=="WNT" +command_seperator=&& +#command_seperator=^ +avoid_cvs_dir=-x "*CVS*" -x "*.svn*" +.ELSE +command_seperator=; +avoid_cvs_dir=-x "*CVS*" -x "*.svn*" + +.ENDIF + +.IF "$(ZIP7TARGET)"!="" + +.IF "$(ZIP7STRIPLANGUAGETAGS)" != "" +CALLXSLTPROC:=$(XSLTPROC) +.EXPORT: CALLXSLTPROC +.ENDIF + +ZIP7EXT*=.zip +.IF "$(common_build_zip)"!="" +.IF "$(ZIP7LIST:s/LANGDIR//)" == "$(ZIP7LIST)" +ZIP7TARGETN=$(COMMONBIN)/$(ZIP7TARGET)$(ZIP7EXT) +.ELSE +ZIP7TARGETN=$(foreach,i,$(zip7alllangiso) $(COMMONBIN)/$(ZIP7TARGET)_$i$(ZIP7EXT) ) +.ENDIF +.ELSE # "$(common_build_zip)"!="" +.IF "$(ZIP7LIST:s/LANGDIR//)" == "$(ZIP7LIST)" +ZIP7TARGETN=$(BIN)/$(ZIP7TARGET)$(ZIP7EXT) +.ELSE +ZIP7TARGETN=$(foreach,i,$(zip7alllangiso) $(BIN)/$(ZIP7TARGET)_$i$(ZIP7EXT) ) +.ENDIF +.ENDIF # "$(common_build_zip)"!="" +ZIP7DEPFILE=$(subst,$(COMMON_OUTDIR),$(OUTPATH) $(subst,/bin/,/misc/ $(ZIP7TARGETN:s/$(ZIP7EXT)/.dpzz/))) +ZIPDEPFILES+=$(ZIP7DEPFILE) + +ZIP7DIR*=$(ZIPDIR) +ZIP7FLAGS*=$(ZIPFLAGS) +.IF "$(zip7generatedlangs)"!="" +zip7langdirs*=$(alllangiso) +.ELSE # "$(zip7generatedlangs)"!="" +zip7langdirs:=$(shell @-test -d {$(subst,/$(LANGDIR), $(null,$(ZIP7DIR) . $(ZIP7DIR)))}/ && find {$(subst,/$(LANGDIR), $(null,$(ZIP7DIR) . $(ZIP7DIR)))}/ -type d ! -name CVS ! -name ".svn" ! -name "." | sed "s/\.\/\///" | sed "s/\.\///" ) +.ENDIF # "$(zip7generatedlangs)"!="" +.IF "$(ZIP7FORCEALLLANG)"!="" +zip7alllangiso:=$(foreach,i,$(completelangiso) $(foreach,j,$(zip7langdirs) $(eq,$i,$j $i $(NULL)))) +.ELSE # "$(ZIP7ALLLANG)" != "" +zip7alllangiso*:=$(foreach,i,$(alllangiso) $(foreach,j,$(zip7langdirs) $(eq,$i,$j $i $(NULL)))) +.ENDIF # "$(ZIP7ALLLANG)" != "" +.ENDIF # "$(ZIP7TARGET)"!="" + +.IF "$(ZIP7TARGETN)"!="" + +ZIP7TMP:=$(mktmp iii) + +$(MISC)/$(TARGET).$(PWD:f).$(ZIP7TARGET).dpzz : $(ZIP7TARGETN) + +.IF "$(common_build_zip)"!="" +ZIP7HELPVAR=$(COMMONBIN)/$(ZIP7TARGET) +.ELSE # "$(common_build_zip)"!="" +ZIP7HELPVAR=$(BIN)/$(ZIP7TARGET) +.ENDIF # "$(common_build_zip)"!="" + +$(ZIP7DEPFILE) : + @echo # > $(MISC)/$(@:f) +.IF "$(common_build_zip)"!="" +.IF "$(ZIP7DIR)" != "" + $(COMMAND_ECHO)-$(MKDIRHIER) $(ZIP7DIR) + $(COMMAND_ECHO)$(CDD) $(subst,LANGDIR,. $(subst,/LANGDIR, $(ZIP7DIR))) $(command_seperator) $(ZIPDEP) $(ZIP7FLAGS) -prefix $(subst,LANGDIR,. $(subst,/LANGDIR, $(ZIP7DIR)))/ $(subst,$(OUTPATH),$(COMMON_OUTDIR) $(subst,/misc/,/bin/ $(@:s/.dpzz/$(ZIP7EXT)/))) $(foreach,j,$(ZIP7LIST) "{$(subst,LANGDIR,{$(subst,$(ZIP7TARGET)_, $(@:f:b))} $j )}") $(avoid_cvs_dir) >> $(PWD)/$(PRJ)/$(ROUT)/misc/$(@:f) +.ELSE # "$(ZIP7DIR)" != "" + $(COMMAND_ECHO)-$(ZIPDEP) $(ZIP7FLAGS) $(subst,$(OUTPATH),$(COMMON_OUTDIR) $(subst,/misc/,/bin/ $(@:s/.dpzz/$(ZIP7EXT)/))) $(foreach,j,$(ZIP7LIST) "{$(subst,LANGDIR,{$(subst,$(ZIP7TARGET)_, $(@:f:b))} $j )}") $(avoid_cvs_dir) >> $(MISC)/$(@:f) +.ENDIF # "$(ZIP7DIR)" != "" +.ELSE # "$(common_build_zip)"!="" +.IF "$(ZIP7DIR)" != "" + $(COMMAND_ECHO)-$(MKDIRHIER) $(ZIP7DIR) + $(COMMAND_ECHO)$(CDD) $(subst,LANGDIR,. $(subst,/LANGDIR, $(ZIP7DIR))) $(command_seperator) $(ZIPDEP) $(ZIP7FLAGS) -prefix $(subst,LANGDIR,. $(subst,/LANGDIR, $(ZIP7DIR)))/ $(subst,/misc/,/bin/ $(@:s/.dpzz/$(ZIP7EXT)/)) $(foreach,j,$(ZIP7LIST) "{$(subst,LANGDIR,{$(subst,$(BIN)/$(ZIP7TARGET)_, $(subst,/misc/,/bin/ $(@:db)))} $j )}") $(avoid_cvs_dir) >> $(PWD)/$(PRJ)/$(ROUT)/misc/$(@:f) +.ELSE # "$(ZIP7DIR)" != "" + $(COMMAND_ECHO)-$(ZIPDEP) $(ZIP7FLAGS) $(subst,/misc/,/bin/ $(@:s/.dpzz/$(ZIP7EXT)/)) $(foreach,j,$(ZIP7LIST) "{$(subst,LANGDIR,{$(subst,$(BIN)/$(ZIP7TARGET)_, $(subst,/misc/,/bin/ $(@:db)))} $j )}") $(avoid_cvs_dir) >> $(MISC)/$(@:f) +.ENDIF # "$(ZIP7DIR)" != "" +.ENDIF # "$(common_build_zip)"!="" + @echo $(@:n:s#\#/#) : makefile.mk >> $(MISC)/$(@:f) + + +$(ZIP7TARGETN) : delzip $(ZIP7DEPS) + @echo "Making: " $(@:f) + @@$(!eq,$?,$(?:s/delzip/zzz/) -$(RM) echo) $(uniq $@ $(subst,$(COMMON_OUTDIR),$(OUTPATH) $@)) + @$(eq,$?,$(?:s/delzip/zzz/) noop echo ) rebuilding zipfiles + @echo ------------------------------ $(eq,$?,$(?:s/delzip/zzz/) >&$(NULLDEV) ) +.IF "$(common_build_zip)"!="" +.IF "$(ZIP7DIR)" != "" + @@-$(GNUCOPY) -p $@ $(ZIP7TMP).$(ZIP7TARGET){$(subst,$(ZIP7HELPVAR),_ $(@:db))}$(ZIP7EXT) + $(COMMAND_ECHO)-$(CDD) $(subst,LANGDIR,{$(subst,$(ZIP7HELPVAR)_, $(@:db))} $(ZIP7DIR)) $(command_seperator) zip $(ZIP_VERBOSITY) $(ZIP7FLAGS) $(ZIP7TMP).$(ZIP7TARGET){$(subst,$(ZIP7HELPVAR),_ $(@:db))}$(ZIP7EXT) $(subst,LANGDIR_away/, $(ZIP7LIST:s/LANGDIR/LANGDIR_away/)) -x delzip $(avoid_cvs_dir) $(CHECKZIPRESULT) + $(COMMAND_ECHO)$(IFEXIST) $(ZIP7TMP).$(ZIP7TARGET){$(subst,$(ZIP7HELPVAR),_ $(@:db))}$(ZIP7EXT) $(THEN) \ + $(PERL) -w $(SOLARENV)/bin/cleanzip.pl $(ZIP7TMP).$(ZIP7TARGET){$(subst,$(ZIP7HELPVAR),_ $(@:db))}$(ZIP7EXT) \ + $(FI) + $(COMMAND_ECHO)$(COPY) $(ZIP7TMP).$(ZIP7TARGET){$(subst,$(ZIP7HELPVAR),_ $(@:db))}$(ZIP7EXT) $@.$(INPATH) + $(COMMAND_ECHO)$(RM) $(ZIP7TMP).$(ZIP7TARGET){$(subst,$(ZIP7HELPVAR),_ $(@:db))}$(ZIP7EXT) +.ELSE # "$(ZIP7DIR)" != "" + @@-$(GNUCOPY) -p $@ $(subst,$(COMMON_OUTDIR),$(OUTPATH) $@) + $(COMMAND_ECHO)zip $(ZIP_VERBOSITY) $(ZIP7FLAGS) $(subst,$(COMMON_OUTDIR),$(OUTPATH) $@) $(foreach,j,$(ZIP7LIST) $(subst,LANGDIR,{$(subst,$(ZIP7HELPVAR)_, $(@:db))} $j )) -x delzip $(avoid_cvs_dir) $(CHECKZIPRESULT) + $(COMMAND_ECHO)$(IFEXIST) $(subst,$(COMMON_OUTDIR),$(OUTPATH) $@) $(THEN) \ + $(PERL) -w $(SOLARENV)/bin/cleanzip.pl $(subst,$(COMMON_OUTDIR),$(OUTPATH) $@) \ + $(FI) + @@-$(GNUCOPY) -p $(subst,$(COMMON_OUTDIR),$(OUTPATH) $@) $@.$(INPATH) + @-$(RM) $(subst,$(COMMON_OUTDIR),$(OUTPATH) $@) +.ENDIF # "$(ZIP7DIR)" != "" + @@-$(RM) $@ + @$(IFEXIST) $@.$(INPATH) $(THEN) $(RENAME:s/+//) $@.$(INPATH) $@ $(FI) +# @$(IFEXIST) $@ $(THEN) $(TOUCH) $@ $(FI) # even if it's not used... +.ELSE # "$(common_build_zip)"!="" +.IF "$(ZIP7DIR)" != "" + @@-$(GNUCOPY) -p $@ $(ZIP7TMP).$(ZIP7TARGET){$(subst,$(ZIP7HELPVAR),_ $(@:db))}$(ZIP7EXT) + $(COMMAND_ECHO)-$(CDD) $(subst,LANGDIR,{$(subst,$(ZIP7HELPVAR)_, $(@:db))} $(ZIP7DIR)) $(command_seperator) zip $(ZIP_VERBOSITY) $(ZIP7FLAGS) $(ZIP7TMP).$(ZIP7TARGET){$(subst,$(ZIP7HELPVAR),_ $(@:db))}$(ZIP7EXT) $(subst,LANGDIR_away/, $(ZIP7LIST:s/LANGDIR/LANGDIR_away/)) -x delzip $(avoid_cvs_dir) $(CHECKZIPRESULT) + $(COMMAND_ECHO)$(IFEXIST) $(ZIP7TMP).$(ZIP7TARGET){$(subst,$(ZIP7HELPVAR),_ $(@:db))}$(ZIP7EXT) $(THEN) \ + $(PERL) -w $(SOLARENV)/bin/cleanzip.pl $(ZIP7TMP).$(ZIP7TARGET){$(subst,$(ZIP7HELPVAR),_ $(@:db))}$(ZIP7EXT) \ + $(FI) + $(COMMAND_ECHO)$(COPY) $(ZIP7TMP).$(ZIP7TARGET){$(subst,$(ZIP7HELPVAR),_ $(@:db))}$(ZIP7EXT) $@ + $(COMMAND_ECHO)$(RM) $(ZIP7TMP).$(ZIP7TARGET){$(subst,$(ZIP7HELPVAR),_ $(@:db))}$(ZIP7EXT) +.ELSE # "$(ZIP7DIR)" != "" + $(COMMAND_ECHO)zip $(ZIP_VERBOSITY) $(ZIP7FLAGS) $@ $(foreach,j,$(ZIP7LIST) $(subst,LANGDIR,{$(subst,$(BIN)/$(ZIP7TARGET)_, $(@:db))} $j )) -x delzip $(avoid_cvs_dir) $(CHECKZIPRESULT) + $(COMMAND_ECHO)$(IFEXIST) $@ $(THEN) \ + $(PERL) -w $(SOLARENV)/bin/cleanzip.pl $@ \ + $(FI) +.IF "$(ZIP7STRIPLANGUAGETAGS)" != "" + $(COMMAND_ECHO)$(IFEXIST) $@ $(THEN) \ + $(SOLARENV)/bin/striplanguagetags.sh $@ \ + $(FI) +.ENDIF +.ENDIF # "$(ZIP7DIR)" != "" +.ENDIF # "$(common_build_zip)"!="" +.ENDIF + +# unroll begin + +.IF "$(GUI)"=="WNT" +command_seperator=&& +#command_seperator=^ +avoid_cvs_dir=-x "*CVS*" -x "*.svn*" +.ELSE +command_seperator=; +avoid_cvs_dir=-x "*CVS*" -x "*.svn*" + +.ENDIF + +.IF "$(ZIP8TARGET)"!="" + +.IF "$(ZIP8STRIPLANGUAGETAGS)" != "" +CALLXSLTPROC:=$(XSLTPROC) +.EXPORT: CALLXSLTPROC +.ENDIF + +ZIP8EXT*=.zip +.IF "$(common_build_zip)"!="" +.IF "$(ZIP8LIST:s/LANGDIR//)" == "$(ZIP8LIST)" +ZIP8TARGETN=$(COMMONBIN)/$(ZIP8TARGET)$(ZIP8EXT) +.ELSE +ZIP8TARGETN=$(foreach,i,$(zip8alllangiso) $(COMMONBIN)/$(ZIP8TARGET)_$i$(ZIP8EXT) ) +.ENDIF +.ELSE # "$(common_build_zip)"!="" +.IF "$(ZIP8LIST:s/LANGDIR//)" == "$(ZIP8LIST)" +ZIP8TARGETN=$(BIN)/$(ZIP8TARGET)$(ZIP8EXT) +.ELSE +ZIP8TARGETN=$(foreach,i,$(zip8alllangiso) $(BIN)/$(ZIP8TARGET)_$i$(ZIP8EXT) ) +.ENDIF +.ENDIF # "$(common_build_zip)"!="" +ZIP8DEPFILE=$(subst,$(COMMON_OUTDIR),$(OUTPATH) $(subst,/bin/,/misc/ $(ZIP8TARGETN:s/$(ZIP8EXT)/.dpzz/))) +ZIPDEPFILES+=$(ZIP8DEPFILE) + +ZIP8DIR*=$(ZIPDIR) +ZIP8FLAGS*=$(ZIPFLAGS) +.IF "$(zip8generatedlangs)"!="" +zip8langdirs*=$(alllangiso) +.ELSE # "$(zip8generatedlangs)"!="" +zip8langdirs:=$(shell @-test -d {$(subst,/$(LANGDIR), $(null,$(ZIP8DIR) . $(ZIP8DIR)))}/ && find {$(subst,/$(LANGDIR), $(null,$(ZIP8DIR) . $(ZIP8DIR)))}/ -type d ! -name CVS ! -name ".svn" ! -name "." | sed "s/\.\/\///" | sed "s/\.\///" ) +.ENDIF # "$(zip8generatedlangs)"!="" +.IF "$(ZIP8FORCEALLLANG)"!="" +zip8alllangiso:=$(foreach,i,$(completelangiso) $(foreach,j,$(zip8langdirs) $(eq,$i,$j $i $(NULL)))) +.ELSE # "$(ZIP8ALLLANG)" != "" +zip8alllangiso*:=$(foreach,i,$(alllangiso) $(foreach,j,$(zip8langdirs) $(eq,$i,$j $i $(NULL)))) +.ENDIF # "$(ZIP8ALLLANG)" != "" +.ENDIF # "$(ZIP8TARGET)"!="" + +.IF "$(ZIP8TARGETN)"!="" + +ZIP8TMP:=$(mktmp iii) + +$(MISC)/$(TARGET).$(PWD:f).$(ZIP8TARGET).dpzz : $(ZIP8TARGETN) + +.IF "$(common_build_zip)"!="" +ZIP8HELPVAR=$(COMMONBIN)/$(ZIP8TARGET) +.ELSE # "$(common_build_zip)"!="" +ZIP8HELPVAR=$(BIN)/$(ZIP8TARGET) +.ENDIF # "$(common_build_zip)"!="" + +$(ZIP8DEPFILE) : + @echo # > $(MISC)/$(@:f) +.IF "$(common_build_zip)"!="" +.IF "$(ZIP8DIR)" != "" + $(COMMAND_ECHO)-$(MKDIRHIER) $(ZIP8DIR) + $(COMMAND_ECHO)$(CDD) $(subst,LANGDIR,. $(subst,/LANGDIR, $(ZIP8DIR))) $(command_seperator) $(ZIPDEP) $(ZIP8FLAGS) -prefix $(subst,LANGDIR,. $(subst,/LANGDIR, $(ZIP8DIR)))/ $(subst,$(OUTPATH),$(COMMON_OUTDIR) $(subst,/misc/,/bin/ $(@:s/.dpzz/$(ZIP8EXT)/))) $(foreach,j,$(ZIP8LIST) "{$(subst,LANGDIR,{$(subst,$(ZIP8TARGET)_, $(@:f:b))} $j )}") $(avoid_cvs_dir) >> $(PWD)/$(PRJ)/$(ROUT)/misc/$(@:f) +.ELSE # "$(ZIP8DIR)" != "" + $(COMMAND_ECHO)-$(ZIPDEP) $(ZIP8FLAGS) $(subst,$(OUTPATH),$(COMMON_OUTDIR) $(subst,/misc/,/bin/ $(@:s/.dpzz/$(ZIP8EXT)/))) $(foreach,j,$(ZIP8LIST) "{$(subst,LANGDIR,{$(subst,$(ZIP8TARGET)_, $(@:f:b))} $j )}") $(avoid_cvs_dir) >> $(MISC)/$(@:f) +.ENDIF # "$(ZIP8DIR)" != "" +.ELSE # "$(common_build_zip)"!="" +.IF "$(ZIP8DIR)" != "" + $(COMMAND_ECHO)-$(MKDIRHIER) $(ZIP8DIR) + $(COMMAND_ECHO)$(CDD) $(subst,LANGDIR,. $(subst,/LANGDIR, $(ZIP8DIR))) $(command_seperator) $(ZIPDEP) $(ZIP8FLAGS) -prefix $(subst,LANGDIR,. $(subst,/LANGDIR, $(ZIP8DIR)))/ $(subst,/misc/,/bin/ $(@:s/.dpzz/$(ZIP8EXT)/)) $(foreach,j,$(ZIP8LIST) "{$(subst,LANGDIR,{$(subst,$(BIN)/$(ZIP8TARGET)_, $(subst,/misc/,/bin/ $(@:db)))} $j )}") $(avoid_cvs_dir) >> $(PWD)/$(PRJ)/$(ROUT)/misc/$(@:f) +.ELSE # "$(ZIP8DIR)" != "" + $(COMMAND_ECHO)-$(ZIPDEP) $(ZIP8FLAGS) $(subst,/misc/,/bin/ $(@:s/.dpzz/$(ZIP8EXT)/)) $(foreach,j,$(ZIP8LIST) "{$(subst,LANGDIR,{$(subst,$(BIN)/$(ZIP8TARGET)_, $(subst,/misc/,/bin/ $(@:db)))} $j )}") $(avoid_cvs_dir) >> $(MISC)/$(@:f) +.ENDIF # "$(ZIP8DIR)" != "" +.ENDIF # "$(common_build_zip)"!="" + @echo $(@:n:s#\#/#) : makefile.mk >> $(MISC)/$(@:f) + + +$(ZIP8TARGETN) : delzip $(ZIP8DEPS) + @echo "Making: " $(@:f) + @@$(!eq,$?,$(?:s/delzip/zzz/) -$(RM) echo) $(uniq $@ $(subst,$(COMMON_OUTDIR),$(OUTPATH) $@)) + @$(eq,$?,$(?:s/delzip/zzz/) noop echo ) rebuilding zipfiles + @echo ------------------------------ $(eq,$?,$(?:s/delzip/zzz/) >&$(NULLDEV) ) +.IF "$(common_build_zip)"!="" +.IF "$(ZIP8DIR)" != "" + @@-$(GNUCOPY) -p $@ $(ZIP8TMP).$(ZIP8TARGET){$(subst,$(ZIP8HELPVAR),_ $(@:db))}$(ZIP8EXT) + $(COMMAND_ECHO)-$(CDD) $(subst,LANGDIR,{$(subst,$(ZIP8HELPVAR)_, $(@:db))} $(ZIP8DIR)) $(command_seperator) zip $(ZIP_VERBOSITY) $(ZIP8FLAGS) $(ZIP8TMP).$(ZIP8TARGET){$(subst,$(ZIP8HELPVAR),_ $(@:db))}$(ZIP8EXT) $(subst,LANGDIR_away/, $(ZIP8LIST:s/LANGDIR/LANGDIR_away/)) -x delzip $(avoid_cvs_dir) $(CHECKZIPRESULT) + $(COMMAND_ECHO)$(IFEXIST) $(ZIP8TMP).$(ZIP8TARGET){$(subst,$(ZIP8HELPVAR),_ $(@:db))}$(ZIP8EXT) $(THEN) \ + $(PERL) -w $(SOLARENV)/bin/cleanzip.pl $(ZIP8TMP).$(ZIP8TARGET){$(subst,$(ZIP8HELPVAR),_ $(@:db))}$(ZIP8EXT) \ + $(FI) + $(COMMAND_ECHO)$(COPY) $(ZIP8TMP).$(ZIP8TARGET){$(subst,$(ZIP8HELPVAR),_ $(@:db))}$(ZIP8EXT) $@.$(INPATH) + $(COMMAND_ECHO)$(RM) $(ZIP8TMP).$(ZIP8TARGET){$(subst,$(ZIP8HELPVAR),_ $(@:db))}$(ZIP8EXT) +.ELSE # "$(ZIP8DIR)" != "" + @@-$(GNUCOPY) -p $@ $(subst,$(COMMON_OUTDIR),$(OUTPATH) $@) + $(COMMAND_ECHO)zip $(ZIP_VERBOSITY) $(ZIP8FLAGS) $(subst,$(COMMON_OUTDIR),$(OUTPATH) $@) $(foreach,j,$(ZIP8LIST) $(subst,LANGDIR,{$(subst,$(ZIP8HELPVAR)_, $(@:db))} $j )) -x delzip $(avoid_cvs_dir) $(CHECKZIPRESULT) + $(COMMAND_ECHO)$(IFEXIST) $(subst,$(COMMON_OUTDIR),$(OUTPATH) $@) $(THEN) \ + $(PERL) -w $(SOLARENV)/bin/cleanzip.pl $(subst,$(COMMON_OUTDIR),$(OUTPATH) $@) \ + $(FI) + @@-$(GNUCOPY) -p $(subst,$(COMMON_OUTDIR),$(OUTPATH) $@) $@.$(INPATH) + @-$(RM) $(subst,$(COMMON_OUTDIR),$(OUTPATH) $@) +.ENDIF # "$(ZIP8DIR)" != "" + @@-$(RM) $@ + @$(IFEXIST) $@.$(INPATH) $(THEN) $(RENAME:s/+//) $@.$(INPATH) $@ $(FI) +# @$(IFEXIST) $@ $(THEN) $(TOUCH) $@ $(FI) # even if it's not used... +.ELSE # "$(common_build_zip)"!="" +.IF "$(ZIP8DIR)" != "" + @@-$(GNUCOPY) -p $@ $(ZIP8TMP).$(ZIP8TARGET){$(subst,$(ZIP8HELPVAR),_ $(@:db))}$(ZIP8EXT) + $(COMMAND_ECHO)-$(CDD) $(subst,LANGDIR,{$(subst,$(ZIP8HELPVAR)_, $(@:db))} $(ZIP8DIR)) $(command_seperator) zip $(ZIP_VERBOSITY) $(ZIP8FLAGS) $(ZIP8TMP).$(ZIP8TARGET){$(subst,$(ZIP8HELPVAR),_ $(@:db))}$(ZIP8EXT) $(subst,LANGDIR_away/, $(ZIP8LIST:s/LANGDIR/LANGDIR_away/)) -x delzip $(avoid_cvs_dir) $(CHECKZIPRESULT) + $(COMMAND_ECHO)$(IFEXIST) $(ZIP8TMP).$(ZIP8TARGET){$(subst,$(ZIP8HELPVAR),_ $(@:db))}$(ZIP8EXT) $(THEN) \ + $(PERL) -w $(SOLARENV)/bin/cleanzip.pl $(ZIP8TMP).$(ZIP8TARGET){$(subst,$(ZIP8HELPVAR),_ $(@:db))}$(ZIP8EXT) \ + $(FI) + $(COMMAND_ECHO)$(COPY) $(ZIP8TMP).$(ZIP8TARGET){$(subst,$(ZIP8HELPVAR),_ $(@:db))}$(ZIP8EXT) $@ + $(COMMAND_ECHO)$(RM) $(ZIP8TMP).$(ZIP8TARGET){$(subst,$(ZIP8HELPVAR),_ $(@:db))}$(ZIP8EXT) +.ELSE # "$(ZIP8DIR)" != "" + $(COMMAND_ECHO)zip $(ZIP_VERBOSITY) $(ZIP8FLAGS) $@ $(foreach,j,$(ZIP8LIST) $(subst,LANGDIR,{$(subst,$(BIN)/$(ZIP8TARGET)_, $(@:db))} $j )) -x delzip $(avoid_cvs_dir) $(CHECKZIPRESULT) + $(COMMAND_ECHO)$(IFEXIST) $@ $(THEN) \ + $(PERL) -w $(SOLARENV)/bin/cleanzip.pl $@ \ + $(FI) +.IF "$(ZIP8STRIPLANGUAGETAGS)" != "" + $(COMMAND_ECHO)$(IFEXIST) $@ $(THEN) \ + $(SOLARENV)/bin/striplanguagetags.sh $@ \ + $(FI) +.ENDIF +.ENDIF # "$(ZIP8DIR)" != "" +.ENDIF # "$(common_build_zip)"!="" +.ENDIF + +# unroll begin + +.IF "$(GUI)"=="WNT" +command_seperator=&& +#command_seperator=^ +avoid_cvs_dir=-x "*CVS*" -x "*.svn*" +.ELSE +command_seperator=; +avoid_cvs_dir=-x "*CVS*" -x "*.svn*" + +.ENDIF + +.IF "$(ZIP9TARGET)"!="" + +.IF "$(ZIP9STRIPLANGUAGETAGS)" != "" +CALLXSLTPROC:=$(XSLTPROC) +.EXPORT: CALLXSLTPROC +.ENDIF + +ZIP9EXT*=.zip +.IF "$(common_build_zip)"!="" +.IF "$(ZIP9LIST:s/LANGDIR//)" == "$(ZIP9LIST)" +ZIP9TARGETN=$(COMMONBIN)/$(ZIP9TARGET)$(ZIP9EXT) +.ELSE +ZIP9TARGETN=$(foreach,i,$(zip9alllangiso) $(COMMONBIN)/$(ZIP9TARGET)_$i$(ZIP9EXT) ) +.ENDIF +.ELSE # "$(common_build_zip)"!="" +.IF "$(ZIP9LIST:s/LANGDIR//)" == "$(ZIP9LIST)" +ZIP9TARGETN=$(BIN)/$(ZIP9TARGET)$(ZIP9EXT) +.ELSE +ZIP9TARGETN=$(foreach,i,$(zip9alllangiso) $(BIN)/$(ZIP9TARGET)_$i$(ZIP9EXT) ) +.ENDIF +.ENDIF # "$(common_build_zip)"!="" +ZIP9DEPFILE=$(subst,$(COMMON_OUTDIR),$(OUTPATH) $(subst,/bin/,/misc/ $(ZIP9TARGETN:s/$(ZIP9EXT)/.dpzz/))) +ZIPDEPFILES+=$(ZIP9DEPFILE) + +ZIP9DIR*=$(ZIPDIR) +ZIP9FLAGS*=$(ZIPFLAGS) +.IF "$(zip9generatedlangs)"!="" +zip9langdirs*=$(alllangiso) +.ELSE # "$(zip9generatedlangs)"!="" +zip9langdirs:=$(shell @-test -d {$(subst,/$(LANGDIR), $(null,$(ZIP9DIR) . $(ZIP9DIR)))}/ && find {$(subst,/$(LANGDIR), $(null,$(ZIP9DIR) . $(ZIP9DIR)))}/ -type d ! -name CVS ! -name ".svn" ! -name "." | sed "s/\.\/\///" | sed "s/\.\///" ) +.ENDIF # "$(zip9generatedlangs)"!="" +.IF "$(ZIP9FORCEALLLANG)"!="" +zip9alllangiso:=$(foreach,i,$(completelangiso) $(foreach,j,$(zip9langdirs) $(eq,$i,$j $i $(NULL)))) +.ELSE # "$(ZIP9ALLLANG)" != "" +zip9alllangiso*:=$(foreach,i,$(alllangiso) $(foreach,j,$(zip9langdirs) $(eq,$i,$j $i $(NULL)))) +.ENDIF # "$(ZIP9ALLLANG)" != "" +.ENDIF # "$(ZIP9TARGET)"!="" + +.IF "$(ZIP9TARGETN)"!="" + +ZIP9TMP:=$(mktmp iii) + +$(MISC)/$(TARGET).$(PWD:f).$(ZIP9TARGET).dpzz : $(ZIP9TARGETN) + +.IF "$(common_build_zip)"!="" +ZIP9HELPVAR=$(COMMONBIN)/$(ZIP9TARGET) +.ELSE # "$(common_build_zip)"!="" +ZIP9HELPVAR=$(BIN)/$(ZIP9TARGET) +.ENDIF # "$(common_build_zip)"!="" + +$(ZIP9DEPFILE) : + @echo # > $(MISC)/$(@:f) +.IF "$(common_build_zip)"!="" +.IF "$(ZIP9DIR)" != "" + $(COMMAND_ECHO)-$(MKDIRHIER) $(ZIP9DIR) + $(COMMAND_ECHO)$(CDD) $(subst,LANGDIR,. $(subst,/LANGDIR, $(ZIP9DIR))) $(command_seperator) $(ZIPDEP) $(ZIP9FLAGS) -prefix $(subst,LANGDIR,. $(subst,/LANGDIR, $(ZIP9DIR)))/ $(subst,$(OUTPATH),$(COMMON_OUTDIR) $(subst,/misc/,/bin/ $(@:s/.dpzz/$(ZIP9EXT)/))) $(foreach,j,$(ZIP9LIST) "{$(subst,LANGDIR,{$(subst,$(ZIP9TARGET)_, $(@:f:b))} $j )}") $(avoid_cvs_dir) >> $(PWD)/$(PRJ)/$(ROUT)/misc/$(@:f) +.ELSE # "$(ZIP9DIR)" != "" + $(COMMAND_ECHO)-$(ZIPDEP) $(ZIP9FLAGS) $(subst,$(OUTPATH),$(COMMON_OUTDIR) $(subst,/misc/,/bin/ $(@:s/.dpzz/$(ZIP9EXT)/))) $(foreach,j,$(ZIP9LIST) "{$(subst,LANGDIR,{$(subst,$(ZIP9TARGET)_, $(@:f:b))} $j )}") $(avoid_cvs_dir) >> $(MISC)/$(@:f) +.ENDIF # "$(ZIP9DIR)" != "" +.ELSE # "$(common_build_zip)"!="" +.IF "$(ZIP9DIR)" != "" + $(COMMAND_ECHO)-$(MKDIRHIER) $(ZIP9DIR) + $(COMMAND_ECHO)$(CDD) $(subst,LANGDIR,. $(subst,/LANGDIR, $(ZIP9DIR))) $(command_seperator) $(ZIPDEP) $(ZIP9FLAGS) -prefix $(subst,LANGDIR,. $(subst,/LANGDIR, $(ZIP9DIR)))/ $(subst,/misc/,/bin/ $(@:s/.dpzz/$(ZIP9EXT)/)) $(foreach,j,$(ZIP9LIST) "{$(subst,LANGDIR,{$(subst,$(BIN)/$(ZIP9TARGET)_, $(subst,/misc/,/bin/ $(@:db)))} $j )}") $(avoid_cvs_dir) >> $(PWD)/$(PRJ)/$(ROUT)/misc/$(@:f) +.ELSE # "$(ZIP9DIR)" != "" + $(COMMAND_ECHO)-$(ZIPDEP) $(ZIP9FLAGS) $(subst,/misc/,/bin/ $(@:s/.dpzz/$(ZIP9EXT)/)) $(foreach,j,$(ZIP9LIST) "{$(subst,LANGDIR,{$(subst,$(BIN)/$(ZIP9TARGET)_, $(subst,/misc/,/bin/ $(@:db)))} $j )}") $(avoid_cvs_dir) >> $(MISC)/$(@:f) +.ENDIF # "$(ZIP9DIR)" != "" +.ENDIF # "$(common_build_zip)"!="" + @echo $(@:n:s#\#/#) : makefile.mk >> $(MISC)/$(@:f) + + +$(ZIP9TARGETN) : delzip $(ZIP9DEPS) + @echo "Making: " $(@:f) + @@$(!eq,$?,$(?:s/delzip/zzz/) -$(RM) echo) $(uniq $@ $(subst,$(COMMON_OUTDIR),$(OUTPATH) $@)) + @$(eq,$?,$(?:s/delzip/zzz/) noop echo ) rebuilding zipfiles + @echo ------------------------------ $(eq,$?,$(?:s/delzip/zzz/) >&$(NULLDEV) ) +.IF "$(common_build_zip)"!="" +.IF "$(ZIP9DIR)" != "" + @@-$(GNUCOPY) -p $@ $(ZIP9TMP).$(ZIP9TARGET){$(subst,$(ZIP9HELPVAR),_ $(@:db))}$(ZIP9EXT) + $(COMMAND_ECHO)-$(CDD) $(subst,LANGDIR,{$(subst,$(ZIP9HELPVAR)_, $(@:db))} $(ZIP9DIR)) $(command_seperator) zip $(ZIP_VERBOSITY) $(ZIP9FLAGS) $(ZIP9TMP).$(ZIP9TARGET){$(subst,$(ZIP9HELPVAR),_ $(@:db))}$(ZIP9EXT) $(subst,LANGDIR_away/, $(ZIP9LIST:s/LANGDIR/LANGDIR_away/)) -x delzip $(avoid_cvs_dir) $(CHECKZIPRESULT) + $(COMMAND_ECHO)$(IFEXIST) $(ZIP9TMP).$(ZIP9TARGET){$(subst,$(ZIP9HELPVAR),_ $(@:db))}$(ZIP9EXT) $(THEN) \ + $(PERL) -w $(SOLARENV)/bin/cleanzip.pl $(ZIP9TMP).$(ZIP9TARGET){$(subst,$(ZIP9HELPVAR),_ $(@:db))}$(ZIP9EXT) \ + $(FI) + $(COMMAND_ECHO)$(COPY) $(ZIP9TMP).$(ZIP9TARGET){$(subst,$(ZIP9HELPVAR),_ $(@:db))}$(ZIP9EXT) $@.$(INPATH) + $(COMMAND_ECHO)$(RM) $(ZIP9TMP).$(ZIP9TARGET){$(subst,$(ZIP9HELPVAR),_ $(@:db))}$(ZIP9EXT) +.ELSE # "$(ZIP9DIR)" != "" + @@-$(GNUCOPY) -p $@ $(subst,$(COMMON_OUTDIR),$(OUTPATH) $@) + $(COMMAND_ECHO)zip $(ZIP_VERBOSITY) $(ZIP9FLAGS) $(subst,$(COMMON_OUTDIR),$(OUTPATH) $@) $(foreach,j,$(ZIP9LIST) $(subst,LANGDIR,{$(subst,$(ZIP9HELPVAR)_, $(@:db))} $j )) -x delzip $(avoid_cvs_dir) $(CHECKZIPRESULT) + $(COMMAND_ECHO)$(IFEXIST) $(subst,$(COMMON_OUTDIR),$(OUTPATH) $@) $(THEN) \ + $(PERL) -w $(SOLARENV)/bin/cleanzip.pl $(subst,$(COMMON_OUTDIR),$(OUTPATH) $@) \ + $(FI) + @@-$(GNUCOPY) -p $(subst,$(COMMON_OUTDIR),$(OUTPATH) $@) $@.$(INPATH) + @-$(RM) $(subst,$(COMMON_OUTDIR),$(OUTPATH) $@) +.ENDIF # "$(ZIP9DIR)" != "" + @@-$(RM) $@ + @$(IFEXIST) $@.$(INPATH) $(THEN) $(RENAME:s/+//) $@.$(INPATH) $@ $(FI) +# @$(IFEXIST) $@ $(THEN) $(TOUCH) $@ $(FI) # even if it's not used... +.ELSE # "$(common_build_zip)"!="" +.IF "$(ZIP9DIR)" != "" + @@-$(GNUCOPY) -p $@ $(ZIP9TMP).$(ZIP9TARGET){$(subst,$(ZIP9HELPVAR),_ $(@:db))}$(ZIP9EXT) + $(COMMAND_ECHO)-$(CDD) $(subst,LANGDIR,{$(subst,$(ZIP9HELPVAR)_, $(@:db))} $(ZIP9DIR)) $(command_seperator) zip $(ZIP_VERBOSITY) $(ZIP9FLAGS) $(ZIP9TMP).$(ZIP9TARGET){$(subst,$(ZIP9HELPVAR),_ $(@:db))}$(ZIP9EXT) $(subst,LANGDIR_away/, $(ZIP9LIST:s/LANGDIR/LANGDIR_away/)) -x delzip $(avoid_cvs_dir) $(CHECKZIPRESULT) + $(COMMAND_ECHO)$(IFEXIST) $(ZIP9TMP).$(ZIP9TARGET){$(subst,$(ZIP9HELPVAR),_ $(@:db))}$(ZIP9EXT) $(THEN) \ + $(PERL) -w $(SOLARENV)/bin/cleanzip.pl $(ZIP9TMP).$(ZIP9TARGET){$(subst,$(ZIP9HELPVAR),_ $(@:db))}$(ZIP9EXT) \ + $(FI) + $(COMMAND_ECHO)$(COPY) $(ZIP9TMP).$(ZIP9TARGET){$(subst,$(ZIP9HELPVAR),_ $(@:db))}$(ZIP9EXT) $@ + $(COMMAND_ECHO)$(RM) $(ZIP9TMP).$(ZIP9TARGET){$(subst,$(ZIP9HELPVAR),_ $(@:db))}$(ZIP9EXT) +.ELSE # "$(ZIP9DIR)" != "" + $(COMMAND_ECHO)zip $(ZIP_VERBOSITY) $(ZIP9FLAGS) $@ $(foreach,j,$(ZIP9LIST) $(subst,LANGDIR,{$(subst,$(BIN)/$(ZIP9TARGET)_, $(@:db))} $j )) -x delzip $(avoid_cvs_dir) $(CHECKZIPRESULT) + $(COMMAND_ECHO)$(IFEXIST) $@ $(THEN) \ + $(PERL) -w $(SOLARENV)/bin/cleanzip.pl $@ \ + $(FI) +.IF "$(ZIP9STRIPLANGUAGETAGS)" != "" + $(COMMAND_ECHO)$(IFEXIST) $@ $(THEN) \ + $(SOLARENV)/bin/striplanguagetags.sh $@ \ + $(FI) +.ENDIF +.ENDIF # "$(ZIP9DIR)" != "" +.ENDIF # "$(common_build_zip)"!="" +.ENDIF + +# unroll begin + +.IF "$(GUI)"=="WNT" +command_seperator=&& +#command_seperator=^ +avoid_cvs_dir=-x "*CVS*" -x "*.svn*" +.ELSE +command_seperator=; +avoid_cvs_dir=-x "*CVS*" -x "*.svn*" + +.ENDIF + +.IF "$(ZIP10TARGET)"!="" + +.IF "$(ZIP10STRIPLANGUAGETAGS)" != "" +CALLXSLTPROC:=$(XSLTPROC) +.EXPORT: CALLXSLTPROC +.ENDIF + +ZIP10EXT*=.zip +.IF "$(common_build_zip)"!="" +.IF "$(ZIP10LIST:s/LANGDIR//)" == "$(ZIP10LIST)" +ZIP10TARGETN=$(COMMONBIN)/$(ZIP10TARGET)$(ZIP10EXT) +.ELSE +ZIP10TARGETN=$(foreach,i,$(zip10alllangiso) $(COMMONBIN)/$(ZIP10TARGET)_$i$(ZIP10EXT) ) +.ENDIF +.ELSE # "$(common_build_zip)"!="" +.IF "$(ZIP10LIST:s/LANGDIR//)" == "$(ZIP10LIST)" +ZIP10TARGETN=$(BIN)/$(ZIP10TARGET)$(ZIP10EXT) +.ELSE +ZIP10TARGETN=$(foreach,i,$(zip10alllangiso) $(BIN)/$(ZIP10TARGET)_$i$(ZIP10EXT) ) +.ENDIF +.ENDIF # "$(common_build_zip)"!="" +ZIP10DEPFILE=$(subst,$(COMMON_OUTDIR),$(OUTPATH) $(subst,/bin/,/misc/ $(ZIP10TARGETN:s/$(ZIP10EXT)/.dpzz/))) +ZIPDEPFILES+=$(ZIP10DEPFILE) + +ZIP10DIR*=$(ZIPDIR) +ZIP10FLAGS*=$(ZIPFLAGS) +.IF "$(zip10generatedlangs)"!="" +zip10langdirs*=$(alllangiso) +.ELSE # "$(zip10generatedlangs)"!="" +zip10langdirs:=$(shell @-test -d {$(subst,/$(LANGDIR), $(null,$(ZIP10DIR) . $(ZIP10DIR)))}/ && find {$(subst,/$(LANGDIR), $(null,$(ZIP10DIR) . $(ZIP10DIR)))}/ -type d ! -name CVS ! -name ".svn" ! -name "." | sed "s/\.\/\///" | sed "s/\.\///" ) +.ENDIF # "$(zip10generatedlangs)"!="" +.IF "$(ZIP10FORCEALLLANG)"!="" +zip10alllangiso:=$(foreach,i,$(completelangiso) $(foreach,j,$(zip10langdirs) $(eq,$i,$j $i $(NULL)))) +.ELSE # "$(ZIP10ALLLANG)" != "" +zip10alllangiso*:=$(foreach,i,$(alllangiso) $(foreach,j,$(zip10langdirs) $(eq,$i,$j $i $(NULL)))) +.ENDIF # "$(ZIP10ALLLANG)" != "" +.ENDIF # "$(ZIP10TARGET)"!="" + +.IF "$(ZIP10TARGETN)"!="" + +ZIP10TMP:=$(mktmp iii) + +$(MISC)/$(TARGET).$(PWD:f).$(ZIP10TARGET).dpzz : $(ZIP10TARGETN) + +.IF "$(common_build_zip)"!="" +ZIP10HELPVAR=$(COMMONBIN)/$(ZIP10TARGET) +.ELSE # "$(common_build_zip)"!="" +ZIP10HELPVAR=$(BIN)/$(ZIP10TARGET) +.ENDIF # "$(common_build_zip)"!="" + +$(ZIP10DEPFILE) : + @echo # > $(MISC)/$(@:f) +.IF "$(common_build_zip)"!="" +.IF "$(ZIP10DIR)" != "" + $(COMMAND_ECHO)-$(MKDIRHIER) $(ZIP10DIR) + $(COMMAND_ECHO)$(CDD) $(subst,LANGDIR,. $(subst,/LANGDIR, $(ZIP10DIR))) $(command_seperator) $(ZIPDEP) $(ZIP10FLAGS) -prefix $(subst,LANGDIR,. $(subst,/LANGDIR, $(ZIP10DIR)))/ $(subst,$(OUTPATH),$(COMMON_OUTDIR) $(subst,/misc/,/bin/ $(@:s/.dpzz/$(ZIP10EXT)/))) $(foreach,j,$(ZIP10LIST) "{$(subst,LANGDIR,{$(subst,$(ZIP10TARGET)_, $(@:f:b))} $j )}") $(avoid_cvs_dir) >> $(PWD)/$(PRJ)/$(ROUT)/misc/$(@:f) +.ELSE # "$(ZIP10DIR)" != "" + $(COMMAND_ECHO)-$(ZIPDEP) $(ZIP10FLAGS) $(subst,$(OUTPATH),$(COMMON_OUTDIR) $(subst,/misc/,/bin/ $(@:s/.dpzz/$(ZIP10EXT)/))) $(foreach,j,$(ZIP10LIST) "{$(subst,LANGDIR,{$(subst,$(ZIP10TARGET)_, $(@:f:b))} $j )}") $(avoid_cvs_dir) >> $(MISC)/$(@:f) +.ENDIF # "$(ZIP10DIR)" != "" +.ELSE # "$(common_build_zip)"!="" +.IF "$(ZIP10DIR)" != "" + $(COMMAND_ECHO)-$(MKDIRHIER) $(ZIP10DIR) + $(COMMAND_ECHO)$(CDD) $(subst,LANGDIR,. $(subst,/LANGDIR, $(ZIP10DIR))) $(command_seperator) $(ZIPDEP) $(ZIP10FLAGS) -prefix $(subst,LANGDIR,. $(subst,/LANGDIR, $(ZIP10DIR)))/ $(subst,/misc/,/bin/ $(@:s/.dpzz/$(ZIP10EXT)/)) $(foreach,j,$(ZIP10LIST) "{$(subst,LANGDIR,{$(subst,$(BIN)/$(ZIP10TARGET)_, $(subst,/misc/,/bin/ $(@:db)))} $j )}") $(avoid_cvs_dir) >> $(PWD)/$(PRJ)/$(ROUT)/misc/$(@:f) +.ELSE # "$(ZIP10DIR)" != "" + $(COMMAND_ECHO)-$(ZIPDEP) $(ZIP10FLAGS) $(subst,/misc/,/bin/ $(@:s/.dpzz/$(ZIP10EXT)/)) $(foreach,j,$(ZIP10LIST) "{$(subst,LANGDIR,{$(subst,$(BIN)/$(ZIP10TARGET)_, $(subst,/misc/,/bin/ $(@:db)))} $j )}") $(avoid_cvs_dir) >> $(MISC)/$(@:f) +.ENDIF # "$(ZIP10DIR)" != "" +.ENDIF # "$(common_build_zip)"!="" + @echo $(@:n:s#\#/#) : makefile.mk >> $(MISC)/$(@:f) + + +$(ZIP10TARGETN) : delzip $(ZIP10DEPS) + @echo "Making: " $(@:f) + @@$(!eq,$?,$(?:s/delzip/zzz/) -$(RM) echo) $(uniq $@ $(subst,$(COMMON_OUTDIR),$(OUTPATH) $@)) + @$(eq,$?,$(?:s/delzip/zzz/) noop echo ) rebuilding zipfiles + @echo ------------------------------ $(eq,$?,$(?:s/delzip/zzz/) >&$(NULLDEV) ) +.IF "$(common_build_zip)"!="" +.IF "$(ZIP10DIR)" != "" + @@-$(GNUCOPY) -p $@ $(ZIP10TMP).$(ZIP10TARGET){$(subst,$(ZIP10HELPVAR),_ $(@:db))}$(ZIP10EXT) + $(COMMAND_ECHO)-$(CDD) $(subst,LANGDIR,{$(subst,$(ZIP10HELPVAR)_, $(@:db))} $(ZIP10DIR)) $(command_seperator) zip $(ZIP_VERBOSITY) $(ZIP10FLAGS) $(ZIP10TMP).$(ZIP10TARGET){$(subst,$(ZIP10HELPVAR),_ $(@:db))}$(ZIP10EXT) $(subst,LANGDIR_away/, $(ZIP10LIST:s/LANGDIR/LANGDIR_away/)) -x delzip $(avoid_cvs_dir) $(CHECKZIPRESULT) + $(COMMAND_ECHO)$(IFEXIST) $(ZIP10TMP).$(ZIP10TARGET){$(subst,$(ZIP10HELPVAR),_ $(@:db))}$(ZIP10EXT) $(THEN) \ + $(PERL) -w $(SOLARENV)/bin/cleanzip.pl $(ZIP10TMP).$(ZIP10TARGET){$(subst,$(ZIP10HELPVAR),_ $(@:db))}$(ZIP10EXT) \ + $(FI) + $(COMMAND_ECHO)$(COPY) $(ZIP10TMP).$(ZIP10TARGET){$(subst,$(ZIP10HELPVAR),_ $(@:db))}$(ZIP10EXT) $@.$(INPATH) + $(COMMAND_ECHO)$(RM) $(ZIP10TMP).$(ZIP10TARGET){$(subst,$(ZIP10HELPVAR),_ $(@:db))}$(ZIP10EXT) +.ELSE # "$(ZIP10DIR)" != "" + @@-$(GNUCOPY) -p $@ $(subst,$(COMMON_OUTDIR),$(OUTPATH) $@) + $(COMMAND_ECHO)zip $(ZIP_VERBOSITY) $(ZIP10FLAGS) $(subst,$(COMMON_OUTDIR),$(OUTPATH) $@) $(foreach,j,$(ZIP10LIST) $(subst,LANGDIR,{$(subst,$(ZIP10HELPVAR)_, $(@:db))} $j )) -x delzip $(avoid_cvs_dir) $(CHECKZIPRESULT) + $(COMMAND_ECHO)$(IFEXIST) $(subst,$(COMMON_OUTDIR),$(OUTPATH) $@) $(THEN) \ + $(PERL) -w $(SOLARENV)/bin/cleanzip.pl $(subst,$(COMMON_OUTDIR),$(OUTPATH) $@) \ + $(FI) + @@-$(GNUCOPY) -p $(subst,$(COMMON_OUTDIR),$(OUTPATH) $@) $@.$(INPATH) + @-$(RM) $(subst,$(COMMON_OUTDIR),$(OUTPATH) $@) +.ENDIF # "$(ZIP10DIR)" != "" + @@-$(RM) $@ + @$(IFEXIST) $@.$(INPATH) $(THEN) $(RENAME:s/+//) $@.$(INPATH) $@ $(FI) +# @$(IFEXIST) $@ $(THEN) $(TOUCH) $@ $(FI) # even if it's not used... +.ELSE # "$(common_build_zip)"!="" +.IF "$(ZIP10DIR)" != "" + @@-$(GNUCOPY) -p $@ $(ZIP10TMP).$(ZIP10TARGET){$(subst,$(ZIP10HELPVAR),_ $(@:db))}$(ZIP10EXT) + $(COMMAND_ECHO)-$(CDD) $(subst,LANGDIR,{$(subst,$(ZIP10HELPVAR)_, $(@:db))} $(ZIP10DIR)) $(command_seperator) zip $(ZIP_VERBOSITY) $(ZIP10FLAGS) $(ZIP10TMP).$(ZIP10TARGET){$(subst,$(ZIP10HELPVAR),_ $(@:db))}$(ZIP10EXT) $(subst,LANGDIR_away/, $(ZIP10LIST:s/LANGDIR/LANGDIR_away/)) -x delzip $(avoid_cvs_dir) $(CHECKZIPRESULT) + $(COMMAND_ECHO)$(IFEXIST) $(ZIP10TMP).$(ZIP10TARGET){$(subst,$(ZIP10HELPVAR),_ $(@:db))}$(ZIP10EXT) $(THEN) \ + $(PERL) -w $(SOLARENV)/bin/cleanzip.pl $(ZIP10TMP).$(ZIP10TARGET){$(subst,$(ZIP10HELPVAR),_ $(@:db))}$(ZIP10EXT) \ + $(FI) + $(COMMAND_ECHO)$(COPY) $(ZIP10TMP).$(ZIP10TARGET){$(subst,$(ZIP10HELPVAR),_ $(@:db))}$(ZIP10EXT) $@ + $(COMMAND_ECHO)$(RM) $(ZIP10TMP).$(ZIP10TARGET){$(subst,$(ZIP10HELPVAR),_ $(@:db))}$(ZIP10EXT) +.ELSE # "$(ZIP10DIR)" != "" + $(COMMAND_ECHO)zip $(ZIP_VERBOSITY) $(ZIP10FLAGS) $@ $(foreach,j,$(ZIP10LIST) $(subst,LANGDIR,{$(subst,$(BIN)/$(ZIP10TARGET)_, $(@:db))} $j )) -x delzip $(avoid_cvs_dir) $(CHECKZIPRESULT) + $(COMMAND_ECHO)$(IFEXIST) $@ $(THEN) \ + $(PERL) -w $(SOLARENV)/bin/cleanzip.pl $@ \ + $(FI) +.IF "$(ZIP10STRIPLANGUAGETAGS)" != "" + $(COMMAND_ECHO)$(IFEXIST) $@ $(THEN) \ + $(SOLARENV)/bin/striplanguagetags.sh $@ \ + $(FI) +.ENDIF +.ENDIF # "$(ZIP10DIR)" != "" +.ENDIF # "$(common_build_zip)"!="" +.ENDIF + diff --git a/solenv/inc/ant.mk b/solenv/inc/ant.mk new file mode 100644 index 000000000000..dd86f7e4a825 --- /dev/null +++ b/solenv/inc/ant.mk @@ -0,0 +1,98 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +# --- Force JDK14 switch ------------------------------------------ + +.IF "$(USE_JDK_VERSION)" == "140" +JDK_VERSION=140 +JAVA_HOME=$(JDK14PATH) + +PATH!:=$(JDK14PATH)/bin$(PATH_SEPERATOR)$(PATH) +XCLASSPATH:=$(JDK14PATH)/jre/lib/rt.jar +CLASSPATH:=$(XCLASSPATH) +.ENDIF + +# --- Settings ----------------------------------------------------- + +.INCLUDE : settings.mk + + +# --- ANT build environment --------------------------------------- + +.INCLUDE : antsettings.mk + +.INCLUDE : target.mk + +CLASSPATH!:=$(CLASSPATH)$(PATH_SEPERATOR)$(ANT_CLASSPATH)$(PATH_SEPERATOR)$(JAVA_HOME)/lib/tools.jar +.EXPORT : CLASSPATH +.EXPORT : PATH + +# --- TARGETS ----------------------------------------------------- + +$(CLASSDIR)/solar.properties : $(SOLARVERSION)/$(INPATH)/inc/minormkchanged.flg $(SOLARENV)/inc/ant.properties + @echo "Making: " $@ + @echo solar.build=$(BUILD) > $@ + @echo solar.rscversion=$(USQ)$(RSCVERSION)$(USQ) >> $@ + @echo solar.rscrevision=$(USQ)$(RSCREVISION)$(USQ) >> $@ + @echo solar.minor=$(LAST_MINOR) >> $@ + @echo solar.sourceversion=$(SOURCEVERSION) >> $@ + @echo solar.udkstamp=$(UDKSTAMP) >> $@ + @echo solar.extstamp=$(EXTSTAMP) >> $@ + @cat $(DMAKEROOT)/../ant.properties >> $@ + +ANTBUILD .PHONY: + $(COMMAND_ECHO)$(ANT) $(ANT_FLAGS) + +clean .PHONY: + $(COMMAND_ECHO)$(ANT) $(ANT_FLAGS) $@ + +prepare .PHONY: + $(COMMAND_ECHO)$(ANT) $(ANT_FLAGS) $@ + +main: .PHONY: + $(ANT) $(ANT_FLAGS) $@ + +info: .PHONY + $(ANT) $(ANT_FLAGS) $@ + +jar .PHONY: + $(COMMAND_ECHO)$(ANT) $(ANT_FLAGS) $@ + +compile .PHONY: + $(COMMAND_ECHO)$(ANT) $(ANT_FLAGS) $@ + +depend .PHONY: + $(COMMAND_ECHO)$(ANT) $(ANT_FLAGS) $@ + +javadoc .PHONY: + $(COMMAND_ECHO)$(ANT) $(ANT_FLAGS) $@ + +config .PHONY: + $(COMMAND_ECHO)$(ANT) $(ANT_FLAGS) $@ + +test .PHONY: + $(COMMAND_ECHO)$(ANT) $(ANT_FLAGS) $@ diff --git a/solenv/inc/ant.properties b/solenv/inc/ant.properties new file mode 100644 index 000000000000..b2c0f748ef7a --- /dev/null +++ b/solenv/inc/ant.properties @@ -0,0 +1,12 @@ +# x-no-translate +build.bin=${build.dir}/bin +build.class=${build.dir}/class +build.inc=${build.dir}/inc +build.lib=${build.dir}/lib +build.misc=${build.dir}/misc +build.obj=${build.dir}/obj +build.res=${build.dir}/res +build.slb=${build.dir}/slb +build.slo=${build.dir}/slo +build.srs=${build.dir}/srs + diff --git a/solenv/inc/antsettings.mk b/solenv/inc/antsettings.mk new file mode 100644 index 000000000000..0137e33b6b5c --- /dev/null +++ b/solenv/inc/antsettings.mk @@ -0,0 +1,97 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + + +.IF "$(SOLAR_JAVA)"!="" + +ANT_LIB*:=$(ANT_HOME)/lib + +ANT_CLASSPATH:=$(ANT_LIB)/xercesImpl.jar$(PATH_SEPERATOR)$(ANT_LIB)/xml-apis.jar$(PATH_SEPERATOR)$(ANT_LIB)/ant.jar + +# PATH_SEPERATOR won't work here as it is defined +# as ; for wondows (all shells) +#PATH!:=$(ANT_HOME)/bin$(PATH_SEPERATOR)$(PATH) +PATH!:=$(ANT_HOME)/bin:$(PATH) + +ANT*:=$(ANT_HOME)/bin/ant +ANT_BUILDFILE*=build.xml + +.IF "$(ANT_COMPILER_FLAGS)"=="" +.IF "$(JAVACISGCJ)" == "yes" +ANT_COMPILER_FLAGS=-Dbuild.compiler=gcj +.ENDIF +.ENDIF + +.IF "$(ANT_JAVA_VER_FLAGS)"=="" +.IF "$(JDK)" != "gcj" && $(JAVACISKAFFE) != "yes" +ANT_JAVA_VER_FLAGS=-Dant.build.javac.source=$(JAVA_SOURCE_VER) -Dant.build.javac.target=$(JAVA_TARGET_VER) +.ENDIF +.ENDIF + +.IF "$(ANT_DEBUG)"=="" +.IF "$(debug)"=="" +ANT_DEBUG=off +.ELSE +ANT_DEBUG=on +.ENDIF +.ENDIF + +.IF "$(ANT_OPT)"=="" +.IF "$(optimize)"=="" +ANT_OPT=off +.ELSE +ANT_OPT=on +.ENDIF +.ENDIF + +.IF "$(VERBOSE)" == "TRUE" + ANT_VERBOSE=-v +.ELSE + ANT_VERBOSE=-q +.ENDIF + +.IF "$(JDK)"=="gcj" +JAVA_HOME= +.EXPORT : JAVA_HOME +.ENDIF + +ANT_FLAGS!:=$(ANT_COMPILER_FLAGS) -Dprj=$(PRJ) -Dprjname=$(PRJNAME) $(ANT_JAVA_VER_FLAGS) \ + -Ddebug=$(ANT_DEBUG) -Doptimize=$(ANT_OPT) -Dtarget=$(TARGET) -Dsolar.update=on \ + -Dout=$(OUT) -Dinpath=$(INPATH) -Dproext="$(PROEXT)" -Dsolar.bin=$(SOLARBINDIR) \ + -Dsolar.jar=$(SOLARVER)/$(INPATH)/bin -Dsolar.doc=$(SOLARDOCDIR) -Dcommon.jar=$(SOLARCOMMONBINDIR) \ + -Dcommon.doc=$(SOLARCOMMONDOCDIR) -Dsolar.sourceversion=$(SOURCEVERSION) \ + -Dsolar.lastminor=$(LAST_MINOR) -Dsolar.build=$(BUILD) -f $(ANT_BUILDFILE) $(ANT_FLAGS) \ + -emacs $(ANT_VERBOSE) +.ELSE # No java +ANT= +ANT_FLAGS= +.ENDIF + +.IF "$(WITH_LANG)"!="" +ANT_FLAGS+=-Dsolar.langs="$(WITH_LANG)" -Dsolar.localized="true" +.ENDIF # "$(WITH_LANG)"!="" + diff --git a/solenv/inc/cppunit.mk b/solenv/inc/cppunit.mk new file mode 100644 index 000000000000..b30ca7152700 --- /dev/null +++ b/solenv/inc/cppunit.mk @@ -0,0 +1,56 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +# Helper makefile additional, to support +# dmake test +# for cppunittester (cppunit testing) +# for simple start all generated libraries: +# dmake test +# +# for library 1 & 2: +# or dmake test1 test2 + +# This file have to be unroll by +# cat cppunit.mk | mkunroll >_cppunit.mk +# all between begin and end will repeat n times (at the moment n=10) to create such iterations +# $(TNR) is the number +# $(SHL$(TNR)TARGETN) is the same like $(OUT)/bin/$(SHL1TARGET) for every number, within unix, "bin" is replaced by "lib" + +################################################################################ +# unroll begin +# ---- create the test libraries ------------------------------------ + +.IF "$(SHL$(TNR)TARGETN)"!="" +ALLTAR : test$(TNR) +test$(TNR) .PHONY : $(SHL$(TNR)TARGETN) + @echo ---------------------------------------------------------- + @echo - start unit test \#$(TNR) on library $(SHL$(TNR)TARGETN) + @echo ---------------------------------------------------------- + $(CPPUNITTESTER) $(SHL$(TNR)TARGETN) +.ENDIF + +# unroll end diff --git a/solenv/inc/doxygen.cfg b/solenv/inc/doxygen.cfg new file mode 100644 index 000000000000..7aa1548c0d22 --- /dev/null +++ b/solenv/inc/doxygen.cfg @@ -0,0 +1,1314 @@ +# Doxyfile 1.5.3 + +# This file describes the settings to be used by the documentation system +# doxygen (www.doxygen.org) for a project +# +# All text after a hash (#) is considered a comment and will be ignored +# The format is: +# TAG = value [value, ...] +# For lists items can also be appended using: +# TAG += value [value, ...] +# Values that contain spaces should be placed between quotes (" ") + +#--------------------------------------------------------------------------- +# Project related configuration options +#--------------------------------------------------------------------------- + +# This tag specifies the encoding used for all characters in the config file that +# follow. The default is UTF-8 which is also the encoding used for all text before +# the first occurrence of this tag. Doxygen uses libiconv (or the iconv built into +# libc) for the transcoding. See http://www.gnu.org/software/libiconv for the list of +# possible encodings. + +DOXYFILE_ENCODING = UTF-8 + +# The PROJECT_NAME tag is a single word (or a sequence of words surrounded +# by quotes) that should identify the project. + +PROJECT_NAME = "$(DOXYGEN_PROJECTNAME) ($(DOXYGEN_VERSION)) " + +# The PROJECT_NUMBER tag can be used to enter a project or revision number. +# This could be handy for archiving the generated documentation or +# if some version control system is used. + +PROJECT_NUMBER = 1 + +# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) +# base path where the generated documentation will be put. +# If a relative path is entered, it will be relative to the location +# where doxygen was started. If left blank the current directory will be used. + +OUTPUT_DIRECTORY = $(DOXYGEN_OUTPUT) + +# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create +# 4096 sub-directories (in 2 levels) under the output directory of each output +# format and will distribute the generated files over these directories. +# Enabling this option can be useful when feeding doxygen a huge amount of +# source files, where putting all generated files in the same directory would +# otherwise cause performance problems for the file system. + +CREATE_SUBDIRS = NO + +# The OUTPUT_LANGUAGE tag is used to specify the language in which all +# documentation generated by doxygen is written. Doxygen will use this +# information to generate all constant output in the proper language. +# The default language is English, other supported languages are: +# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional, +# Croatian, Czech, Danish, Dutch, Finnish, French, German, Greek, Hungarian, +# Italian, Japanese, Japanese-en (Japanese with English messages), Korean, +# Korean-en, Lithuanian, Norwegian, Polish, Portuguese, Romanian, Russian, +# Serbian, Slovak, Slovene, Spanish, Swedish, and Ukrainian. + +OUTPUT_LANGUAGE = English + +# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will +# include brief member descriptions after the members that are listed in +# the file and class documentation (similar to JavaDoc). +# Set to NO to disable this. + +BRIEF_MEMBER_DESC = YES + +# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend +# the brief description of a member or function before the detailed description. +# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the +# brief descriptions will be completely suppressed. + +REPEAT_BRIEF = YES + +# This tag implements a quasi-intelligent brief description abbreviator +# that is used to form the text in various listings. Each string +# in this list, if found as the leading text of the brief description, will be +# stripped from the text and the result after processing the whole list, is +# used as the annotated text. Otherwise, the brief description is used as-is. +# If left blank, the following values are used ("$name" is automatically +# replaced with the name of the entity): "The $name class" "The $name widget" +# "The $name file" "is" "provides" "specifies" "contains" +# "represents" "a" "an" "the" + +ABBREVIATE_BRIEF = + +# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then +# Doxygen will generate a detailed section even if there is only a brief +# description. + +ALWAYS_DETAILED_SEC = NO + +# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all +# inherited members of a class in the documentation of that class as if those +# members were ordinary class members. Constructors, destructors and assignment +# operators of the base classes will not be shown. + +INLINE_INHERITED_MEMB = NO + +# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full +# path before files name in the file list and in the header files. If set +# to NO the shortest path that makes the file name unique will be used. + +FULL_PATH_NAMES = NO + +# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag +# can be used to strip a user-defined part of the path. Stripping is +# only done if one of the specified strings matches the left-hand part of +# the path. The tag can be used to show relative paths in the file list. +# If left blank the directory from which doxygen is run is used as the +# path to strip. + +STRIP_FROM_PATH = + +# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of +# the path mentioned in the documentation of a class, which tells +# the reader which header file to include in order to use a class. +# If left blank only the name of the header file containing the class +# definition is used. Otherwise one should specify the include paths that +# are normally passed to the compiler using the -I flag. + +STRIP_FROM_INC_PATH = + +# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter +# (but less readable) file names. This can be useful is your file systems +# doesn't support long names like on DOS, Mac, or CD-ROM. + +SHORT_NAMES = NO + +# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen +# will interpret the first line (until the first dot) of a JavaDoc-style +# comment as the brief description. If set to NO, the JavaDoc +# comments will behave just like regular Qt-style comments +# (thus requiring an explicit @brief command for a brief description.) + +JAVADOC_AUTOBRIEF = YES + +# If the QT_AUTOBRIEF tag is set to YES then Doxygen will +# interpret the first line (until the first dot) of a Qt-style +# comment as the brief description. If set to NO, the comments +# will behave just like regular Qt-style comments (thus requiring +# an explicit \brief command for a brief description.) + +QT_AUTOBRIEF = NO + +# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen +# treat a multi-line C++ special comment block (i.e. a block of //! or /// +# comments) as a brief description. This used to be the default behaviour. +# The new default is to treat a multi-line C++ comment block as a detailed +# description. Set this tag to YES if you prefer the old behaviour instead. + +MULTILINE_CPP_IS_BRIEF = NO + +# If the DETAILS_AT_TOP tag is set to YES then Doxygen +# will output the detailed description near the top, like JavaDoc. +# If set to NO, the detailed description appears after the member +# documentation. + +DETAILS_AT_TOP = NO + +# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented +# member inherits the documentation from any documented member that it +# re-implements. + +INHERIT_DOCS = YES + +# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce +# a new page for each member. If set to NO, the documentation of a member will +# be part of the file/class/namespace that contains it. + +SEPARATE_MEMBER_PAGES = NO + +# The TAB_SIZE tag can be used to set the number of spaces in a tab. +# Doxygen uses this value to replace tabs by spaces in code fragments. + +TAB_SIZE = 4 + +# This tag can be used to specify a number of aliases that acts +# as commands in the documentation. An alias has the form "name=value". +# For example adding "sideeffect=\par Side Effects:\n" will allow you to +# put the command \sideeffect (or @sideeffect) in the documentation, which +# will result in a user-defined paragraph with heading "Side Effects:". +# You can put \n's in the value part of an alias to insert newlines. + +ALIASES = "tpl=\par Template parameter: \n" "since=\par Available since: \n" "derive=\par Derive: \n" "attention=\par Attention: \n" +# precond throws see path todo(own section, can enable!) + +# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C +# sources only. Doxygen will then generate output that is more tailored for C. +# For instance, some of the names that are used will be different. The list +# of all members will be omitted, etc. + +OPTIMIZE_OUTPUT_FOR_C = NO + +# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java +# sources only. Doxygen will then generate output that is more tailored for Java. +# For instance, namespaces will be presented as packages, qualified scopes +# will look different, etc. + +OPTIMIZE_OUTPUT_JAVA = NO + +# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want to +# include (a tag file for) the STL sources as input, then you should +# set this tag to YES in order to let doxygen match functions declarations and +# definitions whose arguments contain STL classes (e.g. func(std::string); v.s. +# func(std::string) {}). This also make the inheritance and collaboration +# diagrams that involve STL classes more complete and accurate. + +BUILTIN_STL_SUPPORT = NO + +# If you use Microsoft's C++/CLI language, you should set this option to YES to +# enable parsing support. + +CPP_CLI_SUPPORT = NO + +# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC +# tag is set to YES, then doxygen will reuse the documentation of the first +# member in the group (if any) for the other members of the group. By default +# all members of a group must be documented explicitly. + +DISTRIBUTE_GROUP_DOC = NO + +# Set the SUBGROUPING tag to YES (the default) to allow class member groups of +# the same type (for instance a group of public functions) to be put as a +# subgroup of that type (e.g. under the Public Functions section). Set it to +# NO to prevent subgrouping. Alternatively, this can be done per class using +# the \nosubgrouping command. + +SUBGROUPING = YES + +#--------------------------------------------------------------------------- +# Build related configuration options +#--------------------------------------------------------------------------- + +# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in +# documentation are documented, even if no documentation was available. +# Private class members and static file members will be hidden unless +# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES + +EXTRACT_ALL = YES + +# If the EXTRACT_PRIVATE tag is set to YES all private members of a class +# will be included in the documentation. + +EXTRACT_PRIVATE = YES + +# If the EXTRACT_STATIC tag is set to YES all static members of a file +# will be included in the documentation. + +EXTRACT_STATIC = YES + +# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) +# defined locally in source files will be included in the documentation. +# If set to NO only classes defined in header files are included. + +EXTRACT_LOCAL_CLASSES = YES + +# This flag is only useful for Objective-C code. When set to YES local +# methods, which are defined in the implementation section but not in +# the interface are included in the documentation. +# If set to NO (the default) only methods in the interface are included. + +EXTRACT_LOCAL_METHODS = NO + +# If this flag is set to YES, the members of anonymous namespaces will be extracted +# and appear in the documentation as a namespace called 'anonymous_namespace{file}', +# where file will be replaced with the base name of the file that contains the anonymous +# namespace. By default anonymous namespace are hidden. + +EXTRACT_ANON_NSPACES = NO + +# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all +# undocumented members of documented classes, files or namespaces. +# If set to NO (the default) these members will be included in the +# various overviews, but no documentation section is generated. +# This option has no effect if EXTRACT_ALL is enabled. + +HIDE_UNDOC_MEMBERS = NO + +# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all +# undocumented classes that are normally visible in the class hierarchy. +# If set to NO (the default) these classes will be included in the various +# overviews. This option has no effect if EXTRACT_ALL is enabled. + +HIDE_UNDOC_CLASSES = NO + +# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all +# friend (class|struct|union) declarations. +# If set to NO (the default) these declarations will be included in the +# documentation. + +HIDE_FRIEND_COMPOUNDS = NO + +# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any +# documentation blocks found inside the body of a function. +# If set to NO (the default) these blocks will be appended to the +# function's detailed documentation block. + +HIDE_IN_BODY_DOCS = NO + +# The INTERNAL_DOCS tag determines if documentation +# that is typed after a \internal command is included. If the tag is set +# to NO (the default) then the documentation will be excluded. +# Set it to YES to include the internal documentation. + +INTERNAL_DOCS = NO + +# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate +# file names in lower-case letters. If set to YES upper-case letters are also +# allowed. This is useful if you have classes or files whose names only differ +# in case and if your file system supports case sensitive file names. Windows +# and Mac users are advised to set this option to NO. + +CASE_SENSE_NAMES = YES + +# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen +# will show members with their full class and namespace scopes in the +# documentation. If set to YES the scope will be hidden. + +HIDE_SCOPE_NAMES = NO + +# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen +# will put a list of the files that are included by a file in the documentation +# of that file. + +SHOW_INCLUDE_FILES = YES + +# If the INLINE_INFO tag is set to YES (the default) then a tag [inline] +# is inserted in the documentation for inline members. + +INLINE_INFO = YES + +# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen +# will sort the (detailed) documentation of file and class members +# alphabetically by member name. If set to NO the members will appear in +# declaration order. + +SORT_MEMBER_DOCS = YES + +# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the +# brief documentation of file, namespace and class members alphabetically +# by member name. If set to NO (the default) the members will appear in +# declaration order. + +SORT_BRIEF_DOCS = NO + +# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be +# sorted by fully-qualified names, including namespaces. If set to +# NO (the default), the class list will be sorted only by class name, +# not including the namespace part. +# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. +# Note: This option applies only to the class list, not to the +# alphabetical list. + +SORT_BY_SCOPE_NAME = NO + +# The GENERATE_TODOLIST tag can be used to enable (YES) or +# disable (NO) the todo list. This list is created by putting \todo +# commands in the documentation. + +GENERATE_TODOLIST = NO + +# The GENERATE_TESTLIST tag can be used to enable (YES) or +# disable (NO) the test list. This list is created by putting \test +# commands in the documentation. + +GENERATE_TESTLIST = NO + +# The GENERATE_BUGLIST tag can be used to enable (YES) or +# disable (NO) the bug list. This list is created by putting \bug +# commands in the documentation. + +GENERATE_BUGLIST = NO + +# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or +# disable (NO) the deprecated list. This list is created by putting +# \deprecated commands in the documentation. + +GENERATE_DEPRECATEDLIST= YES + +# The ENABLED_SECTIONS tag can be used to enable conditional +# documentation sections, marked by \if sectionname ... \endif. + +ENABLED_SECTIONS = + +# The MAX_INITIALIZER_LINES tag determines the maximum number of lines +# the initial value of a variable or define consists of for it to appear in +# the documentation. If the initializer consists of more lines than specified +# here it will be hidden. Use a value of 0 to hide initializers completely. +# The appearance of the initializer of individual variables and defines in the +# documentation can be controlled using \showinitializer or \hideinitializer +# command in the documentation regardless of this setting. + +MAX_INITIALIZER_LINES = 30 + +# Set the SHOW_USED_FILES tag to NO to disable the list of files generated +# at the bottom of the documentation of classes and structs. If set to YES the +# list will mention the files that were used to generate the documentation. + +SHOW_USED_FILES = YES + +# If the sources in your project are distributed over multiple directories +# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy +# in the documentation. The default is NO. + +SHOW_DIRECTORIES = NO + +# The FILE_VERSION_FILTER tag can be used to specify a program or script that +# doxygen should invoke to get the current version for each file (typically from the +# version control system). Doxygen will invoke the program by executing (via +# popen()) the command <command> <input-file>, where <command> is the value of +# the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file +# provided by doxygen. Whatever the program writes to standard output +# is used as the file version. See the manual for examples. + +FILE_VERSION_FILTER = + +#--------------------------------------------------------------------------- +# configuration options related to warning and progress messages +#--------------------------------------------------------------------------- + +# The QUIET tag can be used to turn on/off the messages that are generated +# by doxygen. Possible values are YES and NO. If left blank NO is used. + +QUIET = NO + +# The WARNINGS tag can be used to turn on/off the warning messages that are +# generated by doxygen. Possible values are YES and NO. If left blank +# NO is used. + +WARNINGS = YES + +# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings +# for undocumented members. If EXTRACT_ALL is set to YES then this flag will +# automatically be disabled. + +WARN_IF_UNDOCUMENTED = NO + +# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for +# potential errors in the documentation, such as not documenting some +# parameters in a documented function, or documenting parameters that +# don't exist or using markup commands wrongly. + +WARN_IF_DOC_ERROR = YES + +# This WARN_NO_PARAMDOC option can be abled to get warnings for +# functions that are documented, but have no documentation for their parameters +# or return value. If set to NO (the default) doxygen will only warn about +# wrong or incomplete parameter documentation, but not about the absence of +# documentation. + +WARN_NO_PARAMDOC = NO + +# The WARN_FORMAT tag determines the format of the warning messages that +# doxygen can produce. The string should contain the $file, $line, and $text +# tags, which will be replaced by the file and line number from which the +# warning originated and the warning text. Optionally the format may contain +# $version, which will be replaced by the version of the file (if it could +# be obtained via FILE_VERSION_FILTER) + +WARN_FORMAT = + +# The WARN_LOGFILE tag can be used to specify a file to which warning +# and error messages should be written. If left blank the output is written +# to stderr. + +WARN_LOGFILE = + +#--------------------------------------------------------------------------- +# configuration options related to the input files +#--------------------------------------------------------------------------- + +# The INPUT tag can be used to specify the files and/or directories that contain +# documented source files. You may enter file names like "myfile.cpp" or +# directories like "/usr/src/myproject". Separate the files or directories +# with spaces. + +INPUT = $(DOXYGEN_INPUT) + +# This tag can be used to specify the character encoding of the source files that +# doxygen parses. Internally doxygen uses the UTF-8 encoding, which is also the default +# input encoding. Doxygen uses libiconv (or the iconv built into libc) for the transcoding. +# See http://www.gnu.org/software/libiconv for the list of possible encodings. + +INPUT_ENCODING = UTF-8 + +# If the value of the INPUT tag contains directories, you can use the +# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp +# and *.h) to filter out the source-files in the directories. If left +# blank the following patterns are tested: +# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx +# *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py + +FILE_PATTERNS = + +# The RECURSIVE tag can be used to turn specify whether or not subdirectories +# should be searched for input files as well. Possible values are YES and NO. +# If left blank NO is used. + +RECURSIVE = YES + +# The EXCLUDE tag can be used to specify files and/or directories that should +# excluded from the INPUT source files. This way you can easily exclude a +# subdirectory from a directory tree whose root is specified with the INPUT tag. + +EXCLUDE = + +# The EXCLUDE_SYMLINKS tag can be used select whether or not files or +# directories that are symbolic links (a Unix filesystem feature) are excluded +# from the input. + +EXCLUDE_SYMLINKS = NO + +# If the value of the INPUT tag contains directories, you can use the +# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude +# certain files from those directories. Note that the wildcards are matched +# against the file with absolute path, so to exclude all test directories +# for example use the pattern */test/* + +EXCLUDE_PATTERNS = + +# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names +# (namespaces, classes, functions, etc.) that should be excluded from the output. +# The symbol name can be a fully qualified name, a word, or if the wildcard * is used, +# a substring. Examples: ANamespace, AClass, AClass::ANamespace, ANamespace::*Test + +EXCLUDE_SYMBOLS = + +# The EXAMPLE_PATH tag can be used to specify one or more files or +# directories that contain example code fragments that are included (see +# the \include command). + +EXAMPLE_PATH = + +# If the value of the EXAMPLE_PATH tag contains directories, you can use the +# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp +# and *.h) to filter out the source-files in the directories. If left +# blank all files are included. + +EXAMPLE_PATTERNS = + +# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be +# searched for input files to be used with the \include or \dontinclude +# commands irrespective of the value of the RECURSIVE tag. +# Possible values are YES and NO. If left blank NO is used. + +EXAMPLE_RECURSIVE = NO + +# The IMAGE_PATH tag can be used to specify one or more files or +# directories that contain image that are included in the documentation (see +# the \image command). + +IMAGE_PATH = + +# The INPUT_FILTER tag can be used to specify a program that doxygen should +# invoke to filter for each input file. Doxygen will invoke the filter program +# by executing (via popen()) the command <filter> <input-file>, where <filter> +# is the value of the INPUT_FILTER tag, and <input-file> is the name of an +# input file. Doxygen will then use the output that the filter program writes +# to standard output. If FILTER_PATTERNS is specified, this tag will be +# ignored. + +INPUT_FILTER = + +# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern +# basis. Doxygen will compare the file name with each pattern and apply the +# filter if there is a match. The filters are a list of the form: +# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further +# info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER +# is applied to all files. + +FILTER_PATTERNS = + +# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using +# INPUT_FILTER) will be used to filter the input files when producing source +# files to browse (i.e. when SOURCE_BROWSER is set to YES). + +FILTER_SOURCE_FILES = NO + +#--------------------------------------------------------------------------- +# configuration options related to source browsing +#--------------------------------------------------------------------------- + +# If the SOURCE_BROWSER tag is set to YES then a list of source files will +# be generated. Documented entities will be cross-referenced with these sources. +# Note: To get rid of all source code in the generated output, make sure also +# VERBATIM_HEADERS is set to NO. If you have enabled CALL_GRAPH or CALLER_GRAPH +# then you must also enable this option. If you don't then doxygen will produce +# a warning and turn it on anyway + +SOURCE_BROWSER = YES + +# Setting the INLINE_SOURCES tag to YES will include the body +# of functions and classes directly in the documentation. + +INLINE_SOURCES = NO + +# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct +# doxygen to hide any special comment blocks from generated source code +# fragments. Normal C and C++ comments will always remain visible. + +STRIP_CODE_COMMENTS = YES + +# If the REFERENCED_BY_RELATION tag is set to YES (the default) +# then for each documented function all documented +# functions referencing it will be listed. + +REFERENCED_BY_RELATION = YES + +# If the REFERENCES_RELATION tag is set to YES (the default) +# then for each documented function all documented entities +# called/used by that function will be listed. + +REFERENCES_RELATION = YES + +# If the REFERENCES_LINK_SOURCE tag is set to YES (the default) +# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from +# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will +# link to the source code. Otherwise they will link to the documentstion. + +REFERENCES_LINK_SOURCE = YES + +# If the USE_HTAGS tag is set to YES then the references to source code +# will point to the HTML generated by the htags(1) tool instead of doxygen +# built-in source browser. The htags tool is part of GNU's global source +# tagging system (see http://www.gnu.org/software/global/global.html). You +# will need version 4.8.6 or higher. + +USE_HTAGS = NO + +# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen +# will generate a verbatim copy of the header file for each class for +# which an include is specified. Set to NO to disable this. + +VERBATIM_HEADERS = YES + +#--------------------------------------------------------------------------- +# configuration options related to the alphabetical class index +#--------------------------------------------------------------------------- + +# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index +# of all compounds will be generated. Enable this if the project +# contains a lot of classes, structs, unions or interfaces. + +ALPHABETICAL_INDEX = YES + +# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then +# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns +# in which this list will be split (can be a number in the range [1..20]) + +COLS_IN_ALPHA_INDEX = 5 + +# In case all classes in a project start with a common prefix, all +# classes will be put under the same header in the alphabetical index. +# The IGNORE_PREFIX tag can be used to specify one or more prefixes that +# should be ignored while generating the index headers. + +IGNORE_PREFIX = + +#--------------------------------------------------------------------------- +# configuration options related to the HTML output +#--------------------------------------------------------------------------- + +# If the GENERATE_HTML tag is set to YES (the default) Doxygen will +# generate HTML output. + +GENERATE_HTML = YES + +# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `html' will be used as the default path. + +HTML_OUTPUT = + +# The HTML_FILE_EXTENSION tag can be used to specify the file extension for +# each generated HTML page (for example: .htm,.php,.asp). If it is left blank +# doxygen will generate files with .html extension. + +HTML_FILE_EXTENSION = .html + +# The HTML_HEADER tag can be used to specify a personal HTML header for +# each generated HTML page. If it is left blank doxygen will generate a +# standard header. + +HTML_HEADER = + +# The HTML_FOOTER tag can be used to specify a personal HTML footer for +# each generated HTML page. If it is left blank doxygen will generate a +# standard footer. + +HTML_FOOTER = + +# The HTML_STYLESHEET tag can be used to specify a user-defined cascading +# style sheet that is used by each HTML page. It can be used to +# fine-tune the look of the HTML output. If the tag is left blank doxygen +# will generate a default style sheet. Note that doxygen will try to copy +# the style sheet file to the HTML output directory, so don't put your own +# stylesheet in the HTML output directory as well, or it will be erased! + +HTML_STYLESHEET = + +# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, +# files or namespaces will be aligned in HTML using tables. If set to +# NO a bullet list will be used. + +HTML_ALIGN_MEMBERS = YES + +# If the GENERATE_HTMLHELP tag is set to YES, additional index files +# will be generated that can be used as input for tools like the +# Microsoft HTML help workshop to generate a compressed HTML help file (.chm) +# of the generated HTML documentation. + +GENERATE_HTMLHELP = NO + +# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML +# documentation will contain sections that can be hidden and shown after the +# page has loaded. For this to work a browser that supports +# JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox +# Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari). + +HTML_DYNAMIC_SECTIONS = NO + +# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can +# be used to specify the file name of the resulting .chm file. You +# can add a path in front of the file if the result should not be +# written to the html output directory. + +CHM_FILE = + +# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can +# be used to specify the location (absolute path including file name) of +# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run +# the HTML help compiler on the generated index.hhp. + +HHC_LOCATION = + +# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag +# controls if a separate .chi index file is generated (YES) or that +# it should be included in the master .chm file (NO). + +GENERATE_CHI = NO + +# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag +# controls whether a binary table of contents is generated (YES) or a +# normal table of contents (NO) in the .chm file. + +BINARY_TOC = NO + +# The TOC_EXPAND flag can be set to YES to add extra items for group members +# to the contents of the HTML help documentation and to the tree view. + +TOC_EXPAND = NO + +# The DISABLE_INDEX tag can be used to turn on/off the condensed index at +# top of each HTML page. The value NO (the default) enables the index and +# the value YES disables it. + +DISABLE_INDEX = NO + +# This tag can be used to set the number of enum values (range [1..20]) +# that doxygen will group on one line in the generated HTML documentation. + +ENUM_VALUES_PER_LINE = 1 + +# If the GENERATE_TREEVIEW tag is set to YES, a side panel will be +# generated containing a tree-like index structure (just like the one that +# is generated for HTML Help). For this to work a browser that supports +# JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+, +# Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are +# probably better off using the HTML help feature. + +GENERATE_TREEVIEW = NO + +# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be +# used to set the initial width (in pixels) of the frame in which the tree +# is shown. + +TREEVIEW_WIDTH = 250 + +#--------------------------------------------------------------------------- +# configuration options related to the LaTeX output +#--------------------------------------------------------------------------- + +# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will +# generate Latex output. + +GENERATE_LATEX = NO + +# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `latex' will be used as the default path. + +LATEX_OUTPUT = + +# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be +# invoked. If left blank `latex' will be used as the default command name. + +LATEX_CMD_NAME = latex + +# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to +# generate index for LaTeX. If left blank `makeindex' will be used as the +# default command name. + +MAKEINDEX_CMD_NAME = makeindex + +# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact +# LaTeX documents. This may be useful for small projects and may help to +# save some trees in general. + +COMPACT_LATEX = NO + +# The PAPER_TYPE tag can be used to set the paper type that is used +# by the printer. Possible values are: a4, a4wide, letter, legal and +# executive. If left blank a4wide will be used. + +PAPER_TYPE = a4wide + +# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX +# packages that should be included in the LaTeX output. + +EXTRA_PACKAGES = + +# The LATEX_HEADER tag can be used to specify a personal LaTeX header for +# the generated latex document. The header should contain everything until +# the first chapter. If it is left blank doxygen will generate a +# standard header. Notice: only use this tag if you know what you are doing! + +LATEX_HEADER = + +# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated +# is prepared for conversion to pdf (using ps2pdf). The pdf file will +# contain links (just like the HTML output) instead of page references +# This makes the output suitable for online browsing using a pdf viewer. + +PDF_HYPERLINKS = NO + +# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of +# plain latex in the generated Makefile. Set this option to YES to get a +# higher quality PDF documentation. + +USE_PDFLATEX = NO + +# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. +# command to the generated LaTeX files. This will instruct LaTeX to keep +# running if errors occur, instead of asking the user for help. +# This option is also used when generating formulas in HTML. + +LATEX_BATCHMODE = NO + +# If LATEX_HIDE_INDICES is set to YES then doxygen will not +# include the index chapters (such as File Index, Compound Index, etc.) +# in the output. + +LATEX_HIDE_INDICES = NO + +#--------------------------------------------------------------------------- +# configuration options related to the RTF output +#--------------------------------------------------------------------------- + +# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output +# The RTF output is optimized for Word 97 and may not look very pretty with +# other RTF readers or editors. + +GENERATE_RTF = NO + +# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `rtf' will be used as the default path. + +RTF_OUTPUT = + +# If the COMPACT_RTF tag is set to YES Doxygen generates more compact +# RTF documents. This may be useful for small projects and may help to +# save some trees in general. + +COMPACT_RTF = NO + +# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated +# will contain hyperlink fields. The RTF file will +# contain links (just like the HTML output) instead of page references. +# This makes the output suitable for online browsing using WORD or other +# programs which support those fields. +# Note: wordpad (write) and others do not support links. + +RTF_HYPERLINKS = NO + +# Load stylesheet definitions from file. Syntax is similar to doxygen's +# config file, i.e. a series of assignments. You only have to provide +# replacements, missing definitions are set to their default value. + +RTF_STYLESHEET_FILE = + +# Set optional variables used in the generation of an rtf document. +# Syntax is similar to doxygen's config file. + +RTF_EXTENSIONS_FILE = + +#--------------------------------------------------------------------------- +# configuration options related to the man page output +#--------------------------------------------------------------------------- + +# If the GENERATE_MAN tag is set to YES (the default) Doxygen will +# generate man pages + +GENERATE_MAN = NO + +# The MAN_OUTPUT tag is used to specify where the man pages will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `man' will be used as the default path. + +MAN_OUTPUT = + +# The MAN_EXTENSION tag determines the extension that is added to +# the generated man pages (default is the subroutine's section .3) + +MAN_EXTENSION = + +# If the MAN_LINKS tag is set to YES and Doxygen generates man output, +# then it will generate one additional man file for each entity +# documented in the real man page(s). These additional files +# only source the real man page, but without them the man command +# would be unable to find the correct page. The default is NO. + +MAN_LINKS = NO + +#--------------------------------------------------------------------------- +# configuration options related to the XML output +#--------------------------------------------------------------------------- + +# If the GENERATE_XML tag is set to YES Doxygen will +# generate an XML file that captures the structure of +# the code including all documentation. + +GENERATE_XML = NO + +# The XML_OUTPUT tag is used to specify where the XML pages will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `xml' will be used as the default path. + +XML_OUTPUT = xml + +# The XML_SCHEMA tag can be used to specify an XML schema, +# which can be used by a validating XML parser to check the +# syntax of the XML files. + +XML_SCHEMA = + +# The XML_DTD tag can be used to specify an XML DTD, +# which can be used by a validating XML parser to check the +# syntax of the XML files. + +XML_DTD = + +# If the XML_PROGRAMLISTING tag is set to YES Doxygen will +# dump the program listings (including syntax highlighting +# and cross-referencing information) to the XML output. Note that +# enabling this will significantly increase the size of the XML output. + +XML_PROGRAMLISTING = YES + +#--------------------------------------------------------------------------- +# configuration options for the AutoGen Definitions output +#--------------------------------------------------------------------------- + +# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will +# generate an AutoGen Definitions (see autogen.sf.net) file +# that captures the structure of the code including all +# documentation. Note that this feature is still experimental +# and incomplete at the moment. + +GENERATE_AUTOGEN_DEF = NO + +#--------------------------------------------------------------------------- +# configuration options related to the Perl module output +#--------------------------------------------------------------------------- + +# If the GENERATE_PERLMOD tag is set to YES Doxygen will +# generate a Perl module file that captures the structure of +# the code including all documentation. Note that this +# feature is still experimental and incomplete at the +# moment. + +GENERATE_PERLMOD = NO + +# If the PERLMOD_LATEX tag is set to YES Doxygen will generate +# the necessary Makefile rules, Perl scripts and LaTeX code to be able +# to generate PDF and DVI output from the Perl module output. + +PERLMOD_LATEX = NO + +# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be +# nicely formatted so it can be parsed by a human reader. This is useful +# if you want to understand what is going on. On the other hand, if this +# tag is set to NO the size of the Perl module output will be much smaller +# and Perl will parse it just the same. + +PERLMOD_PRETTY = YES + +# The names of the make variables in the generated doxyrules.make file +# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. +# This is useful so different doxyrules.make files included by the same +# Makefile don't overwrite each other's variables. + +PERLMOD_MAKEVAR_PREFIX = + +#--------------------------------------------------------------------------- +# Configuration options related to the preprocessor +#--------------------------------------------------------------------------- + +# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will +# evaluate all C-preprocessor directives found in the sources and include +# files. + +ENABLE_PREPROCESSING = YES + +# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro +# names in the source code. If set to NO (the default) only conditional +# compilation will be performed. Macro expansion can be done in a controlled +# way by setting EXPAND_ONLY_PREDEF to YES. + +MACRO_EXPANSION = NO + +# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES +# then the macro expansion is limited to the macros specified with the +# PREDEFINED and EXPAND_AS_DEFINED tags. + +EXPAND_ONLY_PREDEF = NO + +# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files +# in the INCLUDE_PATH (see below) will be search if a #include is found. + +SEARCH_INCLUDES = YES + +# The INCLUDE_PATH tag can be used to specify one or more directories that +# contain include files that are not input files but should be processed by +# the preprocessor. + +INCLUDE_PATH = $(DOXYGEN_INCLUDE_PATH) + +# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard +# patterns (like *.h and *.hpp) to filter out the header-files in the +# directories. If left blank, the patterns specified with FILE_PATTERNS will +# be used. + +INCLUDE_FILE_PATTERNS = + +# The PREDEFINED tag can be used to specify one or more macro names that +# are defined before the preprocessor is started (similar to the -D option of +# gcc). The argument of the tag is a list of macros of the form: name +# or name=definition (no spaces). If the definition and the = are +# omitted =1 is assumed. To prevent a macro definition from being +# undefined via #undef or recursively expanded use the := operator +# instead of the = operator. + +PREDEFINED = LINUX \ + UNX \ + VCL \ + GCC \ + C341 \ + X86_64 \ + _DEBUG_RUNTIME \ + VER=C341 \ + NPTL \ + GLIBC=2 \ + NEW_SOLAR \ + _USE_NAMESPACE=1 \ + UNIX \ + SUPD=300 \ + DEBUG \ + DBG_UTIL \ + OSL_DEBUG_LEVEL=2 \ + CUI \ + SOLAR_JAVA \ + EXCEPTIONS_ON + +# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then +# this tag can be used to specify a list of macro names that should be expanded. +# The macro definition that is found in the sources will be used. +# Use the PREDEFINED tag if you want to use a different macro definition. + +EXPAND_AS_DEFINED = + +# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then +# doxygen's preprocessor will remove all function-like macros that are alone +# on a line, have an all uppercase name, and do not end with a semicolon. Such +# function macros are typically used for boiler-plate code, and will confuse +# the parser if not removed. + +SKIP_FUNCTION_MACROS = YES + +#--------------------------------------------------------------------------- +# Configuration::additions related to external references +#--------------------------------------------------------------------------- + +# The TAGFILES option can be used to specify one or more tagfiles. +# Optionally an initial location of the external documentation +# can be added for each tagfile. The format of a tag file without +# this location is as follows: +# TAGFILES = file1 file2 ... +# Adding location for the tag files is done as follows: +# TAGFILES = file1=loc1 "file2 = loc2" ... +# where "loc1" and "loc2" can be relative or absolute paths or +# URLs. If a location is present for each tag, the installdox tool +# does not have to be run to correct the links. +# Note that each tag file must have a unique name +# (where the name does NOT include the path) +# If a tag file is not located in the directory in which doxygen +# is run, you must also specify the path to the tagfile here. + +TAGFILES = $(DOXYGEN_REF_TAGFILES) + +# When a file name is specified after GENERATE_TAGFILE, doxygen will create +# a tag file that is based on the input files it reads. + +GENERATE_TAGFILE = $(DOXYGEN_OUR_TAGFILE) + +# If the ALLEXTERNALS tag is set to YES all external classes will be listed +# in the class index. If set to NO only the inherited external classes +# will be listed. + +ALLEXTERNALS = NO + +# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed +# in the modules index. If set to NO, only the current project's groups will +# be listed. + +EXTERNAL_GROUPS = YES + +# The PERL_PATH should be the absolute path and name of the perl script +# interpreter (i.e. the result of `which perl'). + +PERL_PATH = + +#--------------------------------------------------------------------------- +# Configuration options related to the dot tool +#--------------------------------------------------------------------------- + +# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will +# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base +# or super classes. Setting the tag to NO turns the diagrams off. Note that +# this option is superseded by the HAVE_DOT option below. This is only a +# fallback. It is recommended to install and use dot, since it yields more +# powerful graphs. + +CLASS_DIAGRAMS = YES + +# You can define message sequence charts within doxygen comments using the \msc +# command. Doxygen will then run the mscgen tool (see http://www.mcternan.me.uk/mscgen/) to +# produce the chart and insert it in the documentation. The MSCGEN_PATH tag allows you to +# specify the directory where the mscgen tool resides. If left empty the tool is assumed to +# be found in the default search path. + +MSCGEN_PATH = + +# If set to YES, the inheritance and collaboration graphs will hide +# inheritance and usage relations if the target is undocumented +# or is not a class. + +HIDE_UNDOC_RELATIONS = YES + +# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is +# available from the path. This tool is part of Graphviz, a graph visualization +# toolkit from AT&T and Lucent Bell Labs. The other options in this section +# have no effect if this option is set to NO (the default) + +HAVE_DOT = YES + +# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for each documented class showing the direct and +# indirect inheritance relations. Setting this tag to YES will force the +# the CLASS_DIAGRAMS tag to NO. + +CLASS_GRAPH = YES + +# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for each documented class showing the direct and +# indirect implementation dependencies (inheritance, containment, and +# class references variables) of the class with other documented classes. + +COLLABORATION_GRAPH = YES + +# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for groups, showing the direct groups dependencies + +GROUP_GRAPHS = YES + +# If the UML_LOOK tag is set to YES doxygen will generate inheritance and +# collaboration diagrams in a style similar to the OMG's Unified Modeling +# Language. + +UML_LOOK = NO + +# If set to YES, the inheritance and collaboration graphs will show the +# relations between templates and their instances. + +TEMPLATE_RELATIONS = YES + +# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT +# tags are set to YES then doxygen will generate a graph for each documented +# file showing the direct and indirect include dependencies of the file with +# other documented files. + +INCLUDE_GRAPH = YES + +# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and +# HAVE_DOT tags are set to YES then doxygen will generate a graph for each +# documented header file showing the documented files that directly or +# indirectly include this file. + +INCLUDED_BY_GRAPH = YES + +# If the CALL_GRAPH, SOURCE_BROWSER and HAVE_DOT tags are set to YES then doxygen will +# generate a call dependency graph for every global function or class method. +# Note that enabling this option will significantly increase the time of a run. +# So in most cases it will be better to enable call graphs for selected +# functions only using the \callgraph command. + +CALL_GRAPH = NO + +# If the CALLER_GRAPH, SOURCE_BROWSER and HAVE_DOT tags are set to YES then doxygen will +# generate a caller dependency graph for every global function or class method. +# Note that enabling this option will significantly increase the time of a run. +# So in most cases it will be better to enable caller graphs for selected +# functions only using the \callergraph command. + +CALLER_GRAPH = NO + +# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen +# will graphical hierarchy of all classes instead of a textual one. + +GRAPHICAL_HIERARCHY = YES + +# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES +# then doxygen will show the dependencies a directory has on other directories +# in a graphical way. The dependency relations are determined by the #include +# relations between the files in the directories. + +DIRECTORY_GRAPH = YES + +# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images +# generated by dot. Possible values are png, jpg, or gif +# If left blank png will be used. + +DOT_IMAGE_FORMAT = png + +# The tag DOT_PATH can be used to specify the path where the dot tool can be +# found. If left blank, it is assumed the dot tool can be found in the path. + +DOT_PATH = + +# The DOTFILE_DIRS tag can be used to specify one or more directories that +# contain dot files that are included in the documentation (see the +# \dotfile command). + +DOTFILE_DIRS = + +# The MAX_DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of +# nodes that will be shown in the graph. If the number of nodes in a graph +# becomes larger than this value, doxygen will truncate the graph, which is +# visualized by representing a node as a red box. Note that doxygen if the number +# of direct children of the root node in a graph is already larger than +# MAX_DOT_GRAPH_NOTES then the graph will not be shown at all. Also note +# that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH. + +DOT_GRAPH_MAX_NODES = 50 + +# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the +# graphs generated by dot. A depth value of 3 means that only nodes reachable +# from the root by following a path via at most 3 edges will be shown. Nodes +# that lay further from the root node will be omitted. Note that setting this +# option to 1 or 2 may greatly reduce the computation time needed for large +# code bases. Also note that the size of a graph can be further restricted by +# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction. + +MAX_DOT_GRAPH_DEPTH = 0 + +# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent +# background. This is disabled by default, which results in a white background. +# Warning: Depending on the platform used, enabling this option may lead to +# badly anti-aliased labels on the edges of a graph (i.e. they become hard to +# read). + +DOT_TRANSPARENT = NO + +# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output +# files in one run (i.e. multiple -o and -T options on the command line). This +# makes dot run faster, but since only newer versions of dot (>1.8.10) +# support this, this feature is disabled by default. + +DOT_MULTI_TARGETS = NO + +# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will +# generate a legend page explaining the meaning of the various boxes and +# arrows in the dot generated graphs. + +GENERATE_LEGEND = YES + +# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will +# remove the intermediate dot files that are used to generate +# the various graphs. + +DOT_CLEANUP = NO + +#--------------------------------------------------------------------------- +# Configuration::additions related to the search engine +#--------------------------------------------------------------------------- + +# The SEARCHENGINE tag specifies whether or not a search engine should be +# used. If set to NO the values of all tags below this one will be ignored. + +SEARCHENGINE = NO diff --git a/solenv/inc/dummy.flt b/solenv/inc/dummy.flt new file mode 100644 index 000000000000..e69de29bb2d1 --- /dev/null +++ b/solenv/inc/dummy.flt diff --git a/solenv/inc/extension_helplink.mk b/solenv/inc/extension_helplink.mk new file mode 100644 index 000000000000..c9fa15e6770b --- /dev/null +++ b/solenv/inc/extension_helplink.mk @@ -0,0 +1,79 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +my_cp:=$(CLASSPATH)$(PATH_SEPERATOR)$(SOLARBINDIR)/jaxp.jar$(PATH_SEPERATOR)$(SOLARBINDIR)/juh.jar$(PATH_SEPERATOR)$(SOLARBINDIR)/parser.jar$(PATH_SEPERATOR)$(SOLARBINDIR)/xt.jar$(PATH_SEPERATOR)$(SOLARBINDIR)/unoil.jar$(PATH_SEPERATOR)$(SOLARBINDIR)/ridl.jar$(PATH_SEPERATOR)$(SOLARBINDIR)/jurt.jar$(PATH_SEPERATOR)$(SOLARBINDIR)/xmlsearch.jar$(PATH_SEPERATOR)$(SOLARBINDIR)/LuceneHelpWrapper.jar$(PATH_SEPERATOR)$(SOLARBINDIR)/HelpIndexerTool.jar$ + +.IF "$(SYSTEM_LUCENE)" == "YES" +my_cp!:=$(my_cp)$(PATH_SEPERATOR)$(LUCENE_CORE_JAR)$(PATH_SEPERATOR)$(LUCENE_ANALYZERS_JAR) +.ELSE +my_cp!:=$(my_cp)$(PATH_SEPERATOR)$(SOLARBINDIR)/lucene-core-2.3.jar$(PATH_SEPERATOR)$(SOLARBINDIR)/lucene-analyzers-2.3.jar +.ENDIF + +.IF "$(SYSTEM_DB)" != "YES" +JAVA_LIBRARY_PATH= -Djava.library.path=$(SOLARSHAREDBIN) +.ENDIF + +#aux_alllangiso*:=$(foreach,i,$(alllangiso) $(foreach,j,$(aux_langdirs) $(eq,$i,$j $i $(NULL)))) +aux_alllangiso*:=$(alllangiso) + +######################################################### + + +HELPLINKALLTARGETS=$(foreach,i,$(aux_alllangiso) $(MISC)/$(TARGET)_$(LINKNAME)_$i.done) +HELPLINKALLADDEDDEPS=$(foreach,i,$(aux_alllangiso) $(subst,LANGUAGE,$i $(LINKADDEDDPES))) + +ALLTAR : $(HELPLINKALLTARGETS) + +.IF "$(SYSTEM_DB)" != "YES" +JAVA_LIBRARY_PATH= -Djava.library.path=$(SOLARSHAREDBIN) +.ENDIF + +XSL_DIR*:=$(SOLARBINDIR) +XHPLINKSRC*:=$(XHPDEST) +STY_SWITCH:= -sty $(XSL_DIR)/embed.xsl + +.IF "$(XHPFILES)"!="" && "$(HELP_OUT)"!="" +$(foreach,i,$(LINKLINKFILES) $(XHPLINKSRC)/{$(aux_alllangiso)}/$i) : $(HELP_OUT)/$(TARGET).done +LINKDEPS+=$(HELP_OUT)/xhp_changed.flag +.ENDIF # "$(XHPFILES)"!="" && "$(HELP_OUT)"!="" + +$(HELPLINKALLTARGETS) : $(foreach,i,$(LINKLINKFILES) $(XHPLINKSRC)/$$(@:b:s/_/./:e:s/.//)/$i) $(subst,LANGUAGE,$$(@:b:s/_/./:e:s/.//) $(LINKDEPS)) + @echo Building help index for $(@:b:s/_/./:e:s/.//) + $(COMMAND_ECHO)$(HELPLINKER) -mod $(LINKNAME) -extlangsrc $(XHPLINKSRC)/{$(subst,$(TARGET)_$(LINKNAME)_, $(@:b))} $(STY_SWITCH) -extlangdest $(XHPLINKSRC)/{$(subst,$(TARGET)_$(LINKNAME)_, $(@:b))} -idxcaption $(XSL_DIR)/idxcaption.xsl -idxcontent $(XSL_DIR)/idxcontent.xsl $(LINKLINKFILES) + $(COMMAND_ECHO)cd $(XHPLINKSRC)/{$(subst,$(TARGET)_$(LINKNAME)_, $(@:b))} && zip -u -r $(LINKNAME).jar $(PACKAGE)/* $(CHECKZIPRESULT) +.IF "$(SOLAR_JAVA)" == "TRUE" +# cleanup index dir + -$(RM) $(XHPLINKSRC)/{$(subst,$(TARGET)_$(LINKNAME)_, $(@:b))}/$(LINKNAME).idxl/* +.IF "$(CHECK_LUCENCE_INDEXER_OUTPUT)" == "" + $(COMMAND_ECHO)$(JAVAI) $(JAVAIFLAGS) $(JAVA_LIBRARY_PATH) -cp "$(my_cp)" com.sun.star.help.HelpIndexerTool -extension -lang $(@:b:s/_/./:e:s/.//) -mod $(LINKNAME) -zipdir $(XHPLINKSRC)/{$(subst,$(TARGET)_$(LINKNAME)_, $(@:b))} && $(TOUCH) $@ +.ELSE + $(COMMAND_ECHO)$(JAVAI) $(JAVAIFLAGS) $(JAVA_LIBRARY_PATH) -cp "$(my_cp)" com.sun.star.help.HelpIndexerTool -extension -lang $(@:b:s/_/./:e:s/.//) -mod $(LINKNAME) -zipdir $(XHPLINKSRC)/{$(subst,$(TARGET)_$(LINKNAME)_, $(@:b))} -checkcfsandsegname _0 _3 && $(TOUCH) $@ +.ENDIF +.ELSE + -$(RM) $(XHPLINKSRC)/$(@:b)/content/*.* + -$(RM) $(XHPLINKSRC)/$(@:b)/caption/*.* +.ENDIF diff --git a/solenv/inc/extension_post.mk b/solenv/inc/extension_post.mk new file mode 100644 index 000000000000..82421e24011b --- /dev/null +++ b/solenv/inc/extension_post.mk @@ -0,0 +1,186 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +EXTENSION_TARGET:=$(ZIP9TARGETN) + +.SOURCE.xcu : $(MISC)/$(EXTNAME)/merge $(MISC)/$(EXTNAME)/registry/data $(MISC)/$(COMPONENT_SHARED_CONFIG)_in/merge $(MISC)/$(COMPONENT_SHARED_CONFIG)_in/registry/data $(COMPONENT_CONFIGDIR) . +.SOURCE.xcs : $(MISC)/$(EXTNAME)/registry $(MISC)/$(EXTNAME)/registry/schema . + +fixme=$(MISC)/$(EXTNAME)/merge/$(MISC) +fixme2=$(fixme:n) + +fixme3=$(MISC)/$(EXTNAME)/$(MISC) +fixme4=$(fixme:n) + +$(EXTENSIONDIR)/$(COMPONENT_CONFIGDEST)/%.xcu : %.xcu +# ugly hacking to workaround prepended first source path + @@-$(MKDIRHIER) $(subst,$(fixme2),$(MISC) $(@:d)) +.IF "$(COMPONENT_XCU_REPLACEMENT)"!="" + $(TYPE) $< | sed '$(COMPONENT_XCU_REPLACEMENT)' > $(subst,$(fixme2),$(MISC) $@) +.ELSE # "$(COMPONENT_REPLACEMENT)"!="" + $(GNUCOPY) $< $(subst,$(fixme2),$(MISC) $@) +.ENDIF # "$(COMPONENT_REPLACEMENT)"!="" + +$(EXTENSIONDIR)/$(COMPONENT_CONFIGDESTSCHEMA)/%.xcs : %.xcs + @@-$(MKDIRHIER) $(subst,$(fixme4),$(MISC) $(@:d)) + $(GNUCOPY) $< $(subst,$(fixme4),$(MISC) $@) + +$(EXTENSIONDIR)/%.jar : $(SOLARBINDIR)/%.jar + @@-$(MKDIRHIER) $(@:d) + $(GNUCOPY) $< $@ + +.IF "$(COMPONENT_FILES)"!="" +COMPONENT_FILES_SRC*=./ +# ugly hacking to workaround prepended first source path - also hits +# here in case of "just copied" .xcu files +$(COMPONENT_FILES) : $$(@:s|$(fixme2)|$(MISC)|:s|$(EXTENSIONDIR)/|$(COMPONENT_FILES_SRC)|) + @@-$(MKDIRHIER) $(@:s|$(fixme2)|$(MISC)|:d) + $(COMMAND_ECHO)$(COPY) $< $(@:s|$(fixme2)|$(MISC)|) +.ENDIF # "$(COMPONENT_FILES)"!="" + +.IF "$(COMPONENT_JARFILES)"!="" +$(COMPONENT_JARFILES) : $(CLASSDIR)/$$(@:f) + @@-$(MKDIRHIER) $(@:d) + $(COMMAND_ECHO)$(COPY) $< $@ +.ENDIF # "$(COMPONENT_JARFILES)"!="" + +.IF "$(COMPONENT_LIBRARIES)"!="" +PACK_RUNTIME!:=TRUE +# TODO(Q3): strip the binary? +$(COMPONENT_LIBRARIES) : $(DLLDEST)/$$(@:f) + @@-$(MKDIRHIER) $(@:d) + $(COMMAND_ECHO)$(COPY) $< $@ +.ENDIF # "$(COMPONENT_LIBRARIES)"!="" + +.IF "$(PACK_RUNTIME)"!="" +PACK_RUNTIME_FLAG:=$(MISC)/$(TARGET)_pack_runtime.flag +$(EXTENSION_TARGET) : $(PACK_RUNTIME_FLAG) + +$(EXTENSIONDIR) : + @@-$(MKDIRHIER) $(@:d) + +$(PACK_RUNTIME_FLAG) : $(EXTENSIONDIR) + @@-$(MKDIRHIER) $(@:d) +.IF "$(OS)$(CPU)"=="WNTI" && "$(WITH_EXTENSION_INTEGRATION)"!="YES" +.IF "$(COM)"=="GCC" + $(GNUCOPY) $(SOLARBINDIR)/mingwm10.dll $(EXTENSIONDIR) + .IF "$(MINGW_GCCDLL)"!="" + $(GNUCOPY) $(SOLARBINDIR)/$(MINGW_GCCDLL) $(EXTENSIONDIR) + .ENDIF + .IF "$(MINGW_GXXDLL)"!="" + $(GNUCOPY) $(SOLARBINDIR)/$(MINGW_GXXDLL) $(EXTENSIONDIR) + .ENDIF +.ELSE +.IF "$(PACKMS)"!="" +.IF "$(CCNUMVER)" <= "001399999999" + $(GNUCOPY) $(PACKMS)/msvcr71.dll $(EXTENSIONDIR) + $(GNUCOPY) $(PACKMS)/msvcp71.dll $(EXTENSIONDIR) +.ELSE # "$(CCNUMVER)" <= "001399999999" +.IF "$(CCNUMVER)" <= "001499999999" + $(GNUCOPY) $(PACKMS)/msvcr80.dll $(EXTENSIONDIR) + $(GNUCOPY) $(PACKMS)/msvcp80.dll $(EXTENSIONDIR) + $(GNUCOPY) $(PACKMS)/msvcm80.dll $(EXTENSIONDIR) + $(GNUCOPY) $(PACKMS)/Microsoft.VC80.CRT.manifest $(EXTENSIONDIR) +.ELSE # "$(CCNUMVER)" <= "001499999999" + $(GNUCOPY) $(PACKMS)/msvcr90.dll $(EXTENSIONDIR) + $(GNUCOPY) $(PACKMS)/msvcp90.dll $(EXTENSIONDIR) + $(GNUCOPY) $(PACKMS)/msvcm90.dll $(EXTENSIONDIR) + $(GNUCOPY) $(PACKMS)/Microsoft.VC90.CRT.manifest $(EXTENSIONDIR) +.ENDIF # "$(CCNUMVER)" <= "001499999999" +.ENDIF # "$(CCNUMVER)" <= "001399999999" +.ELSE # "$(PACKMS)"!="" +.IF "$(CCNUMVER)" <= "001399999999" + $(GNUCOPY) $(SOLARBINDIR)/msvcr71.dll $(EXTENSIONDIR) + $(GNUCOPY) $(SOLARBINDIR)/msvcp71.dll $(EXTENSIONDIR) +.ELSE # "$(CCNUMVER)" <= "001399999999" +.IF "$(CCNUMVER)" <= "001499999999" + $(GNUCOPY) $(SOLARBINDIR)/msvcr80.dll $(EXTENSIONDIR) + $(GNUCOPY) $(SOLARBINDIR)/msvcp80.dll $(EXTENSIONDIR) + $(GNUCOPY) $(SOLARBINDIR)/msvcm80.dll $(EXTENSIONDIR) + $(GNUCOPY) $(SOLARBINDIR)/Microsoft.VC80.CRT.manifest $(EXTENSIONDIR) +.ELSE # "$(CCNUMVER)" <= "001499999999" + $(GNUCOPY) $(SOLARBINDIR)/msvcr90.dll $(EXTENSIONDIR) + $(GNUCOPY) $(SOLARBINDIR)/msvcp90.dll $(EXTENSIONDIR) + $(GNUCOPY) $(SOLARBINDIR)/msvcm90.dll $(EXTENSIONDIR) + $(GNUCOPY) $(SOLARBINDIR)/Microsoft.VC90.CRT.manifest $(EXTENSIONDIR) +.ENDIF # "$(CCNUMVER)" <= "001499999999" +.ENDIF # "$(CCNUMVER)" <= "001399999999" +.ENDIF # "$(PACKMS)"!="" +.ENDIF #"$(COM)"=="GCC" +.ENDIF # "$(OS)$(CPU)"=="WNTI" && "$(WITH_EXTENSION_INTEGRATION)"!="YES" + @$(TOUCH) $@ +.ENDIF # "$(PACK_RUNTIME)"!="" + +IMPLEMENTATION_IDENTIFIER*="com.sun.star.$(EXTENSIONNAME)-$(PLATFORMID)" + +.INCLUDE .IGNORE : $(MISC)/$(TARGET)_lang_track.mk +.IF "$(LAST_WITH_LANG)"!="$(WITH_LANG)" +PHONYDESC=.PHONY +.ENDIF # "$(LAST_WITH_LANG)"!="$(WITH_LANG)" +.IF "$(DESCRIPTION)"!="" +$(DESCRIPTION) $(PHONYDESC) : $(DESCRIPTION_SRC) + @@-$(MKDIRHIER) $(@:d) + @echo LAST_WITH_LANG=$(WITH_LANG) > $(MISC)/$(TARGET)_lang_track.mk + + $(COMMAND_ECHO)$(PERL) $(SOLARENV)/bin/transform_description.pl $(DESCRIPTION_SRC) $@.1.$(EXTNAME) + + $(COMMAND_ECHO)$(TYPE) $@.1.$(EXTNAME) | sed s/UPDATED_IDENTIFIER/$(IMPLEMENTATION_IDENTIFIER)/ > $@.2.$(EXTNAME) + @@-$(RM) $@.1.$(EXTNAME) + + $(COMMAND_ECHO)$(TYPE) $@.2.$(EXTNAME) | sed s/UPDATED_SUPPORTED_PLATFORM/$(PLATFORMID)/ > $@ + @@-$(RM) $@.2.$(EXTNAME) + +.ENDIF # "$(DESCRIPTION)"!="" +# default OOo license text!!! +# may not fit... +.IF "$(CUSTOM_LICENSE)"=="" +.IF "$(GUI)" == "WNT" +PACKLICDEPS=$(SOLARVER)/$(INPATH)/bin/osl/license.txt +.ELSE # "$(GUI)" == "WNT" +PACKLICDEPS=$(SOLARBINDIR)/osl/LICENSE +.ENDIF # "$(GUI)" == "WNT" +.ELSE # "$(CUSTOM_LICENSE)" == "" +PACKLICDEPS=$(CUSTOM_LICENSE) +.ENDIF # "$(CUSTOM_LICENSE)" == "" +.IF "$(PACKLICS)"!="" +$(PACKLICS) : $(PACKLICDEPS) + @@-$(MKDIRHIER) $(@:d) + $(COMMAND_ECHO)$(GNUCOPY) $< $@ +.ENDIF # "$(PACKLICS)"!="" + +.IF "$(COMPONENT_MANIFEST)"!="" +#$(COMPONENT_MANIFEST) : $$(@:f) +$(COMPONENT_MANIFEST) : $(MANIFEST_SRC) $(MANIFEST_DEPS) + @@-$(MKDIRHIER) $(@:d) +.IF "$(COMPONENT_MANIFEST_GENERIC)" == "" + $(COMMAND_ECHO)$(TYPE) $(MANIFEST_SRC) | $(SED) "s/SHARED_EXTENSION/$(DLLPOST)/" | $(SED) "s/EXEC_EXTENSION/$(EXECPOST)/" > $@ +.ELSE # "$(COMPONENT_MANIFEST_GENERIC)" != "" + $(COMMAND_ECHO)$(PERL) $(SOLARENV)/bin/makemani.pl $(PRJ)/util/manifest.xml $(EXTENSIONDIR) $(COMPONENT_MANIFEST_SEARCHDIR) $(@:d:d) +.ENDIF # "$(COMPONENT_MANIFEST_GENERIC)" != "" +.ENDIF # "$(COMPONENT_MANIFEST)"!="" + +ALLTAR : $(EXTENSION_PACKDEPS) diff --git a/solenv/inc/extension_pre.mk b/solenv/inc/extension_pre.mk new file mode 100644 index 000000000000..7fd8f5d86c85 --- /dev/null +++ b/solenv/inc/extension_pre.mk @@ -0,0 +1,59 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +EXTENSIONDIR*:=$(MISC)/$(EXTENSIONNAME) + +COMPONENT_CONFIGDIR*:=. +COMPONENT_CONFIGDEST*:=registry/data +COMPONENT_CONFIGDESTSCHEMA*:=registry/schema + +.IF "$(COMPONENT_COPYONLY)"=="" +DESCRIPTION:=$(EXTENSIONDIR)/description.xml +DESCRIPTION_SRC*:=description.xml + +COMPONENT_MANIFEST*:=$(EXTENSIONDIR)/META-INF/manifest.xml +MANIFEST_SRC*:=manifest.xml + +.IF "$(GUI)" == "WIN" || "$(GUI)" == "WNT" +PACKLICS*:=$(EXTENSIONDIR)/registration/license.txt +COMPONENT_LIC_TEMPL*:=registration/license.txt +.ELSE +PACKLICS*:=$(EXTENSIONDIR)/registration/LICENSE +COMPONENT_LIC_TEMPL*:=registration/LICENSE +.ENDIF + +#TODO: check ZIP9TARGET for previous use! +common_build_zip= +MANIFEST_DEPS= $(PACKLICS) $(DESCRIPTION) $(COMPONENT_FILES) $(COMPONENT_LIBRARIES) $(COMPONENT_JARFILES) $(COMPONENT_MERGED_XCU) $(EXTENSION_PACKDEPS) +ZIP9DEPS= $(PACKLICS) $(DESCRIPTION) $(COMPONENT_XCU) $(COMPONENT_FILES) $(COMPONENT_LIBRARIES) $(COMPONENT_MANIFEST) $(COMPONENT_JARFILES) $(COMPONENT_MERGED_XCU) $(EXTENSION_PACKDEPS) +ZIP9TARGET= $(EXTENSION_ZIPNAME) +ZIP9DIR= $(EXTENSIONDIR) +ZIP9EXT= .oxt +ZIP9FLAGS=-r +ZIP9LIST= * +.ENDIF # "$(COMPONNENT_COPYONLY)"=="" + diff --git a/solenv/inc/found_no.mk b/solenv/inc/found_no.mk new file mode 100644 index 000000000000..43c888f8d90d --- /dev/null +++ b/solenv/inc/found_no.mk @@ -0,0 +1,5 @@ +no_traget: + @echo ----------------------------------------------- + @echo Error: No makefile.mk found! + @echo ----------------------------------------------- + force_dmake_to_error diff --git a/solenv/inc/installationtest.mk b/solenv/inc/installationtest.mk new file mode 100644 index 000000000000..69e57381da1c --- /dev/null +++ b/solenv/inc/installationtest.mk @@ -0,0 +1,158 @@ +#************************************************************************* +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +#***********************************************************************/ + +# relevant for non-product builds only, but built unconditionally +.IF "$(ABORT_ON_ASSERTION)" != "" + DBGSV_ERROR_OUT=abort + SAL_DIAGNOSE_ABORT=TRUE + .EXPORT: SAL_DIAGNOSE_ABORT +.ELSE + DBGSV_ERROR_OUT=shell +.ENDIF +.EXPORT: DBGSV_ERROR_OUT + +# don't allow to overwrite DBGSV_ERROR_OUT with an INI file. Otherwise, people +# might be tempted to put an DBGSV_INIT into their .bash_profile which points to a file +# delcaring to ignore all assertions completely ... +DBGSV_INIT= +.EXPORT: DBGSV_INIT + +.IF "$(OS)" == "WNT" +my_file = file:/// +.ELSE +my_file = file:// +.END + +# The following conditional is an approximation of: UPDATER set to YES and +# SHIPDRIVE set and either SOL_TMP not set or +# SOLARENV set to a pathname of which SOL_TMP is not a prefix: +.IF "$(UPDATER)" == "YES" && "$(SHIPDRIVE)" != "" && \ + "$(SOLARENV:s/$(SOL_TMP)//" == "$(SOLARENV)" +my_instsets = $(shell ls -dt \ + $(SHIPDRIVE)/$(INPATH)/LibreOffice/archive/$(WORK_STAMP)_$(LAST_MINOR)_native_packed-*_$(defaultlangiso).$(BUILD)) +installationtest_instset = $(my_instsets:1) +.ELSE +installationtest_instset = \ + $(SOLARSRC)/instsetoo_native/$(INPATH)/LibreOffice/archive/install/$(defaultlangiso) +.END + +.IF "$(OS)" == "WNT" +installationtest_instpath = `cat $(MISC)/$(TARGET)/installation.flag` +.ELSE +installationtest_instpath = $(SOLARVERSION)/$(INPATH)/installation +.END + +.IF "$(OS)" == "MACOSX" +my_sofficepath = \ + $(installationtest_instpath)/opt/LibreOffice.app/Contents/MacOS/soffice +.ELIF "$(OS)" == "WNT" +my_sofficepath = \ + $(installationtest_instpath)'/opt/LibreOffice 3/program/soffice.exe' +.ELSE +my_sofficepath = \ + $(installationtest_instpath)/opt/program/soffice +.END + +.IF "$(OOO_TEST_SOFFICE)" == "" +my_soffice = path:$(my_sofficepath) +.ELSE +my_soffice = '$(OOO_TEST_SOFFICE:s/'/'\''/)' +.END + +.IF "$(OOO_LIBRARY_PATH_VAR)" != "" +my_cppenv = \ + -env:arg-env=$(OOO_LIBRARY_PATH_VAR)"$${{$(OOO_LIBRARY_PATH_VAR)+=$$$(OOO_LIBRARY_PATH_VAR)}}" +my_javaenv = \ + -Dorg.openoffice.test.arg.env=$(OOO_LIBRARY_PATH_VAR)"$${{$(OOO_LIBRARY_PATH_VAR)+=$$$(OOO_LIBRARY_PATH_VAR)}}" +.END + +# Work around Windows problems with long pathnames (see issue 50885) by +# installing into the temp directory instead of the module output tree (in which +# case $(TARGET).installation.flag contains the path to the temp installation, +# which is removed after smoketest); can be removed once issue 50885 is fixed; +# on other platforms, a single installation to solver is created in +# smoketestoo_native: +.IF "$(OS)" == "WNT" && "$(OOO_TEST_SOFFICE)" == "" +OOO_EXTRACT_TO:=$(shell cygpath -m `mktemp -dt ooosmoke.XXXXXX`) +$(MISC)/$(TARGET)/installation.flag : $(shell \ + ls $(installationtest_instset)/LibO_*_install-arc_$(defaultlangiso).zip) + $(COMMAND_ECHO)$(MKDIRHIER) $(@:d) + $(COMMAND_ECHO)unzip -q $(installationtest_instset)/LibO_*_install-arc_$(defaultlangiso).zip -d "$(OOO_EXTRACT_TO)" + $(COMMAND_ECHO)mv "$(OOO_EXTRACT_TO)"/LibO_*_install-arc_$(defaultlangiso) "$(OOO_EXTRACT_TO)"/opt + $(COMMAND_ECHO)echo "$(OOO_EXTRACT_TO)" > $@ +.END + +cpptest .PHONY : + $(COMMAND_ECHO)$(RM) -r $(MISC)/$(TARGET)/user + $(COMMAND_ECHO)$(MKDIRHIER) $(MISC)/$(TARGET)/user + $(CPPUNITTESTER) \ + -env:UNO_SERVICES=$(my_file)$(SOLARXMLDIR)/ure/services.rdb \ + -env:UNO_TYPES=$(my_file)$(SOLARBINDIR)/types.rdb \ + -env:arg-soffice=$(my_soffice) -env:arg-user=$(MISC)/$(TARGET)/user \ + $(my_cppenv) $(TEST_ARGUMENTS:^"-env:arg-testarg.") --protector \ + $(SOLARSHAREDBIN)/unoexceptionprotector$(DLLPOST) \ + unoexceptionprotector $(CPPTEST_LIBRARY) +# As a workaround for #i111400#, ignore failure of $(RM): + $(COMMAND_ECHO)- $(RM) -r $(MISC)/$(TARGET)/user +.IF "$(OS)" == "WNT" && "$(OOO_TEST_SOFFICE)" == "" + $(COMMAND_ECHO)$(RM) -r $(installationtest_instpath) $(MISC)/$(TARGET)/installation.flag +cpptest : $(MISC)/$(TARGET)/installation.flag +.END + +.IF "$(SOLAR_JAVA)" == "TRUE" && "$(OOO_JUNIT_JAR)" != "" +javatest_% .PHONY : $(JAVATARGET) + $(COMMAND_ECHO)$(RM) -r $(MISC)/$(TARGET)/user + $(COMMAND_ECHO)$(MKDIRHIER) $(MISC)/$(TARGET)/user + $(COMMAND_ECHO)$(JAVAI) $(JAVAIFLAGS) $(JAVACPS) \ + '$(OOO_JUNIT_JAR)$(PATH_SEPERATOR)$(CLASSPATH)' \ + -Dorg.openoffice.test.arg.soffice=$(my_soffice) \ + -Dorg.openoffice.test.arg.user=$(my_file)$(PWD)/$(MISC)/$(TARGET)/user \ + $(my_javaenv) $(TEST_ARGUMENTS:^"-Dorg.openoffice.test.arg.testarg.") \ + org.junit.runner.JUnitCore \ + $(subst,/,. $(PACKAGE)).$(@:s/javatest_//) + $(RM) -r $(MISC)/$(TARGET)/user +.IF "$(OS)" == "WNT" && "$(OOO_TEST_SOFFICE)" == "" + $(RM) -r $(installationtest_instpath) $(MISC)/$(TARGET)/installation.flag +javatest : $(MISC)/$(TARGET)/installation.flag +.END +javatest .PHONY : $(JAVATARGET) + $(COMMAND_ECHO)$(RM) -r $(MISC)/$(TARGET)/user + $(COMMAND_ECHO)$(MKDIRHIER) $(MISC)/$(TARGET)/user + $(COMMAND_ECHO)$(JAVAI) $(JAVAIFLAGS) $(JAVACPS) \ + '$(OOO_JUNIT_JAR)$(PATH_SEPERATOR)$(CLASSPATH)' \ + -Dorg.openoffice.test.arg.soffice=$(my_soffice) \ + -Dorg.openoffice.test.arg.user=$(my_file)$(PWD)/$(MISC)/$(TARGET)/user \ + $(my_javaenv) $(TEST_ARGUMENTS:^"-Dorg.openoffice.test.arg.testarg.") \ + org.junit.runner.JUnitCore \ + $(foreach,i,$(JAVATESTFILES) $(subst,/,. $(PACKAGE)).$(i:s/.java//)) + $(RM) -r $(MISC)/$(TARGET)/user +.IF "$(OS)" == "WNT" && "$(OOO_TEST_SOFFICE)" == "" + $(RM) -r $(installationtest_instpath) $(MISC)/$(TARGET)/installation.flag +javatest : $(MISC)/$(TARGET)/installation.flag +.END +.ELSE +javatest .PHONY : + @echo 'javatest needs SOLAR_JAVA=TRUE and OOO_JUNIT_JAR' +.END diff --git a/solenv/inc/javaunittest.mk b/solenv/inc/javaunittest.mk new file mode 100644 index 000000000000..6d7c564da2a0 --- /dev/null +++ b/solenv/inc/javaunittest.mk @@ -0,0 +1,110 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +# Makefile template for directories that contain Java unit tests. +# +# Before including this makefile, the following variables should be set: +# - PRJ, PRJNAME, TARGET +# - PACKAGE +# - JAVATESTFILES: the unit test classes; +# each one of the form <basename>.java; +# these java files must only define classes within the package corresponding +# to PACKAGE, the name of each defined (outer) class should end with "_Test" +# - JAVAFILES: optional java files, corresponding class files are generated +# that can be used when compiling or running the tests; +# each one of the form <basename>.java; +# these java files must only define classes within the package corresponding +# to PACKAGE, the name of each defined (outer) class should start with +# "Test" +# - IDLTESTFILES: optional idl files, corresponding class files are generated +# that can be used when compiling or running the tests; +# each one of the form <basename>.idl; +# these idl files must only define entities within the module corresponding +# to PACKAGE, the name of each defined entity should start with "Test" +# - JARFILES: optional jar files that can be used when compiling or running the +# tests; +# each one of the form <basename>.jar +# All generated class files are placed into <platform>/class/test/ instead of +# <platform>/class/, so that they are not accidentally included in jar files +# packed from <platform>/class/ subdirectories. + +JAVAFILES +:= $(JAVATESTFILES) +EXTRAJARFILES += $(OOO_JUNIT_JAR) + +.INCLUDE: settings.mk + +.IF "$(XCLASSPATH)" == "" +XCLASSPATH := $(CLASSDIR) +.ELSE +XCLASSPATH !:= $(XCLASSPATH)$(PATH_SEPERATOR)$(CLASSDIR) +.ENDIF +CLASSDIR !:= $(CLASSDIR)/test + +.INCLUDE: target.mk + +$(JAVATARGET) : $(MISC)/$(TARGET).classdir.flag + +$(MISC)/$(TARGET).classdir.flag: + - $(MKDIR) $(CLASSDIR) + $(TOUCH) $@ + +.IF "$(JAVATESTFILES)" != "" +ALLTAR : test +.END + +.IF "$(SOLAR_JAVA)" == "TRUE" && "$(OOO_JUNIT_JAR)" != "" +test .PHONY : $(JAVATARGET) + $(JAVAI) $(JAVAIFLAGS) $(JAVACPS) \ + '$(OOO_JUNIT_JAR)$(PATH_SEPERATOR)$(CLASSPATH)' \ + org.junit.runner.JUnitCore \ + $(foreach,i,$(JAVATESTFILES) $(subst,/,. $(PACKAGE)).$(i:s/.java//)) +.ELSE +test .PHONY : + echo 'test needs SOLAR_JAVA=TRUE and OOO_JUNIT_JAR' +.END + +.IF "$(IDLTESTFILES)" != "" + +# The following dependency (to execute javac whenever javamaker has run) does +# not work reliably, see #i28827#: +$(JAVAFILES) $(JAVACLASSFILES): $(MISC)/$(TARGET).javamaker.flag + +$(MISC)/$(TARGET).javamaker.flag: $(MISC)/$(TARGET).rdb + $(JAVAMAKER) -O$(CLASSDIR) -BUCR -nD $< -X$(SOLARBINDIR)/types.rdb + $(TOUCH) $@ + +$(MISC)/$(TARGET).rdb .ERRREMOVE: \ + $(foreach,i,$(IDLTESTFILES) $(subst,.idl,.urd $(MISC)/$(TARGET)/$i)) + - rm $@ + $(REGMERGE) $@ /UCR $< + +$(foreach,i,$(IDLTESTFILES) $(subst,.idl,.urd $(MISC)/$(TARGET)/$i)): \ + $(IDLTESTFILES) + - $(MKDIR) $(MISC)/$(TARGET) + $(IDLC) -O$(MISC)/$(TARGET) -I$(SOLARIDLDIR) -cid -we $< + +.ENDIF diff --git a/solenv/inc/lang.mk b/solenv/inc/lang.mk new file mode 100644 index 000000000000..fc5321653fbc --- /dev/null +++ b/solenv/inc/lang.mk @@ -0,0 +1,57 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + + +#.IF "$(GUI)"=="UNX" || "$(GUIBASE)"=="WIN" +#LANG_GUI=WIN +#.ELSE +LANG_GUI=$(GUI) +#.ENDIF + +################################################### +# +# entries for charsets + +# variable name equals $(solarlang)$(LANG_GUI) +# +################################################### + +#deut$(LANG_GUI)*=-CHARSET_microsoft-cp1252 + +################################################### +# +# set defaults +# +################################################### + +#.IF "$(solarlang)" == "" +#solarlang=deut +#.ENDIF + +RSC_SRS_CHARSET=-CHARSET_DONTKNOW +default$(LANG_GUI)*=-CHARSET_UTF8 + diff --git a/solenv/inc/langlist.mk b/solenv/inc/langlist.mk new file mode 100644 index 000000000000..c0d03c7f7df2 --- /dev/null +++ b/solenv/inc/langlist.mk @@ -0,0 +1,136 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +# Complete list of all supported localizations (ISO codes) +completelangiso=af \ +ar \ +as \ +ast \ +be \ +bo \ +bg \ +br \ +brx \ +bn \ +bs \ +ca \ +ca-XV \ +cs \ +cy \ +da \ +de \ +dgo \ +dz \ +el \ +en-GB \ +en-US \ +en-ZA \ +eo \ +es \ +et \ +eu \ +fa \ +fi \ +fr \ +ga \ +gd \ +gl \ +gu \ +he \ +hi \ +hr \ +hu \ +id \ +is \ +it \ +ja \ +ka \ +kk \ +km \ +kn \ +ko \ +kok \ +ks \ +ku \ +lb \ +lo \ +lt \ +lv \ +mai \ +mk \ +mn \ +mni \ +ml \ +mr \ +my \ +ne \ +nb \ +nl \ +nn \ +nr \ +nso \ +om \ +oc \ +or \ +pa-IN \ +pl \ +pt \ +pt-BR \ +ro \ +ru \ +rw \ +sat \ +sa-IN \ +si \ +sd \ +sq \ +sk \ +sl \ +sh \ +sr \ +ss \ +st \ +sv \ +sw-TZ \ +te \ +ta \ +th \ +tn \ +tr \ +tk \ +ts \ +tg \ +tt \ +ug \ +uk \ +uz \ +ve \ +vi \ +xh \ +zh-CN \ +zh-TW \ +zu diff --git a/solenv/inc/layout.mk b/solenv/inc/layout.mk new file mode 100644 index 000000000000..7b808f0b35aa --- /dev/null +++ b/solenv/inc/layout.mk @@ -0,0 +1,32 @@ +TRALAY=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/tralay +XML_DEST=$(DLLDEST) +XML_LANGS=$(alllangiso) + +ALL_XMLS=$(foreach,i,$(XML_FILES) "$(XML_DEST)/$i") $(foreach,i,$(XML_LANGS) $(foreach,j,$(XML_FILES) "$(XML_DEST)/$i/$j")) + +# Must remove the -j (no duplicate base file names) flag +ZIPUPDATE=-u +XML_ZIP = $(PRJNAME)-layout + +ALLTAR: localize.sdf $(XML_ZIP) + +$(XML_ZIP): $(ALL_XMLS) + +ZIP1DIR=$(XML_DEST) +ZIP1TARGET=$(XML_ZIP) +ZIP1LIST=$(ALL_XMLS:s@$(XML_DEST)/@@) + +$(foreach,i,$(XML_LANGS) $(XML_DEST)/$i/%.xml): %.xml + $(COMMAND_ECHO)-$(MKDIR) $(@:d) + @echo $(foreach,i,$(XML_LANGS) $(XML_DEST)/$i/%.xml): %.xml + $(TRALAY) -m localize.sdf -o "$(XML_DEST)" -l $(XML_LANGS:f:t" -l ") "$<" + +$(XML_DEST)/%.xml: %.xml + $(COMMAND_ECHO)-$(MKDIR) $(@:d) + $(COMMAND_ECHO)$(COPY) "$<" "$@" + +# Don't want to overwrite filled localize.sdf with empty template +template.sdf: + $(foreach,i,$(XML_FILES) $(TRALAY) -l en-US "$i") > $@ + +$(ZIP1LIST): localize.sdf diff --git a/solenv/inc/libs.mk b/solenv/inc/libs.mk new file mode 100644 index 000000000000..dffd6f405db5 --- /dev/null +++ b/solenv/inc/libs.mk @@ -0,0 +1,528 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* +LIBSMKREV!:="$$Revision: 1.134.2.3 $$" + +.INCLUDE .IGNORE : icuversion.mk +.INCLUDE .IGNORE : i18npool/version.mk +.INCLUDE .IGNORE : comphelper/version.mk +.INCLUDE .IGNORE : ucbhelper/version.mk +.INCLUDE .IGNORE : connectivity/version.mk + +.IF ("$(GUI)"=="UNX" || "$(COM)"=="GCC") + +.IF "$(GUI)" == "WNT" +ODMA_LIB_LIB=-lodma_lib +.ENDIF + +# +#externe libs in plattform.mk +# +AWTLIB*=-ljawt +AVMEDIALIB=-lavmedia$(DLLPOSTFIX) +.IF "$(GUI)$(COM)"=="WNTGCC" && "$(SYSTEM_ICU)"!="YES" +ICUINLIB=-licuin$(ICU_MAJOR)$(ICU_MINOR) +ICULELIB=-licule$(ICU_MAJOR)$(ICU_MINOR) +ICUUCLIB=-licuuc$(ICU_MAJOR)$(ICU_MINOR) +ICUDATALIB=-licudt$(ICU_MAJOR)$(ICU_MINOR) +.ELSE # "$(GUI)$(COM)"=="WNTGCC" && "$(SYSTEM_ICU)"!="YES" +ICUINLIB=-licui18n +ICULELIB=-licule +ICUUCLIB=-licuuc +ICUDATALIB=-licudata +.ENDIF # "$(GUI)$(COM)"=="WNTGCC" && "$(SYSTEM_ICU)"!="YES" +I18NUTILLIB=-li18nutil$(COMID) +I18NISOLANGLIB=-li18nisolang$(ISOLANG_MAJOR)$(COMID) +I18NPAPERLIB=-li18npaper$(DLLPOSTFIX) +I18NREGEXPLIB=-li18nregexp$(DLLPOSTFIX) +SALHELPERLIB=-luno_salhelper$(COMID) +XMLSCRIPTLIB =-lxcr$(DLLPOSTFIX) +COMPHELPERLIB=-lcomphelp$(COMID) +CONNECTIVITYLIB=-lconnectivity +LDAPBERLIB=-lldapber +TOOLSLIBST=-latools +BPICONVLIB=-lbpiconv +TOOLSLIB=-ltl$(DLLPOSTFIX) +CPPULIB=-luno_cppu +CPPUHELPERLIB=-luno_cppuhelper$(COMID) +UCBHELPERLIB=-lucbhelper4$(COMID) +.IF "$(SYSTEM_OPENSSL)" == "YES" +OPENSSLLIB=$(OPENSSL_LIBS) +OPENSSLLIBST=$(STATIC) $(OPENSSL_LIBS) $(DYNAMIC) +.ELSE # "$(SYSTEM_OPENSSL)" == "YES +OPENSSLLIB=-lssl -lcrypto +.IF "$(GUI)$(COM)"=="WNTGCC" +OPENSSLLIBST=-lssl_static -lcrypto_static +.ELSE # "$(GUI)$(COM)"=="WNTGCC" +OPENSSLLIBST=$(STATIC) -lssl -lcrypto $(DYNAMIC) +.ENDIF # "$(GUI)$(COM)"=="WNTGCC" +.ENDIF # "$(SYSTEM_OPENSSL)" == "YES" +REGLIB=-lreg +XMLOFFLIB=-lxo$(DLLPOSTFIX) +XMLOFFLLIB=-lxol +STORELIB=-lstore +SALLIB=-luno_sal +ODBCLIB=-lodbc$(DLLPOSTFIX) +ODBCBASELIB=-lodbcbase$(DLLPOSTFIX) +DBFILELIB=-lfile$(DLLPOSTFIX) +.IF "$(GUI)$(COM)"=="WNTGCC" +RMCXTLIB=-lrmcxt$(UDK_MAJOR) +.ELSE # "$(GUI)$(COM)"=="WNTGCC" +RMCXTLIB=-lrmcxt +.ENDIF # "$(GUI)$(COM)"=="WNTGCC" +BTSTRPLIB=-lbtstrp +BTSTRPDTLIB=-lbootstrpdt$(DLLPOSTFIX) +TRANSEXLIB=-ltransex +OTXLIB=-lotx_ind +OSXLIB=-losx +UNOTOOLSLIB=-lutl$(DLLPOSTFIX) +SOTLIB=-lsot$(DLLPOSTFIX) +.IF "$(GUI)$(COM)"=="WNTGCC" +MOZBASELIBST=$(STATIC) -lnspr4_s -lxpcombase_s +.ELSE # "$(GUI)$(COM)"=="WNTGCC" +MOZBASELIBST=$(STATIC) -lnspr4 -lxpcombase_s $(DYNAMIC) +.ENDIF # "$(GUI)$(COM)"=="WNTGCC" +MOZBASELIB=-lnspr4 -lxpcom +.IF "$(GUI)$(COM)"=="WNTGCC" +LDAPSDKLIB=-lnsldap32v50 +.ELSE # "$(GUI)$(COM)"=="WNTGCC" +.IF "$(WITH_OPENLDAP)" == "YES" +LDAPSDKLIB=-lldap +.ELSE +LDAPSDKLIB=-lldap50 +.ENDIF +.ENDIF # "$(GUI)$(COM)"=="WNTGCC" + +ICOLIB=-lico$(DLLPOSTFIX) +VCLLIB=-lvcl$(DLLPOSTFIX) +OOXLIB=-loox$(DLLPOSTFIX) +BASEGFXLIB=-lbasegfx$(DLLPOSTFIX) +DRAWINGLAYERLIB=-ldrawinglayer$(DLLPOSTFIX) +BASEBMPLIB=-lbasebmp$(DLLPOSTFIX) +CANVASTOOLSLIB=-lcanvastools$(DLLPOSTFIX) +CPPCANVASLIB=-lcppcanvas$(DLLPOSTFIX) +FORLIB=-lfor$(DLLPOSTFIX) +FORUILIB=-lforui$(DLLPOSTFIX) + +.IF "$(SYSTEM_AGG)" == "YES" +AGGLIB=-lagg +.ELSE +AGGLIB=-lagg$(DLLPOSTFIX) +.ENDIF +FREETYPE_LIBS*=-lfreetype +FREETYPELIB=$(FREETYPE_LIBS) +TKLIB=-ltk$(DLLPOSTFIX) +LAYOUTLIB=-ltklayout$(DLLPOSTFIX) +SVTOOLLIB=-lsvt$(DLLPOSTFIX) +XMLSECLIB=-lxmlsec1 +XMLSECLIB-NSS=-lxmlsec1-nss +.IF "$(SYSTEM_LIBXML)"=="YES" +LIBXML2LIB=$(LIBXML_LIBS) +.ELSE +LIBXML2LIB=-lxml2 +.ENDIF +NSS3LIB=-lnss3 +NSPR4LIB=-lnspr4 +PLC4LIB=-lplc4 +NSSCRYPTOLIBS=$(XMLSECLIB-NSS) $(XMLSECLIB) $(LIBXML2LIB) $(NSS3LIB) $(NSPR4LIB) $(PLC4LIB) +.IF "$(GUI)$(COM)"=="WNTGCC" +XMLSECLIB-MS=-lxmlsec1-mscrypto +MSCRYPTOLIBS=$(XMLSECLIB) $(XMLSECLIB-MS) $(LIBXML2LIB) $(CRYPT32LIB) $(ADVAPI32LIB) +.ENDIF # "$(GUI)$(COM)"=="WNTGCC" +BROOKERLIB=-lbrooker$(DLLPOSTFIX) +SIMPLECMLIB=-lsimplecm$(DLLPOSTFIX) +COMMUNILIB=-lcommuni$(DLLPOSTFIX) +BTCOMMUNILIB=-lbtcommuni$(DLLPOSTFIX) +AUTOMATIONLIB=-lsts$(DLLPOSTFIX) +SVLLIB=-lsvl$(DLLPOSTFIX) +TKTLIB=-ltkt$(DLLPOSTFIX) +SAXLIB=-lsax$(DLLPOSTFIX) +MAILLIB=-lmail +DOCMGRLIB=-ldmg$(DLLPOSTFIX) +BASICLIB=-lsb$(DLLPOSTFIX) +VBAHELPERLIB=-lvbahelper$(DLLPOSTFIX) +DBTOOLSLIB=-ldbtools$(DLLPOSTFIX) +HM2LIBSH=-lhmwrpdll +HM2LIBST=-lhmwrap +LINGULIB=$(HM2LIBST) +LNGLIB=-llng$(DLLPOSTFIX) +.IF "$(SYSTEM_EXPAT)"=="YES" +EXPAT3RDLIB=-lexpat +EXPATASCII3RDLIB=-lexpat +.ELSE +EXPAT3RDLIB=-lexpat_xmlparse -lexpat_xmltok +EXPATASCII3RDLIB=-lascii_expat_xmlparse -lexpat_xmltok +.ENDIF +.IF "$(SYSTEM_ZLIB)"=="YES" +ZLIB3RDLIB=-lz +.ELSE +ZLIB3RDLIB=-lzlib +.ENDIF +.IF "$(SYSTEM_JPEG)"=="YES" +JPEG3RDLIB=-ljpeg +.ELSE +JPEG3RDLIB=-ljpeglib +.ENDIF +.IF "$(SYSTEM_NEON)" == "YES" +NEON3RDLIB=-lneon +.ELIF "$(GUI)$(COM)"=="WNTGCC" +NEON3RDLIB=-lneon +.ELIF "$(OS)" == "MACOSX" +NEON3RDLIB=$(SOLARLIBDIR)/libneon.dylib +.ELSE +NEON3RDLIB=-lneon +.ENDIF +.IF "$(SYSTEM_DB)" == "YES" +BERKELEYLIB=-l$(DB_LIB) +.ELSE +BERKELEYLIB=-ldb-4.7 +.ENDIF +CURLLIB=-lcurl +SFX2LIB=-lsfx$(DLLPOSTFIX) +SFXLIB=-lsfx$(DLLPOSTFIX) +SFXDEBUGLIB= +FWELIB=-lfwe$(DLLPOSTFIX) +FWILIB=-lfwi$(DLLPOSTFIX) +SVXCORELIB=-lsvxcore$(DLLPOSTFIX) +MSFILTERLIB=-lmsfilter$(DLLPOSTFIX) +SVXLIB=-lsvx$(DLLPOSTFIX) +EDITENGLIB=-lediteng$(DLLPOSTFIX) +BASCTLLIB=-lbasctl$(DLLPOSTFIX) +BASICIDELIB=-lybctl +SVXLLIB=-lsvxl +CHAOSLIB=-lcnt$(DLLPOSTFIX) +UUILIB=-luui$(DLLPOSTFIX) +DGLIB= +SCHLIB=-lysch +SMLIB=-lysm +OFALIB=-lofa$(DLLPOSTFIX) +PRXLIB=-llprx2$(DLLPOSTFIX) +PACKAGE2LIB=-lpackage2 +PAPILIB=-lpap$(DLLPOSTFIX) +SCLIB=-lsclib +SDLIB=-lsdlib +SDLLIB=-lsdl +SWLIB=-lswlib +ISWLIB=-lsw$(DLLPOSTFIX) +ISCLIB=-lsc$(DLLPOSTFIX) +ISDLIB=-lsd$(DLLPOSTFIX) +PKGCHKLIB=-lpkgchk$(DLLPOSTFIX) +HELPLINKERLIB=-lhelplinker$(DLLPOSTFIX) +JVMACCESSLIB = -ljvmaccess$(COMID) +.IF "$(SYSTEM_CPPUNIT)"=="YES" +CPPUNITLIB = $(CPPUNIT_LIBS) +.ELSE +CPPUNITLIB = -lcppunit +.ENDIF +.IF "$(SYSTEM_LIBXSLT)"=="YES" +XSLTLIB=$(LIBXSLT_LIBS) +.ELSE +XSLTLIB=-lxslt $(LIBXML2LIB) +.ENDIF +JVMFWKLIB = -ljvmfwk +.IF "$(SYSTEM_REDLAND)"=="YES" +REDLANDLIB=$(REDLAND_LIBS) +.ELSE +REDLANDLIB=-lrdf +.ENDIF + + +# #110743# +# For BinFilters, some libs were added. +# + +BFSVXLIB=-lbf_svx$(DLLPOSTFIX) +BFSCHLIB=-lbf_ysch +BFSMLIB=-lbf_ysm +BFSCLIB=-lbf_sclib +BFSDLIB=-lbf_sdlib +BFSWLIB=-lbf_swlib +BFOFALIB=-lbf_ofa$(DLLPOSTFIX) +LEGACYSMGRLIB=-llegacy_binfilters$(DLLPOSTFIX) +BFXMLOFFLIB=-lbf_xo$(DLLPOSTFIX) +BFGOODIESLIB=-lbf_go$(DLLPOSTFIX) +BFBASICLIB=-lbf_sb$(DLLPOSTFIX) +BFSO3LIB=-lbf_so$(DLLPOSTFIX) +BFSVTOOLLIB=-lbf_svt$(DLLPOSTFIX) + +# +# USED_%NAME%_LIBS +# Variablen, in denen in gueltiger Reihenfolge ALLE Libraries, +# die unterhalb von %NAME% liegen, zusammengefasst werden +# + +# Libraries +USED_OSL_LIBS = +USED_VOS_LIBS = $(OSLLIB) +USED_UNO_LIBS = $(OSLLIB) +USED_TOOLS_LIBS = +USED_SOT_LIBS = $(TOOLSLIB) +USED_VCL_LIBS = $(SOTLIB) $(TOOLSLIB) $(USED_UNO_LIBS) + +# Applikationen +USED_BOOTSTRP_LIBS= $(TOOLSLIB) +USED_RCLIENT_LIBS = $(VCLLIB) $(SOTLIB) $(TOOLSLIB) \ + $(USED_UNO_LIBS) + +SABLOT3RDLIB=-lsablot +APP3RDLIB=-lapp +SAMPLE3RDLIB=-lsample +HNJLIB*=-lhyphen +MYSPELLLIB=-lmyspell +COSVLIB=-lcosv +UDMLIB=-ludm +ULINGULIB=-lulingu +.IF "$(SYSTEM_HUNSPELL)" == "YES" +HUNSPELLLIB=$(HUNSPELL_LIBS) +.ELSE +HUNSPELLLIB=-lhunspell-1.3 +.ENDIF +.IF "$(SYSTEM_MYTHES)" == "YES" +MYTHESLIB=$(MYTHES_LIBS) +.ELSE +MYTHESLIB=-lmythes-1.2 +.ENDIF +PYUNOLIB=-lpyuno +LPSOLVELIB=-llpsolve55 +SOFFICELIB=-lsofficeapp +UNOPKGAPPLIB=-lunopkgapp +TESTLIB=-ltest +XMLREADERLIB=-lxmlreader + +.IF "$(OS)" == "IOS" + +# As we build static libraries for iOS, we append to each library its +# dependencies, recursively. Start from the bottom of the dependency +# stack. This is experimental and obviously incomplete. + +REGLIB+=$(STORELIB) + +BOOTSTRAPUNOLIB=$(SOLARLIBDIR)/bootstrap.uno.a +BOOTSTRAPUNOLIB+=$(SALHELPERLIB) $(REGLIB) $(XMLREADERLIB) + +GCC3UNOLIB=-lgcc3_uno + +SALLIB+=-lsal_textenc + +CPPULIB+=$(GCC3UNOLIB) + +CPPUHELPERLIB+=$(BOOTSTRAPUNOLIB) + +UCBHELPERLIB+=$(SALHELPERLIB) + +UNOTOOLSLIB+=$(I18NISOLANGLIB) +UNOTOOLSLIB+=$(UCBHELPERLIB) + +TOOLSLIB+=$(BASEGFXLIB) +TOOLSLIB+=$(ZLIB3RDLIB) + +VCLLIB+=$(ICUUCLIB) $(I18NPAPERLIB) + +.ENDIF + +.IF "$(OS)" == "ANDROID" + +# Some of the external libraries get built as static libraries for +# Android, mostly by accident, because we haven't bothered fixing up +# their configury to realize that it would work to build shared +# libraries. + +CURLLIB+=$(ZLIB3RDLIB) + +.ENDIF + +.ELSE # ("$(GUI)"=="UNX" || "$(COM)"=="GCC") + +ODMA_LIB_LIB=odma_lib.lib +AWTLIB*=jawt.lib +AVMEDIALIB=iavmedia.lib +ICUINLIB=icuin.lib +ICULELIB=icule.lib +ICUUCLIB=icuuc.lib +ICUDATALIB=icudt.lib +I18NUTILLIB=ii18nutil.lib +I18NISOLANGLIB=ii18nisolang.lib +I18NPAPERLIB=ii18npaper.lib +I18NREGEXPLIB=ii18nregexp.lib +SALHELPERLIB=isalhelper.lib +XMLSCRIPTLIB=ixcr.lib +COMPHELPERLIB=icomphelp.lib +CONNECTIVITYLIB=connectivity.lib +LDAPBERLIB=ldapber.lib +CPPULIB=icppu.lib +CPPUHELPERLIB=icppuhelper.lib +UCBHELPERLIB=iucbhelper.lib +OPENSSLLIB=ssleay32.lib libeay32.lib +ODBCLIB=iodbc.lib +ODBCBASELIB=iodbcbase.lib +DBFILELIB=ifile.lib +TOOLSLIB=itools.lib +TOOLSLIBST=atools.lib +BPICONVLIB=bpiconv.lib +SALLIB=isal.lib +UNOTOOLSLIB=iutl.lib +RMCXTLIB=irmcxt.lib +XMLOFFLIB=ixo.lib +XMLOFFLLIB=xol.lib +STORELIB=istore.lib +OTXLIB=otx_ind.lib +OSXLIB=osx.lib +REGLIB=ireg.lib +EXTLIB=iext.lib +SOTLIB=isot.lib +MOZBASELIBST=nspr4_s.lib xpcombase_s.lib +MOZBASELIB=nspr4.lib xpcom.lib +LDAPSDKLIB=nsldap32v50.lib +PAPILIB=ipap.lib +SFX2LIB=sfx.lib +SFXLIB=$(SFX2LIB) +FWELIB=ifwe.lib +FWILIB=ifwi.lib +BTSTRPLIB=btstrp.lib +BTSTRPDTLIB=bootstrpdt.lib +TRANSEXLIB=transex.lib +ICOLIB=icom.lib +SVTOOLLIB=svtool.lib +XMLSECLIB=libxmlsec.lib +XMLSECLIB-MS=libxmlsec-mscrypto.lib +XMLSECLIB-NSS=libxmlsec-nss.lib +LIBXML2LIB=libxml2.lib +NSS3LIB=nss3.lib +NSPR4LIB=nspr4.lib +PLC4LIB=plc4.lib +NSSCRYPTOLIBS=$(XMLSECLIB-NSS) $(XMLSECLIB) $(LIBXML2LIB) $(NSS3LIB) $(NSPR4LIB) $(PLC4LIB) +MSCRYPTOLIBS=$(XMLSECLIB-MS) $(XMLSECLIB) $(LIBXML2LIB) crypt32.lib advapi32.lib +BROOKERLIB=ibrooker.lib +SIMPLECMLIB=isimplecm.lib +COMMUNILIB=icommuni.lib +BTCOMMUNILIB=ibtcommuni.lib +AUTOMATIONLIB=ists.lib +SVLLIB=isvl.lib +PLUGAPPLIB=plugapp.lib +SAXLIB=isax.lib +MAILLIB=mail.lib +DOCMGRLIB=docmgr.lib +BASICLIB=basic.lib +VBAHELPERLIB=vbahelper.lib +TKTLIB=tkt.lib +SVXCORELIB=isvxcore.lib +MSFILTERLIB=imsfilter.lib +SVXLIB=isvx.lib +EDITENGLIB=iediteng.lib +BASCTLLIB=basctl.lib +BASICIDELIB=ybctl.lib +SVXLLIB=svxl.lib +DBTOOLSLIB=idbtools.lib +HM2LIBSH=hmwrpdll.lib +HM2LIBST=hmwrap.lib +LINGULIB=$(HM2LIBST) +LNGLIB=ilng.lib +EXPAT3RDLIB=expat_xmltok.lib expat_xmlparse.lib +EXPATASCII3RDLIB=expat_xmltok.lib ascii_expat_xmlparse.lib +ZLIB3RDLIB=zlib.lib +JPEG3RDLIB=jpeglib.lib +NEON3RDLIB=ineon.lib +BERKELEYLIB=libdb47.lib +CURLLIB=libcurl.lib +CHAOSLIB=ichaos.lib +UUILIB=iuui.lib +DGLIB= +SCHLIB=ysch.lib +SMLIB=ysm.lib +OFALIB=aofa.lib +SCLIB=sclib.lib +SDLIB=sdlib.lib +SDLLIB=sdl.lib +SWLIB=swlib.lib +PRXLIB=ilprx2.lib +PACKAGE2LIB=ipackage.lib +ISWLIB=_sw.lib +ISCLIB=sci.lib +ISDLIB=sdi.lib +VCLLIB=ivcl.lib +OOXLIB=ioox.lib +BASEGFXLIB=ibasegfx.lib +DRAWINGLAYERLIB=idrawinglayer.lib +BASEBMPLIB=ibasebmp.lib +CANVASTOOLSLIB=icanvastools.lib +CPPCANVASLIB=icppcanvas.lib +FORLIB=ifor.lib +FORUILIB=iforui.lib +AGGLIB=iagg.lib +TKLIB=itk.lib +LAYOUTLIB=itklayout.lib +SVXLLIB=svxl.lib +FREETYPELIB=freetype.lib +PKGCHKLIB=ipkgchk.lib +HELPLINKERLIB=ihelplinker.lib +JVMACCESSLIB = ijvmaccess.lib +CPPUNITLIB = icppunit_dll.lib +XSLTLIB = libxslt.lib $(LIBXML2LIB) +REDLANDLIB = librdf.lib + +JVMFWKLIB = ijvmfwk.lib + +# #110743# +# For BinFilters, some libs were added. +# + +BFSVXLIB=bf_svx.lib +BFSCHLIB=bf_ysch.lib +BFSMLIB=bf_ysm.lib +BFSCLIB=bf_sclib.lib +BFSDLIB=bf_sdlib.lib +BFSWLIB=bf_swlib.lib +BFOFALIB=bf_ofa.lib +BFXMLOFFLIB=ibf_xo.lib +BFGOODIESLIB=bf_go.lib +BFBASICLIB=bf_sb.lib +BFSO3LIB=bf_so.lib +LEGACYSMGRLIB=ilegacy_binfilters.lib +BFSVTOOLLIB=bf_svt.lib + +SABLOT3RDLIB= $(LIBPRE) sablot.lib +APP3RDLIB= $(LIBPRE) app.lib +SAMPLE3RDLIB= $(LIBPRE) sample.lib +HNJLIB*=libhnj.lib +MYSPELLLIB= $(LIBPRE) myspell.lib +COSVLIB= $(LIBPRE) cosv.lib +UDMLIB= $(LIBPRE) udm.lib +ULINGULIB=$(LIBPRE) libulingu.lib +.IF "$(SYSTEM_HUNSPELL)" == "YES" +HUNSPELLLIB=$(HUNSPELL_LIBS) +.ELSE +HUNSPELLLIB=$(LIBPRE) libhunspell.lib +.ENDIF +MYTHESLIB=libmythes.lib +PYUNOLIB=ipyuno.lib +LPSOLVELIB=lpsolve55.lib +SOFFICELIB=isofficeapp.lib +UNOPKGAPPLIB=iunopkgapp.lib +TESTLIB=itest.lib +BOOSTTHREADLIB=boostthread.lib +XMLREADERLIB=ixmlreader.lib + +.ENDIF # ("$(GUI)"=="UNX" || "$(COM)"=="GCC") diff --git a/solenv/inc/mime.types b/solenv/inc/mime.types new file mode 100644 index 000000000000..43820404c434 --- /dev/null +++ b/solenv/inc/mime.types @@ -0,0 +1,201 @@ +# This file controls what Internet media types are sent to the client for +# given file extension(s). Sending the correct media type to the client +# is important so they know how to handle the content of the file. +# For more information about Internet media types, please read +# RFC 2045, 2046, 2047, 2048, and 2077. The Internet media type +# registry is at <ftp://ftp.iana.org/assignments/media-types/>. +# MIME type Extension +application/EDI-Consent +application/EDI-X12 +application/EDIFACT +application/activemessage +application/andrew-inset ez +application/applefile +application/atomicmail +application/cals-1840 +application/commonground +application/cybercash +application/cu-seeme csm cu +application/dca-rft +application/dec-dx +application/eshop +application/excel xls +application/ghostview +application/hyperstudio +application/iges +application/mac-binhex40 hqx +application/mac-compactpro cpt +application/macwriteii +application/marc +application/mathematica +application/msword doc dot wrd +application/news-message-id +application/news-transmission +application/octet-stream bin dms lha lzh exe class iso +application/oda oda +application/pdf pdf +application/pgp pgp +application/pgp-encrypted +application/pgp-keys +application/pgp-signature pgp +application/postscript ai eps ps +application/powerpoint ppt +application/remote-printing +application/rtf rtf +application/slate +application/wita +application/wordperfect5.1 wp5 +application/vnd.wap.wbxml wbxml +application/vnd.wap.wmlc wmlc +application/vnd.wap.wmlscriptc wmlsc +application/x-123 wk +application/x-Wingz wz +application/x-bcpio bcpio +application/x-bzip2 bz2 +application/x-cdlink vcd +application/x-chess-pgn pgn +application/x-compress z Z +application/x-cpio cpio +application/x-csh csh +application/x-debian-package deb +application/x-director dcr dir dxr +application/x-dvi dvi +application/x-gtar gtar tgz +application/x-gunzip gz +application/x-gzip gz +application/x-hdf hdf +application/x-httpd-php phtml pht php +application/x-javascript js +application/x-java-jnlp-file jnlp +application/x-kword kwd kwt +application/x-kspread ksp +application/x-kpresenter kpr kpt +application/x-kchart chrt +application/x-koan skp skd skt skm +application/x-latex latex +application/x-maker frm maker frame fm fb book fbdoc +application/x-mif mif +application/x-msdos-program com exe bat +application/x-netcdf nc cdf +application/x-ns-proxy-autoconfig pac +application/x-perl pl pm +application/x-rad rad +application/x-rpm rpm spm +application/x-sh sh +application/x-shar shar +application/x-shockwave-flash swf +application/x-stuffit sit +application/x-sv4cpio sv4cpio +application/x-sv4crc sv4crc +application/x-tar tar +application/x-tcl tcl +application/x-tex tex +application/x-texinfo texinfo texi +application/x-troff t tr roff +application/x-troff-man man +application/x-troff-me me +application/x-troff-ms ms +application/x-ustar ustar +application/x-wais-source src +application/xhtml+xml xhtml xht +application/zip zip +audio/basic au snd +audio/midi mid midi kar +audio/mpeg mpga mp2 mp3 +audio/x-mpegurl m3u +audio/x-aiff aif aifc aiff +audio/x-realaudio ra +audio/x-wav wav +chemical/x-pdb pdb +chemical/x-xyz xyz +image/bmp bmp +image/gif gif +image/ief ief +image/jpeg jpeg jpg jpe +image/png png +image/tiff tiff tif +image/vnd.djvu djvu djv +image/vnd.wap.wbmp wbmp +image/x-cmu-raster ras +image/x-portable-anymap pnm +image/x-portable-bitmap pbm +image/x-portable-graymap pgm +image/x-portable-pixmap ppm +image/x-rgb rgb +image/x-xbitmap xbm +image/x-xpixmap xpm +image/x-xwindowdump xwd +message/external-body +message/news +message/partial +message/rfc822 +model/iges igs iges +model/mesh msh mesh silo +model/vrml wrl vrml +multipart/alternative +multipart/appledouble +multipart/digest +multipart/mixed +multipart/parallel +text/css css +text/html html htm +text/plain asc txt c cc h hh cpp hpp +text/richtext rtx +text/rtf rtf +text/sgml sgml sgm +text/tab-separated-values tsv +text/x-setext etx +text/x-vCalendar vcs +text/x-vCard vcf +text/xml xml dtd xsl +video/dl dl +video/fli fli +video/gl gl +video/mpeg mp2 mpe mpeg mpg +video/quicktime qt mov +video/x-msvideo avi +video/x-sgi-movie movie +x-conference/x-cooltalk ice +x-world/x-vrml wrl vrml +audio/x-pn-realaudio rmm ram +audio/vnd.rn-realaudio ra +application/smil smi smil +text/vnd.rn-realtext rt +video/vnd.rn-realvideo rv +image/vnd.rn-realflash rf swf +application/x-shockwave-flash2-preview rf swf +application/sdp sdp +application/x-sdp sdp +application/vnd.rn-realmedia rm +image/vnd.rn-realpix rp +application/vnd.oasis.opendocument.text odt +application/vnd.oasis.opendocument.text-template ott +application/vnd.oasis.opendocument.text-web oth +application/vnd.oasis.opendocument.text-master odm +application/vnd.oasis.opendocument.graphics odg +application/vnd.oasis.opendocument.graphics-template otg +application/vnd.oasis.opendocument.presentation odp +application/vnd.oasis.opendocument.presentation-template otp +application/vnd.oasis.opendocument.spreadsheet ods +application/vnd.oasis.opendocument.spreadsheet-template ots +application/vnd.oasis.opendocument.chart odc +application/vnd.oasis.opendocument.formula odf +application/vnd.oasis.opendocument.image odi +application/vnd.sun.xml.writer sxw +application/vnd.sun.xml.writer.template stw +application/vnd.sun.xml.writer.global sxg +application/vnd.stardivision.writer sdw vor +application/vnd.stardivision.writer-global sgl +application/vnd.sun.xml.calc sxc +application/vnd.sun.xml.calc.template stc +application/vnd.stardivision.calc sdc +application/vnd.stardivision.chart sds +application/vnd.sun.xml.impress sxi +application/vnd.sun.xml.impress.template sti +application/vnd.stardivision.impress sdd sdp +application/vnd.sun.xml.draw sxd +application/vnd.sun.xml.draw.template std +application/vnd.stardivision.draw sda +application/vnd.sun.xml.math sxm +application/vnd.stardivision.math smf +application/vnd.sun.xml.base odb diff --git a/solenv/inc/minor.mk b/solenv/inc/minor.mk new file mode 100644 index 000000000000..c4403f37ae39 --- /dev/null +++ b/solenv/inc/minor.mk @@ -0,0 +1,5 @@ +RSCVERSION=350 +RSCREVISION=350m1(Build:0) +BUILD=0 +LAST_MINOR=m1 +SOURCEVERSION=OOO350 diff --git a/solenv/inc/pkg_config.mk b/solenv/inc/pkg_config.mk new file mode 100644 index 000000000000..3654083e76ad --- /dev/null +++ b/solenv/inc/pkg_config.mk @@ -0,0 +1,49 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +.INCLUDE .IGNORE : pkgroot.mk + +.IF "$(PKGCONFIG_ROOT)"!="" +PKG_CONFIG=$(PKGCONFIG_ROOT)/bin/pkg-config +.IF "$(OS)"=="SOLARIS" && "$(CPUNAME)"=="SPARC" && "$(CPU)"=="U" +PKG_CONFIG_PATH:=$(PKGCONFIG_ROOT)/lib/64/pkgconfig +.ELSE +PKG_CONFIG_PATH:=$(PKGCONFIG_ROOT)/lib/pkgconfig +.ENDIF +.EXPORT : PKG_CONFIG_PATH +PKGCONFIG_PREFIX=--define-variable=prefix=$(PKGCONFIG_ROOT) +.ELSE +PKG_CONFIG*=pkg-config +.IF "$(OS)"=="SOLARIS" && "$(CPUNAME)"=="SPARC" && "$(CPU)"=="U" +PKG_CONFIG_PATH=/usr/lib/64/pkgconfig +.EXPORT : PKG_CONFIG_PATH +.ENDIF +.ENDIF + +PKGCONFIG_CFLAGS:=$(shell @$(PKG_CONFIG) $(PKGCONFIG_PREFIX) --cflags $(PKGCONFIG_MODULES)) +PKGCONFIG_LIBS:=$(shell @$(PKG_CONFIG) $(PKGCONFIG_PREFIX) --libs $(PKGCONFIG_MODULES)) +CFLAGS+=$(PKGCONFIG_CFLAGS) diff --git a/solenv/inc/postmac.h b/solenv/inc/postmac.h new file mode 100644 index 000000000000..d6bff0372ad1 --- /dev/null +++ b/solenv/inc/postmac.h @@ -0,0 +1,50 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#undef Button +#undef Byte +#undef Control +#undef Cursor +#undef DirInfo +#undef FontInfo +#undef LSize +#undef Line +#undef MemoryBlock +#undef ModalDialog +#undef Palette +#undef Pattern +#undef Point +#undef Polygon +#undef Ptr +#undef Region +#undef SetCursor +#undef Size +#undef StringPtr +#undef TimeValue + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/solenv/inc/postset.mk b/solenv/inc/postset.mk new file mode 100644 index 000000000000..3d4f4158d08f --- /dev/null +++ b/solenv/inc/postset.mk @@ -0,0 +1,35 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +# Default ISO code used when no languages specified +# This language will be always included! +defaultlangiso=en-US + +# Complete list of all supported localizations (ISO codes) +.INCLUDE : langlist.mk + +alllangiso=$(strip $(defaultlangiso) $(subst,$(defaultlangiso), $(uniq $(subst,ALL,$(completelangiso) $(WITH_LANG))))) diff --git a/solenv/inc/postwin.h b/solenv/inc/postwin.h new file mode 100644 index 000000000000..1ec09435b5cb --- /dev/null +++ b/solenv/inc/postwin.h @@ -0,0 +1,252 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +/* nicht geschuetz, muss als gegenstueck zu prewin.h includet werden */ + +#ifdef WNT +#ifdef __cplusplus +} +#endif +#endif + +#undef Region +#undef PolyPolygon +#undef Polygon +#undef Rectangle +#undef DELETE + +#undef Folder +#undef GradientStyle_RECT + +/* Hilfe-Ids umbenennen */ +#define WIN_HELP_INDEX 0x0003 +#define WIN_HELP_HELPONHELP 0x0004 +#undef HELP_INDEX +#undef HELP_HELPONHELP + +#define WIN_MOUSE_MOVED 0x0001 +#undef MOUSE_MOVED + +#define WIN_WB_LEFT 0 +#define WIN_WB_RIGHT 1 +#undef WB_LEFT +#undef WB_RIGHT + +#ifdef GetObject +#undef GetObject +#ifdef UNICODE +#define WIN_GetObject GetObjectW +#else +#define WIN_GetObject GetObjectA +#endif +#else +#define WIN_GetObject GetObject +#endif + +#ifdef SetPrinter +#undef SetPrinter +#ifdef UNICODE +#define WIN_SetPrinter SetPrinterW +#else +#define WIN_SetPrinter SetPrinterA +#endif +#else +#define WIN_SetPrinter SetPrinter +#endif + +#ifdef GetPrinter +#undef GetPrinter +#ifdef UNICODE +#define WIN_GetPrinter GetPrinterW +#else +#define WIN_GetPrinter GetPrinterA +#endif +#else +#define WIN_GetPrinter GetPrinter +#endif + +#ifdef DrawText +#undef DrawText +#ifdef UNICODE +#define WIN_DrawText DrawTextW +#else +#define WIN_DrawText DrawTextA +#endif +#else +#define WIN_DrawText DrawText +#endif + +#ifdef mciSetCommand +#undef mciSetCommand +#ifdef UNICODE +#define WIN_mciSetCommand mciSetCommandW +#else +#define WIN_mciSetCommand mciSetCommandA +#endif +#else +#define mciSetCommand mciSetCommand +#endif + +#ifdef SetPort +#undef SetPort +#ifdef UNICODE +#define WIN_SetPort SetPortW +#else +#define WIN_SetPort SetPortA +#endif +#else +#define WIN_SetPort SetPort +#endif + +#ifdef CopyFile +#undef CopyFile +#ifdef UNICODE +#define WIN_CopyFile CopyFileW +#else +#define WIN_CopyFile CopyFileA +#endif +#else +#define WIN_CopyFile CopyFile +#endif + + +#ifdef GetUserName +#undef GetUserName +#ifdef UNICODE +#define WIN_GetUserName GetUserNameW +#else +#define WIN_GetUserName GetUserNameA +#endif +#else +#define WIN_GetUserName GetUserName +#endif + +#ifdef GetClassName +#undef GetClassName +#ifdef UNICODE +#define WIN_GetClassName GetClassNameW +#else +#define WIN_GetClassName GetClassNameA +#endif +#else +#define WIN_GetClassName GetClassName +#endif + +#ifdef GetCharWidth +#undef GetCharWidth +#ifdef UNICODE +#define WIN_GetCharWidth GetCharWidthW +#else +#define WIN_GetCharWidth GetCharWidthA +#endif +#else +#define WIN_GetCharWidth GetCharWidth +#endif + +#ifdef GetMetaFile +#undef GetMetaFile +#ifdef UNICODE +#define WIN_GetMetaFile GetMetaFileW +#else +#define WIN_GetMetaFile GetMetaFileA +#endif +#else +#define WIN_GetMetaFile GetMetaFile +#endif + +#ifdef GetNumberFormat +#undef GetNumberFormat +#ifdef UNICODE +#define WIN_GetNumberFormat GetNumberFormatW +#else +#define WIN_GetNumberFormat GetNumberFormatA +#endif +#else +#define WIN_GetNumberFormat GetNumberFormat +#endif + +#ifdef GetGlyphOutline +#undef GetGlyphOutline +#ifdef UNICODE +#define WIN_GetGlyphOutline GetGlyphOutlineW +#else +#define WIN_GetGlyphOutline GetGlyphOutlineA +#endif +#else +#define WIN_GetGlyphOutline GetGlyphOutline +#endif + +#ifdef GetKerningPairs +#undef GetKerningPairs +#ifdef UNICODE +#define WIN_GetKerningPairs GetKerningPairsW +#else +#define WIN_GetKerningPairs GetKerningPairsA +#endif +#else +#define WIN_GetKerningPairs GetKerningPairs +#endif + +#ifdef FindWindow +#undef FindWindow +#ifdef UNICODE +#define WIN_FindWindow FindWindowW +#else +#define WIN_FindWindow FindWindowA +#endif +#else +#define WIN_FindWindow FindWindow +#endif + +// keine Yield-Definition +#undef Yield + +/* new StretchBlt() Modes (simpler names) */ +#ifndef STRETCH_ANDSCANS +#define STRETCH_ANDSCANS 1 +#endif +#ifndef STRETCH_ORSCANS +#define STRETCH_ORSCANS 2 +#endif +#ifndef STRETCH_DELETESCANS +#define STRETCH_DELETESCANS 3 +#endif + +#ifdef WNT +extern "C" +{ +BOOL WINAPI WIN_Rectangle( HDC hDC, int X1, int Y1, int X2, int Y2 ); +BOOL WINAPI WIN_Polygon( HDC hDC, CONST POINT * ppt, int ncnt ); +BOOL WINAPI WIN_PolyPolygon( HDC hDC, CONST POINT * ppt, LPINT npcnt, int ncnt ); +} +#endif + +// svwin.h nicht mehr includen +#define _SVWIN_H + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/solenv/inc/preinclude.h b/solenv/inc/preinclude.h new file mode 100644 index 000000000000..f05dc8399138 --- /dev/null +++ b/solenv/inc/preinclude.h @@ -0,0 +1,41 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ +/* HACK: include certain standard header to enable build on glibc-2.2 systems + * and compile vs. glibc-2.1 header + * + * please add more if necessary + */ +#include <stdlib.h> +#include <stddef.h> +#include <stdio.h> +#include <string.h> +#include <wchar.h> +#include <features.h> +#include <assert.h> + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/solenv/inc/premac.h b/solenv/inc/premac.h new file mode 100644 index 000000000000..f6e37475795f --- /dev/null +++ b/solenv/inc/premac.h @@ -0,0 +1,50 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#define Button MacOSButton +#define Byte MacOSByte +#define Control MacOSControl +#define Cursor MacOSCursor +#define DirInfo MacOSDirInfo +#define FontInfo MacOSFontInfo +#define LSize MacOSLSize +#define Line MacOSLine +#define MemoryBlock MacOSMemoryBlock +#define ModalDialog MacOSModalDialog +#define Palette MacOSPalette +#define Pattern MacOSPattern +#define Point MacOSPoint +#define Polygon MacOSPolygon +#define Ptr MacOSPtr +#define Region MacOSRegion +#define SetCursor MacOSSetCursor +#define Size MacOSSize +#define StringPtr MacOSStringPtr +#define TimeValue MacOSTimeValue + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/solenv/inc/prewin.h b/solenv/inc/prewin.h new file mode 100644 index 000000000000..0eedfe122963 --- /dev/null +++ b/solenv/inc/prewin.h @@ -0,0 +1,74 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +/* nicht geschuetzt, darf nur einmal includet werden */ + +#if defined WNT + +#define Rectangle BLA_Rectangle +#define Polygon BLA_Polygon +#define PolyPolygon BLA_PolyPolygon +#define Region WIN_Region +#define Folder WIN_Folder +#define GradientStyle_RECT WIN_GradientStyle_RECT + +#ifdef __cplusplus +extern "C" { +#endif + +#define STRICT +#ifdef _MSC_VER +#pragma warning(push, 1) +#endif +#include <windows.h> +#ifdef _MSC_VER +#pragma warning(pop) +#endif +#include <shellapi.h> +#include <commdlg.h> +#include <dlgs.h> +#ifdef USE_TOOLHELP +#include <tlhelp32.h> +#endif +#ifdef USE_IMAGEHLP +#include <imagehlp.h> +#endif +#ifdef INCLUDE_MMSYSTEM +#include <mmsystem.h> +#endif +#ifdef _MSC_VER +#pragma warning(push, 1) +#endif +#include <commctrl.h> +#ifdef _MSC_VER +#pragma warning(pop) +#endif + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/solenv/inc/productversion.mk b/solenv/inc/productversion.mk new file mode 100644 index 000000000000..fc5ffcdd5382 --- /dev/null +++ b/solenv/inc/productversion.mk @@ -0,0 +1,32 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +PRODUCTLIST = libreoffice oxygenoffice + +# default values to minimize maintainance effort +PRODUCTVERSION = 3.5 +PRODUCTVERSIONSHORT = 3 diff --git a/solenv/inc/pstrules.mk b/solenv/inc/pstrules.mk new file mode 100644 index 000000000000..1669a2511d7a --- /dev/null +++ b/solenv/inc/pstrules.mk @@ -0,0 +1,156 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +#+++++++++++ second_build rules +++++++++++++++++++++++++++++++++++++ +#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + +.IF "$(SECOND_BUILD)"!="" +.IF "$($(SECOND_BUILD)_OBJFILES)"!="" + +$(OBJ)/$(SECOND_BUILD)_%.obj : %.cxx + @echo "Making: " $@ +.IF "$(GUI)"=="UNX" + @$(RM) $@ $(@:s/.obj/.o/) + $(COMMAND_ECHO)$(CXX) $(CFLAGS) $(INCLUDE) $(CFLAGSCXX) $(CFLAGSCXXOBJ) $(CFLAGSOBJ) $(CDEFS) $($(SECOND_BUILD)CDEFS) $(CDEFSOBJ) $(!eq,$(EXCEPTIONSFILES),$(subst,$@, $(EXCEPTIONSFILES)) $(LOCAL_EXCEPTIONS_FLAGS) $(GLOBAL_EXCEPTIONS_FLAGS)) $(CFLAGSAPPEND) $(CFLAGSOUTOBJ) $(OBJ)/$(SECOND_BUILD)_$*.o $(CFLAGSINCXX)$(PWD)/$*.cxx +.IF "$(OS)"=="SOLARIS" && "$(product)"=="full" && "$(debug)"=="" + $(COMMAND_ECHO)$(ADJUSTVISIBILITY) -p $(@:s/.obj/.o/) +.ENDIF # "$(OS)"=="SOLARIS" && "$(product)"=="full" && "$(debug)"=="" + @$(IFEXIST) $(@:s/.obj/.o/) $(THEN) $(TOUCH) $@ $(FI) +.ELSE + @$(IFEXIST) $@ $(THEN) $(RM:s/+//) $@ >& $(NULLDEV) $(FI) + $(COMMAND_ECHO)$(CXX) $(CFLAGS) $(INCLUDE) $(CFLAGSCXX) $(CFLAGSOBJ) $(CDEFS) $($(SECOND_BUILD)CDEFS) $(CDEFSOBJ) $(!eq,$(EXCEPTIONSFILES),$(subst,$@, $(EXCEPTIONSFILES)) $(LOCAL_EXCEPTIONS_FLAGS) $(GLOBAL_EXCEPTIONS_FLAGS)) $(CFLAGSAPPEND) $(CFLAGSOUTOBJ)$(OBJ)/$(SECOND_BUILD)_$*.obj $(CFLAGSINCXX)$(PWD)/$*.cxx +.ENDIF + +$(OBJ)/$(SECOND_BUILD)_%.obj : %.c + @echo "Making: " $@ +.IF "$(GUI)"=="UNX" +.IF "$(TEST)"!="" + $(COMMAND_ECHO)$(CC) $(CFLAGS) $(INCLUDE_C) $(CFLAGSCC) $(CFLAGSOBJ) $(CDEFS) $($(SECOND_BUILD)CDEFS) $(CDEFSOBJ) -E $(CFLAGSAPPEND) $(CFLAGSOUTOBJ) $(OBJ)/$(SECOND_BUILD)_$*.o $*.c +.ELSE + @$(RM) $@ $(@:s/.obj/.o/) + $(COMMAND_ECHO)$(CC) $(CFLAGS) $(INCLUDE_C) $(CFLAGSCC) $(CFLAGSOBJ) $(CDEFS) $($(SECOND_BUILD)CDEFS) $(CDEFSOBJ) $(CFLAGSAPPEND) $(CFLAGSOUTOBJ) $(OBJ)/$(SECOND_BUILD)_$*.o $*.c +.IF "$(OS)"=="SOLARIS" && "$(product)"=="full" && "$(debug)"=="" + $(COMMAND_ECHO)$(ADJUSTVISIBILITY) -p $(@:s/.obj/.o/) +.ENDIF # "$(OS)"=="SOLARIS" && "$(product)"=="full" && "$(debug)"=="" + @$(IFEXIST) $(@:s/.obj/.o/) $(THEN) $(TOUCH) $@ $(FI) +.ENDIF +.ELSE + @$(TYPE) $(mktmp $(CC) $(CFLAGS) $(INCLUDE_C) $(CFLAGSCC) $(CFLAGSOBJ) $(CDEFS) $($(SECOND_BUILD)CDEFS) $(CDEFSOBJ) $(CFLAGSAPPEND) $(CFLAGSOUTOBJ)$(OBJ)\$(SECOND_BUILD)_$*.obj $*.c ) + @echo. +.IF "$(COM)"=="GCC" + $(COMMAND_ECHO)$(CC) $(CFLAGS) $(INCLUDE_C) $(CFLAGSCC) $(CFLAGSOBJ) $(CDEFS) $($(SECOND_BUILD)CDEFS) $(CDEFSOBJ) $(CFLAGSAPPEND) $(CFLAGSOUTOBJ)$(OBJ)\$(SECOND_BUILD)_$*.obj $*.c +.ELSE + $(COMMAND_ECHO)$(CC) @$(mktmp $(CFLAGS) $(INCLUDE_C) $(CFLAGSCC) $(CFLAGSOBJ) $(CDEFS) $($(SECOND_BUILD)CDEFS) $(CDEFSOBJ) $(CFLAGSAPPEND) $(CFLAGSOUTOBJ)$(OBJ)\$(SECOND_BUILD)_$*.obj $*.c ) +.ENDIF + $(SEMADEBUG) +.ENDIF + +.ENDIF # "$($(SECOND_BUILD)_OBJFILES)"!="" + +.IF "$($(SECOND_BUILD)_SLOFILES)"!="" + +$(SLO)/$(SECOND_BUILD)_%.obj : %.cxx + @echo "Making: " $@ +.IF "$(GUI)"=="UNX" + @$(RM) $@ $(@:s/.obj/.o/) + $(COMMAND_ECHO)$(CXX) $(CFLAGS) $(INCLUDE) $(CFLAGSCXX) $(CFLAGSCXXSLO) $(CFLAGSSLO) $(CDEFS) $($(SECOND_BUILD)CDEFS) $(CDEFSSLO) $(CDEFSMT) $(!eq,$(EXCEPTIONSFILES),$(subst,$@, $(EXCEPTIONSFILES)) $(LOCAL_EXCEPTIONS_FLAGS) $(GLOBAL_EXCEPTIONS_FLAGS)) $(CFLAGSAPPEND) $(CFLAGSOUTOBJ) $(SLO)/$(SECOND_BUILD)_$*.o $(CFLAGSINCXX)$(PWD)/$*.cxx +.IF "$(OS)"=="SOLARIS" && "$(product)"=="full" && "$(debug)"=="" + $(COMMAND_ECHO)$(ADJUSTVISIBILITY) -p $(@:s/.obj/.o/) +.ENDIF # "$(OS)"=="SOLARIS" && "$(product)"=="full" && "$(debug)"=="" + @$(IFEXIST) $(@:s/.obj/.o/) $(THEN) $(TOUCH) $@ $(FI) +.ELSE + @-$(RM) $@ +.IF "$(COM)"=="GCC" + $(COMMAND_ECHO)$(CXX) $(CFLAGS) $(INCLUDE) $(CFLAGSCXX) $(CFLAGSSLO) $(CDEFS) $($(SECOND_BUILD)CDEFS) $(CDEFSSLO) $(CDEFSMT) $(!eq,$(EXCEPTIONSFILES),$(subst,$@, $(EXCEPTIONSFILES)) $(LOCAL_EXCEPTIONS_FLAGS) $(GLOBAL_EXCEPTIONS_FLAGS)) $(CFLAGSAPPEND) $(CFLAGSOUTOBJ)$(SLO)/$(SECOND_BUILD)_$*.obj $(CFLAGSINCXX)$(PWD)/$*.cxx +.ELSE + $(COMMAND_ECHO)$(CXX) @$(mktmp $(CFLAGS) $(INCLUDE) $(CFLAGSCXX) $(CFLAGSSLO) $(CDEFS) $($(SECOND_BUILD)CDEFS) $(CDEFSSLO) $(CDEFSMT) $(!eq,$(EXCEPTIONSFILES),$(subst,$@, $(EXCEPTIONSFILES)) $(LOCAL_EXCEPTIONS_FLAGS) $(GLOBAL_EXCEPTIONS_FLAGS)) $(CFLAGSAPPEND) $(CFLAGSOUTOBJ)$(SLO)/$(SECOND_BUILD)_$*.obj $(CFLAGSINCXX)$(PWD)/$*.cxx ) +.ENDIF +.ENDIF + +$(SLO)/$(SECOND_BUILD)_%.obj : %.c + @echo "Making: " $@ +.IF "$(GUI)"=="UNX" + @$(RM) $@ $(@:s/.obj/.o/) + $(COMMAND_ECHO)$(CC) $(CFLAGS) $(INCLUDE_C) $(CFLAGSCC) $(CFLAGSSLO) $(CDEFS) $($(SECOND_BUILD)CDEFS) $(CDEFSSLO) $(CDEFSMT) $(CFLAGSAPPEND) $(CFLAGSOUTOBJ) $(SLO)/$(SECOND_BUILD)_$*.o $*.c +.IF "$(OS)"=="SOLARIS" && "$(product)"=="full" && "$(debug)"=="" + $(COMMAND_ECHO)$(ADJUSTVISIBILITY) -p $(@:s/.obj/.o/) +.ENDIF # "$(OS)"=="SOLARIS" && "$(product)"=="full" && "$(debug)"=="" + @$(IFEXIST) $(@:s/.obj/.o/) $(THEN) $(TOUCH) $@ $(FI) +.ELSE + @-$(RM) $@ +.IF "$(COM)"=="GCC" + $(COMMAND_ECHO)$(CC) $(CFLAGS) $(INCLUDE_C) $(CFLAGSCC) $(CFLAGSSLO) $(CDEFS) $($(SECOND_BUILD)CDEFS) $(CDEFSSLO) $(CDEFSMT) $(CFLAGSAPPEND) $(CFLAGSOUTOBJ)$(SLO)/$(SECOND_BUILD)_$*.obj $*.c +.ELSE + $(COMMAND_ECHO)$(TYPE) $(mktmp $(CFLAGS) $(INCLUDE_C) $(CFLAGSCC) $(CFLAGSSLO) $(CDEFS) $($(SECOND_BUILD)CDEFS) $(CDEFSSLO) $(CDEFSMT) $(CFLAGSAPPEND) $(CFLAGSOUTOBJ)$(SLO)/$(SECOND_BUILD)_$*.obj $*.c ) + $(COMMAND_ECHO)$(CC) @$(mktmp $(CFLAGS) $(INCLUDE_C) $(CFLAGSCC) $(CFLAGSSLO) $(CDEFS) $($(SECOND_BUILD)CDEFS) $(CDEFSSLO) $(CDEFSMT) $(CFLAGSAPPEND) $(CFLAGSOUTOBJ)$(SLO)/$(SECOND_BUILD)_$*.obj $*.c ) +.ENDIF +.ENDIF + +.ENDIF # "$($(SECOND_BUILD)_SLOFILES)"!="" +.ENDIF # "$(SECOND_BUILD)"!="" + +#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +#+++++++++++ srcipting rules ++++++++++++++++++++++++++++++++++++++++ +#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + +.IF "$(PARFILES)"!="" +ULFPARFILES=$(foreach,i,$(ULFFILES) $(foreach,j,$(SCP_PRODUCT_TYPE) $(PAR)/$j/$(i:b).par)) +MOREPARFILES=$(foreach,i,$(PARFILES) $(foreach,j,$(SCP_PRODUCT_TYPE) $(PAR)/$j/$i )) +ALLPARFILES=$(uniq $(ULFPARFILES) $(MOREPARFILES)) + +SCP_PRODUCT_TYPE*=FAT + +.IF "$(GUI)" == "WNT" +LANGFILEEXT=mlf +.ELSE +LANGFILEEXT=jlf +.ENDIF + +$(PAR)/%.par : + @echo "Making: " $@ + @@-$(MKDIR) $(MISC)/{$(subst,$(@:d:d:d), $(@:d:d))} +.IF "$(GUI)"=="WNT" +.IF "$(CROSS_COMPILING)" == "NO" + $(COMMAND_ECHO)$(CPPLCC) -+ -P $(INCLUDE) $(CDEFS) $(SCPDEFS) -DDLLPOSTFIX=$(DLLPOSTFIX) $(*:b).scp > $(MISC)/{$(subst,$(@:d:d:d), $(@:d:d))}/$(*:b).pre +.ELSE + $(COMMAND_ECHO)$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/cpp.lcc -+ -P $(CDEFS) $(SCPDEFS) -DDLLPOSTFIX=$(DLLPOSTFIX) -I. -I$(INC) -I$(INCLOCAL) -I#$(INCGUI) -I$(INCCOM) $(SOLARINC) $(*:b).scp > $(MISC)/{$(subst,$(@:d:d:d), $(@:d:d))}/$(*:b).pre +.ENDIF +.ENDIF +# YD: INCLUDE macro too long, include only few items (scp2 compile) +.IF "$(GUI)"=="UNX" + $(COMMAND_ECHO)$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/cpp.lcc -+ -P $(CDEFS) $(SCPDEFS) -DDLLPOSTFIX=$(DLLPOSTFIX) -I. -I$(INC) -I$(INCLOCAL) -I$(INCGUI) -I$(INCCOM) $(SOLARINC) $(*:b).scp > $(MISC)/{$(subst,$(@:d:d:d), $(@:d:d))}/$(*:b).pre +.ENDIF +.IF "$(common_build_srs)"!="" + $(COMMAND_ECHO)$(SCPCOMP) -l {$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(MISC))/$(TARGET)/$(@:b).$(LANGFILEEXT)} -s $(MISC)/{$(subst,$(@:d:d:d), $(@:d:d))}/$(*:b).pre -o $@ +.ELSE # "$(common_build_srs)"!="" + $(COMMAND_ECHO)$(SCPCOMP) -l {$(MISC)/$(TARGET)/$(@:b).$(LANGFILEEXT)} -s $(MISC)/{$(subst,$(@:d:d:d), $(@:d:d))}/$(*:b).pre -o $@ +.ENDIF # "$(common_build_srs)"!="" +# hacked version +# $(COMMAND_ECHO)$(SCPCOMP) -l $(@:b).$(LANGFILEEXT) -s $(MISC)/{$(subst,$(@:d:d:d), $(@:d:d))}/$(*:b).pre -o $@ + +.ENDIF # "$(PARFILES)"!="" diff --git a/solenv/inc/rules.mk b/solenv/inc/rules.mk new file mode 100644 index 000000000000..ca816d8e664b --- /dev/null +++ b/solenv/inc/rules.mk @@ -0,0 +1,799 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +MKFILENAME:=RULES.MK + +$(OBJ)/%.obj : %.cxx + @echo $(COMPILE_ECHO_SWITCH) Compiling: $(PRJNAME)/$(PATH_IN_MODULE)/$(COMPILE_ECHO_FILE) +.IF "$(GUI)"=="UNX" + @$(RM) $@ $(@:s/.obj/.o/) + $(COMMAND_ECHO)$(CXX) $(CFLAGS) $(INCLUDE) $(CFLAGSCXX) $(CFLAGSCXXOBJ) $(CFLAGSOBJ) $(CDEFS) $(CDEFSOBJ) $(!eq,$(EXCEPTIONSFILES),$(subst,$@, $(EXCEPTIONSFILES)) $(LOCAL_EXCEPTIONS_FLAGS) $(GLOBAL_EXCEPTIONS_FLAGS)) $(CFLAGSAPPEND) $(CFLAGSOUTOBJ) $(OBJ)/$*.o $(CFLAGSINCXX)$(PWD)/$*.cxx +.IF "$(OS)"=="SOLARIS" && "$(product)"=="full" && "$(debug)"=="" +.IF "$(noadjust)"=="" + $(COMMAND_ECHO)$(ADJUSTVISIBILITY) -p $(@:s/.obj/.o/) +.ENDIF # "$(noadjust)"=="" +.ENDIF # "$(OS)"=="SOLARIS" && "$(product)"=="full" && "$(debug)"=="" + @$(IFEXIST) $(@:s/.obj/.o/) $(THEN) $(TOUCH) $@ $(FI) +.ELSE + @@-$(RM) $@ +.IF "$(COM)"=="GCC" + $(COMMAND_ECHO)$(CXX) $(CFLAGS) $(INCLUDE) $(CFLAGSCXX) $(CFLAGSOBJ) $(CDEFS) $(CDEFSOBJ) $(!eq,$(EXCEPTIONSFILES),$(subst,$@, $(EXCEPTIONSFILES)) $(LOCAL_EXCEPTIONS_FLAGS) $(GLOBAL_EXCEPTIONS_FLAGS)) $(CFLAGSAPPEND) $(CFLAGSOUTOBJ)$(OBJ)/$*.obj $(CFLAGSINCXX)$(PWD)/$*.cxx +.ELSE + $(COMMAND_ECHO)$(CXX) $(CFLAGS) $(INCLUDE) $(CFLAGSCXX) $(CFLAGSOBJ) $(CDEFS) $(CDEFSOBJ) $(!eq,$(EXCEPTIONSFILES),$(subst,$@, $(EXCEPTIONSFILES)) $(LOCAL_EXCEPTIONS_FLAGS) $(GLOBAL_EXCEPTIONS_FLAGS)) $(CFLAGSAPPEND) $(CFLAGSOUTOBJ)$(OBJ)/$*.obj $(CFLAGSINCXX)$(PWD)/$*.cxx +.ENDIF +.ENDIF +.IF "$(nodep)"=="" + $(COMMAND_ECHO)$(MAKEDEPEND) @$(mktmp -f - -p$(OBJ) $(MKDEPFLAGS) $(CDEFS) $(CDEFSOBJ) $(CDEFSMT) $< ) > $(MISC)/o_$(@:f:s/.obj/.dpcc/) + @noop $(assign DEPS_MADE+:=o_$(@:f:s/.obj/.dpcc/)) +.ENDIF # "$(nodep)"=="" + +$(OBJ)/%.obj : %.cpp + @echo $(COMPILE_ECHO_SWITCH) Compiling: $(PRJNAME)/$(PATH_IN_MODULE)/$(COMPILE_ECHO_FILE) +.IF "$(GUI)"=="UNX" + @$(RM) $@ $(@:s/.obj/.o/) + $(COMMAND_ECHO)$(CXX) $(CFLAGS) $(INCLUDE) $(CFLAGSCXX) $(CFLAGSCXXOBJ) $(CFLAGSOBJ) $(CDEFS) $(CDEFSOBJ) $(!eq,$(EXCEPTIONSFILES),$(subst,$@, $(EXCEPTIONSFILES)) $(LOCAL_EXCEPTIONS_FLAGS) $(GLOBAL_EXCEPTIONS_FLAGS)) $(CFLAGSAPPEND) $(CFLAGSOUTOBJ) $(OBJ)/$*.o $(CFLAGSINCXX)$(PWD)/$*.cpp +.IF "$(OS)"=="SOLARIS" && "$(product)"=="full" && "$(debug)"=="" + $(COMMAND_ECHO)$(ADJUSTVISIBILITY) -p $(@:s/.obj/.o/) +.ENDIF # "$(OS)"=="SOLARIS" && "$(product)"=="full" && "$(debug)"=="" + @$(IFEXIST) $(@:s/.obj/.o/) $(THEN) $(TOUCH) $@ $(FI) +.ELSE + @@-$(RM) $@ +.IF "$(COM)"=="GCC" + $(COMMAND_ECHO)$(CXX) $(CFLAGS) $(INCLUDE) $(CFLAGSCXX) $(CFLAGSOBJ) $(CDEFS) $(CDEFSOBJ) $(!eq,$(EXCEPTIONSFILES),$(subst,$@, $(EXCEPTIONSFILES)) $(LOCAL_EXCEPTIONS_FLAGS) $(GLOBAL_EXCEPTIONS_FLAGS)) $(CFLAGSAPPEND) $(CFLAGSOUTOBJ)$(OBJ)/$*.obj $(CFLAGSINCXX)$(PWD)/$*.cpp +.ELSE + $(COMMAND_ECHO)$(CXX) $(CFLAGS) $(INCLUDE) $(CFLAGSCXX) $(CFLAGSOBJ) $(CDEFS) $(CDEFSOBJ) $(!eq,$(EXCEPTIONSFILES),$(subst,$@, $(EXCEPTIONSFILES)) $(LOCAL_EXCEPTIONS_FLAGS) $(GLOBAL_EXCEPTIONS_FLAGS)) $(CFLAGSAPPEND) $(CFLAGSOUTOBJ)$(OBJ)/$*.obj $(CFLAGSINCXX)$(PWD)/$*.cpp +.ENDIF +.ENDIF +.IF "$(nodep)"=="" + $(COMMAND_ECHO)$(MAKEDEPEND) @$(mktmp -f - -p$(OBJ) $(MKDEPFLAGS) $(CDEFS) $(CDEFSOBJ) $(CDEFSMT) $< ) > $(MISC)/o_$(@:f:s/.obj/.dpcc/) + @noop $(assign DEPS_MADE+:=o_$(@:f:s/.obj/.dpcc/)) +.ENDIF # "$(nodep)"=="" + +$(OBJ)/%.obj : %.cc + @echo $(COMPILE_ECHO_SWITCH) Compiling: $(PRJNAME)/$(PATH_IN_MODULE)/$(COMPILE_ECHO_FILE) +.IF "$(GUI)"=="UNX" + @$(RM) $@ $(@:s/.obj/.o/) + $(COMMAND_ECHO)$(CXX) $(CFLAGS) $(INCLUDE) $(CFLAGSCXX) $(CFLAGSCXXOBJ) $(CFLAGSOBJ) $(CDEFS) $(CDEFSOBJ) $(!eq,$(EXCEPTIONSFILES),$(subst,$@, $(EXCEPTIONSFILES)) $(LOCAL_EXCEPTIONS_FLAGS) $(GLOBAL_EXCEPTIONS_FLAGS)) $(CFLAGSAPPEND) $(CFLAGSOUTOBJ) $(OBJ)/$*.o $(CFLAGSINCXX)$(PWD)/$*.cc +.IF "$(OS)"=="SOLARIS" && "$(product)"=="full" && "$(debug)"=="" + $(COMMAND_ECHO)$(ADJUSTVISIBILITY) -p $(@:s/.obj/.o/) +.ENDIF # "$(OS)"=="SOLARIS" && "$(product)"=="full" && "$(debug)"=="" + @+$(IFEXIST) $(@:s/.obj/.o/) $(THEN) $(TOUCH) $@ $(FI) +.ELSE + @@$(RM) $@ +.IF "$(COM)"=="GCC" + $(COMMAND_ECHO)$(CXX) $(CFLAGS) $(INCLUDE) $(CFLAGSCXX) $(CFLAGSOBJ) $(CDEFS) $(CDEFSOBJ) $(!eq,$(EXCEPTIONSFILES),$(subst,$@, $(EXCEPTIONSFILES)) $(LOCAL_EXCEPTIONS_FLAGS) $(GLOBAL_EXCEPTIONS_FLAGS)) $(CFLAGSAPPEND) $(CFLAGSOUTOBJ)$(OBJ)/$*.obj $(CFLAGSINCXX)$(PWD)/$*.cc +.ELSE + $(COMMAND_ECHO)$(CXX) @$(mktmp $(CFLAGS) $(INCLUDE) $(CFLAGSCXX) $(CFLAGSOBJ) $(CDEFS) $(CDEFSOBJ) $(!eq,$(EXCEPTIONSFILES),$(subst,$@, $(EXCEPTIONSFILES)) $(LOCAL_EXCEPTIONS_FLAGS) $(GLOBAL_EXCEPTIONS_FLAGS)) $(CFLAGSAPPEND) $(CFLAGSOUTOBJ)$(OBJ)/$*.obj $(CFLAGSINCXX)$(PWD)/$*.cc ) +.ENDIF +.ENDIF + +.IF "$(ENABLE_PCH)"!="" +# workaround for file locking problems on network volumes +.IF "$(NETWORK_BUILD)"=="" +PCHOUTDIR=$(SLO)/pch +PCHEXOUTDIR=$(SLO)/pch_ex +.ELSE # "$(NETWORK_BUILD)"=="" +PCHOUTDIR=$(TMP)/$(BUILD)$(PRJNAME)$(PROEXT) +PCHEXOUTDIR=$(TMP)/$(BUILD)$(PRJNAME)_ex$(PROEXT) +.ENDIF # "$(NETWORK_BUILD)"=="" +$(SLO)/precompiled.% .PHONY: + -$(MKDIRHIER) $(SLO)/pch +.IF "$(COM)"=="MSC" +.IF "$(NETWORK_BUILD)"!="" + -$(MKDIRHIER) $(PCHOUTDIR) +.IF "$(HAVE_BIG_TMP)"=="" + $(COMMAND_ECHO)-$(COPY) $(SLO)/pch/precompiled_$(PRJNAME).hxx$(PCHPOST) $(PCHOUTDIR)/precompiled_$(PRJNAME).hxx$(PCHPOST) +.ENDIF # "$(HAVE_BIG_TMP)"=="" +.ENDIF # "$(NETWORK_BUILD)"!="" + $(COMMAND_ECHO)$(CXX) @$(mktmp -Fp$(PCHOUTDIR)/precompiled_$(PRJNAME).hxx$(PCHPOST) $(CFLAGS_CREATE_PCH) $(CFLAGS) $(INCLUDE) $(CFLAGSCXX) $(CFLAGSCXXSLO) $(CFLAGSSLO) $(CDEFS) $(CDEFSSLO) $(CDEFSMT) $(CFLAGS_NO_EXCEPTIONS) -DEXCEPTIONS_OFF $(CFLAGSAPPEND) $(INCPCH)/precompiled_$(PRJNAME).cxx) +.IF "$(NETWORK_BUILD)"!="" + $(COMMAND_ECHO)$(COPY) $(PCHOUTDIR)/precompiled_$(PRJNAME).hxx$(PCHPOST) $(SLO)/pch/precompiled_$(PRJNAME).hxx$(PCHPOST) +.IF "$(HAVE_BIG_TMP)"=="" + $(COMMAND_ECHO)$(RM) $(PCHOUTDIR)/precompiled_$(PRJNAME).hxx$(PCHPOST) + $(COMMAND_ECHO)$(RMDIR) $(PCHOUTDIR) +.ENDIF # "$(HAVE_BIG_TMP)"=="" +.ENDIF # "$(NETWORK_BUILD)"!="" +.ELIF "$(COM)"=="GCC" && "$(CCNUMVER)">="000300040000" + $(COMMAND_ECHO)$(CXX) -o$(SLO)/pch/precompiled_$(PRJNAME).hxx$(PCHPOST) $(CFLAGS_CREATE_PCH) $(CFLAGS) $(INCLUDE) $(CFLAGSCXX) $(CFLAGSCXXSLO) $(CFLAGSSLO) $(CDEFS) $(CDEFSSLO) $(CDEFSMT) $(CFLAGS_NO_EXCEPTIONS) -DEXCEPTIONS_OFF $(CFLAGSAPPEND) $(INCPCH)/precompiled_$(PRJNAME).hxx + @echo "#error Tried to use wrong precompiled header" > $(SLO)/pch/precompiled_$(PRJNAME).hxx +.ELSE # "$(COM)"=="MSC" + @$(TOUCH) $(SLO)/pch/precompiled_$(PRJNAME).hxx$(PCHPOST) +.ENDIF # "$(COM)"=="MSC" + @echo USED_PCHFLAGS=$(CFLAGS)$(CFLAGSCXX)$(CFLAGSCXXSLO)$(CFLAGSSLO)$(CDEFS)$(CDEFSSLO)$(CDEFSMT)$(CFLAGS_NO_EXCEPTIONS) -DEXCEPTIONS_OFF$(CFLAGSAPPEND)> $(INCCOM)/pch.mk + +$(SLO)/precompiled_ex.% .PHONY: + -$(MKDIRHIER) $(SLO)/pch_ex +.IF "$(COM)"=="MSC" +.IF "$(NETWORK_BUILD)"!="" + -$(MKDIRHIER) $(PCHEXOUTDIR) +.IF "$(HAVE_BIG_TMP)"=="" + $(COMMAND_ECHO)-$(COPY) $(SLO)/pch_ex/precompiled_$(PRJNAME).hxx$(PCHPOST) $(PCHEXOUTDIR)/precompiled_$(PRJNAME).hxx$(PCHPOST) +.ENDIF # "$(HAVE_BIG_TMP)"=="" +.ENDIF # "$(NETWORK_BUILD)"!="" + $(COMMAND_ECHO)$(CXX) @$(mktmp -Fp$(PCHEXOUTDIR)/precompiled_$(PRJNAME).hxx$(PCHPOST) $(CFLAGS_CREATE_PCH:s/pchname/pchname_ex/) $(CFLAGS) $(INCLUDE) $(CFLAGSCXX) $(CFLAGSCXXSLO) $(CFLAGSSLO) $(CDEFS) $(CDEFSSLO) $(CDEFSMT) $(CFLAGSEXCEPTIONS) -DEXCEPTIONS_ON $(CFLAGSAPPEND) $(INCPCH)/precompiled_$(PRJNAME).cxx) +.IF "$(NETWORK_BUILD)"!="" + $(COMMAND_ECHO)$(COPY) $(PCHEXOUTDIR)/precompiled_$(PRJNAME).hxx$(PCHPOST) $(SLO)/pch_ex/precompiled_$(PRJNAME).hxx$(PCHPOST) +.IF "$(HAVE_BIG_TMP)"=="" + $(COMMAND_ECHO)$(RM) $(PCHEXOUTDIR)/precompiled_$(PRJNAME).hxx$(PCHPOST) + $(COMMAND_ECHO)$(RMDIR) $(PCHEXOUTDIR) +.ENDIF # "$(HAVE_BIG_TMP)"=="" +.ENDIF # "$(NETWORK_BUILD)"!="" +.ELIF "$(COM)"=="GCC" && "$(CCNUMVER)">="000300040000" + $(COMMAND_ECHO)$(CXX) -o$(SLO)/pch_ex/precompiled_$(PRJNAME).hxx$(PCHPOST) $(CFLAGS_CREATE_PCH) $(CFLAGS) $(INCLUDE) $(CFLAGSCXX) $(CFLAGSCXXSLO) $(CFLAGSSLO) $(CDEFS) $(CDEFSSLO) $(CDEFSMT) $(CFLAGSEXCEPTIONS) -DEXCEPTIONS_ON $(CFLAGSAPPEND) $(INCPCH)/precompiled_$(PRJNAME).hxx + @echo "#error Tried to use wrong precompiled header" > $(SLO)/pch_ex/precompiled_$(PRJNAME).hxx +.ELSE # "$(COM)"=="MSC" + @$(TOUCH) $(SLO)/pch_ex/precompiled_$(PRJNAME).hxx$(PCHPOST) +.ENDIF # "$(COM)"=="MSC" + @echo USED_EXCEPTIONS_PCHFLAGS=$(subst,$(CFLAGSDEBUG), $(CFLAGS))$(CFLAGSCXX)$(CFLAGSCXXSLO)$(CFLAGSSLO)$(CDEFS)$(CDEFSSLO)$(CDEFSMT)$(CFLAGSEXCEPTIONS) -DEXCEPTIONS_ON$(CFLAGSAPPEND)> $(INCCOM)/pch_ex.mk + +.INCLUDE .IGNORE : $(INCCOM)/pch.mk +.INCLUDE .IGNORE : $(INCCOM)/pch_ex.mk +.ENDIF # "$(ENABLE_PCH)"!="" + +$(SLO)/%.obj : %.cxx + @echo $(COMPILE_ECHO_SWITCH) Compiling: $(PRJNAME)/$(PATH_IN_MODULE)/$(COMPILE_ECHO_FILE) +.IF "$(ENABLE_PCH)"!="" +# just a helper var + @noop $(assign used_exc_switches=$(!eq,$(EXCEPTIONSFILES),$(subst,$@, $(EXCEPTIONSFILES)) $(LOCAL_EXCEPTIONS_FLAGS) $(GLOBAL_EXCEPTIONS_FLAGS))) +# cleanup first + @noop $(assign ACT_PCH_SWITCHES:=$(NULL)) +# eq: first string is a copy of the compile line, +# second generated by pch creation +# use pch with exception support + @noop $(assign ACT_PCH_SWITCHES+=$(eq,$(strip $(USED_EXCEPTIONS_PCHFLAGS)),$(strip $(subst,$(CFLAGSDEBUG), $(CFLAGS))$(CFLAGSCXX)$(CFLAGSCXXSLO)$(CFLAGSSLO)$(CDEFS:s/\//)$(CDEFSSLO)$(CDEFSMT)$(used_exc_switches)$(CFLAGSAPPEND)) $(CFLAGS_USE_EXCEPTIONS_PCH) $(NULL))) +# use pch without exception support + @noop $(assign ACT_PCH_SWITCHES+=$(eq,$(strip $(USED_PCHFLAGS)),$(strip $(subst,$(CFLAGSDEBUG), $(CFLAGS))$(CFLAGSCXX)$(CFLAGSCXXSLO)$(CFLAGSSLO)$(CDEFS:s/\//)$(CDEFSSLO)$(CDEFSMT)$(used_exc_switches)$(CFLAGSAPPEND)) $(CFLAGS_USE_PCH) $(NULL))) +.ENDIF # "$(ENABLE_PCH)"!="" +.IF "$(GUI)"=="UNX" +.IF "$(TEST)"!="" + $(COMMAND_ECHO)$(CXX) $(CFLAGS) $(INCLUDE) $(CFLAGSCXX) $(CFLAGSCXXSLO) $(CFLAGSSLO) $(CDEFS) $(CDEFSSLO) $(CDEFSMT) -E $(CFLAGSINCXX)$(PWD)/$*.cxx +.ELSE + @$(RM) $@ $(@:s/.obj/.o/) + $(COMMAND_ECHO)$(CAPTURE_COMMAND) $(CXX) $(ACT_PCH_SWITCHES) $(CFLAGS) $(INCLUDE) $(CFLAGSCXX) $(CFLAGSCXXSLO) $(CFLAGSSLO) $(CDEFS) $(CDEFSSLO) $(CDEFSMT) $(!eq,$(EXCEPTIONSFILES),$(subst,$@, $(EXCEPTIONSFILES)) $(LOCAL_EXCEPTIONS_FLAGS) $(GLOBAL_EXCEPTIONS_FLAGS)) $(CFLAGSAPPEND) $(CFLAGSOUTOBJ) $(SLO)/$*.o $(CFLAGSINCXX)$(PWD)/$*.cxx $(CAPTURE_OUTPUT) +.IF "$(OS)"=="SOLARIS" && "$(product)"=="full" && "$(debug)"=="" && "$(CAPTURE_COMMAND)"=="" + $(COMMAND_ECHO)$(ADJUSTVISIBILITY) -p $(@:s/.obj/.o/) +.ENDIF # "$(OS)"=="SOLARIS" && "$(product)"=="full" && "$(debug)"=="" + @$(IFEXIST) $(@:s/.obj/.o/) $(THEN) $(TOUCH) $@ $(FI) +.ENDIF +.ELSE # "$(GUI)"=="UNX" + @@-$(RM) $@ +.IF "$(COM)"=="GCC" + $(COMMAND_ECHO)$(CAPTURE_COMMAND) $(CXX) $(ACT_PCH_SWITCHES) $(CFLAGS) $(INCLUDE) $(CFLAGSCXX) $(CFLAGSSLO) $(CDEFS) $(CDEFSSLO) $(CDEFSMT) $(!eq,$(EXCEPTIONSFILES),$(subst,$@, $(EXCEPTIONSFILES)) $(LOCAL_EXCEPTIONS_FLAGS) $(GLOBAL_EXCEPTIONS_FLAGS)) $(CFLAGSAPPEND) $(CFLAGSOUTOBJ)$(SLO)/$*.obj $(CFLAGSINCXX)$(PWD)/$*.cxx $(CAPTURE_OUTPUT) +.ELSE + $(COMMAND_ECHO)$(CAPTURE_COMMAND) $(CXX) $(ACT_PCH_SWITCHES) $(CFLAGS) $(INCLUDE) $(CFLAGSCXX) $(CFLAGSSLO) $(CDEFS) $(CDEFSSLO) $(CDEFSMT) $(!eq,$(EXCEPTIONSFILES),$(subst,$@, $(EXCEPTIONSFILES)) $(LOCAL_EXCEPTIONS_FLAGS) $(GLOBAL_EXCEPTIONS_FLAGS)) $(CFLAGSAPPEND) $(CFLAGSOUTOBJ)$(SLO)/$*.obj $(CFLAGSINCXX)$(PWD)/$*.cxx $(CAPTURE_OUTPUT) +.ENDIF # "$(COM)"=="GCC" +.ENDIF # "$(GUI)"=="UNX" +.IF "$(nodep)"=="" +# fixme: write to file + $(COMMAND_ECHO)$(MAKEDEPEND) @$(mktmp -f - -p$(SLO) $(MKDEPFLAGS) $(CDEFS) $(CDEFSSLO) $(CDEFSMT) $< ) > $(MISC)/s_$(@:f:s/.obj/.dpcc/) + @noop $(assign DEPS_MADE+:=s_$(@:f:s/.obj/.dpcc/)) +.ENDIF # "$(nodep)"=="" + +$(SLO)/%.obj : %.cpp + @echo $(COMPILE_ECHO_SWITCH) Compiling: $(PRJNAME)/$(PATH_IN_MODULE)/$(COMPILE_ECHO_FILE) +.IF "$(GUI)"=="UNX" +.IF "$(TEST)"!="" + $(COMMAND_ECHO)$(CXX) $(CFLAGS) $(INCLUDE) $(CFLAGSCXX) $(CFLAGSCXXSLO) $(CFLAGSSLO) $(CDEFS) $(CDEFSSLO) $(CDEFSMT) $(!eq,$(EXCEPTIONSFILES),$(subst,$@, $(EXCEPTIONSFILES)) $(LOCAL_EXCEPTIONS_FLAGS) $(GLOBAL_EXCEPTIONS_FLAGS)) -E $(CFLAGSINCXX)$(PWD)/$*.cpp +.ELSE + @$(RM) $@ $(@:s/.obj/.o/) + $(COMMAND_ECHO)$(CXX) $(CFLAGS) $(INCLUDE) $(CFLAGSCXX) $(CFLAGSCXXSLO) $(CFLAGSSLO) $(CDEFS) $(CDEFSSLO) $(CDEFSMT) $(!eq,$(EXCEPTIONSFILES),$(subst,$@, $(EXCEPTIONSFILES)) $(LOCAL_EXCEPTIONS_FLAGS) $(GLOBAL_EXCEPTIONS_FLAGS)) $(CFLAGSAPPEND) $(CFLAGSOUTOBJ) $(SLO)/$*.o $(CFLAGSINCXX)$(PWD)/$*.cpp +.IF "$(OS)"=="SOLARIS" && "$(product)"=="full" && "$(debug)"=="" + $(COMMAND_ECHO)$(ADJUSTVISIBILITY) -p $(@:s/.obj/.o/) +.ENDIF # "$(OS)"=="SOLARIS" && "$(product)"=="full" && "$(debug)"=="" + @$(IFEXIST) $(@:s/.obj/.o/) $(THEN) $(TOUCH) $@ $(FI) +.ENDIF +.ELSE + @@-$(RM) $@ +.IF "$(COM)"=="GCC" + $(COMMAND_ECHO)$(CXX) $(CFLAGS) $(INCLUDE) $(CFLAGSCXX) $(CFLAGSSLO) $(CDEFS) $(CDEFSSLO) $(CDEFSMT) $(!eq,$(EXCEPTIONSFILES),$(subst,$@, $(EXCEPTIONSFILES)) $(LOCAL_EXCEPTIONS_FLAGS) $(GLOBAL_EXCEPTIONS_FLAGS)) $(CFLAGSAPPEND) $(CFLAGSOUTOBJ)$(SLO)/$*.obj $(CFLAGSINCXX)$(PWD)/$*.cpp +.ELSE + $(COMMAND_ECHO)$(CXX) $(CFLAGS) $(INCLUDE) $(CFLAGSCXX) $(CFLAGSSLO) $(CDEFS) $(CDEFSSLO) $(CDEFSMT) $(!eq,$(EXCEPTIONSFILES),$(subst,$@, $(EXCEPTIONSFILES)) $(LOCAL_EXCEPTIONS_FLAGS) $(GLOBAL_EXCEPTIONS_FLAGS)) $(CFLAGSAPPEND) $(CFLAGSOUTOBJ)$(SLO)/$*.obj $(CFLAGSINCXX)$(PWD)/$*.cpp +.ENDIF +.ENDIF +.IF "$(nodep)"=="" + $(COMMAND_ECHO)$(MAKEDEPEND) @$(mktmp -f - -p$(SLO) $(MKDEPFLAGS) $(CDEFS) $(CDEFSSLO) $(CDEFSMT) $< ) > $(MISC)/s_$(@:f:s/.obj/.dpcc/) + @noop $(assign DEPS_MADE+:=s_$(@:f:s/.obj/.dpcc/)) +.ENDIF # "$(nodep)"=="" + +$(SLO)/%.obj : $(MISC)/%.cxx + @echo $(COMPILE_ECHO_SWITCH) Compiling: $(PRJNAME)/$(INPATH)/misc/$(COMPILE_ECHO_FILE) +.IF "$(GUI)"=="UNX" +.IF "$(TEST)"!="" + $(COMMAND_ECHO)$(CXX) $(CFLAGS) $(INCLUDE) $(CFLAGSCXX) $(CFLAGSCXXSLO) $(CFLAGSSLO) $(CDEFS) $(CDEFSSLO) $(CDEFSMT) $(!eq,$(EXCEPTIONSFILES),$(subst,$@, $(EXCEPTIONSFILES)) $(LOCAL_EXCEPTIONS_FLAGS) $(GLOBAL_EXCEPTIONS_FLAGS)) -E $(CFLAGSINCXX)$(MISC)/$*.cxx +.ELSE + @$(RM) $@ $(@:s/.obj/.o/) + $(COMMAND_ECHO)$(CXX) $(CFLAGS) $(INCLUDE) $(CFLAGSCXX) $(CFLAGSCXXSLO) $(CFLAGSSLO) $(CDEFS) $(CDEFSSLO) $(CDEFSMT) $(!eq,$(EXCEPTIONSFILES),$(subst,$@, $(EXCEPTIONSFILES)) $(LOCAL_EXCEPTIONS_FLAGS) $(GLOBAL_EXCEPTIONS_FLAGS)) $(CFLAGSAPPEND) $(CFLAGSOUTOBJ) $(SLO)/$*.o $(CFLAGSINCXX)$(MISC)/$*.cxx +.IF "$(OS)"=="SOLARIS" && "$(product)"=="full" && "$(debug)"=="" + $(COMMAND_ECHO)$(ADJUSTVISIBILITY) -p $(@:s/.obj/.o/) +.ENDIF # "$(OS)"=="SOLARIS" && "$(product)"=="full" && "$(debug)"=="" + @$(IFEXIST) $(@:s/.obj/.o/) $(THEN) $(TOUCH) $@ $(FI) +.ENDIF +.ELSE +.IF "$(COM)"=="GCC" + $(COMMAND_ECHO)$(CXX) $(CFLAGS) $(INCLUDE) $(CFLAGSCXX) $(CFLAGSSLO) $(CDEFS) $(CDEFSSLO) $(CDEFSMT) $(!eq,$(EXCEPTIONSFILES),$(subst,$@, $(EXCEPTIONSFILES)) $(LOCAL_EXCEPTIONS_FLAGS) $(GLOBAL_EXCEPTIONS_FLAGS)) $(CFLAGSAPPEND) $(CFLAGSOUTOBJ)$(SLO)/$*.obj $(CFLAGSINCXX)$(MISC)/$*.cxx +.ELSE + $(COMMAND_ECHO)$(CXX) $(CFLAGS) $(INCLUDE) $(CFLAGSCXX) $(CFLAGSSLO) $(CDEFS) $(CDEFSSLO) $(CDEFSMT) $(!eq,$(EXCEPTIONSFILES),$(subst,$@, $(EXCEPTIONSFILES)) $(LOCAL_EXCEPTIONS_FLAGS) $(GLOBAL_EXCEPTIONS_FLAGS)) $(CFLAGSAPPEND) $(CFLAGSOUTOBJ)$(SLO)/$*.obj $(CFLAGSINCXX)$(MISC)/$*.cxx +.ENDIF +.ENDIF +.IF "$(nodep)"=="" + $(COMMAND_ECHO)$(MAKEDEPEND) @$(mktmp -f - -p$(SLO) $(MKDEPFLAGS) $(CDEFS) $(CDEFSSLO) $(CDEFSMT) $@ ) > $(MISC)/s_$(@:f:s/.obj/.dpcc/) + @noop $(assign DEPS_MADE+:=s_$(@:f:s/.obj/.dpcc/)) +.ENDIF # "$(nodep)"=="" + +$(SLO)/%.obj : $(MISC)/%.cc + @echo $(COMPILE_ECHO_SWITCH) Compiling: $(PRJNAME)/$(INPATH)/misc/$(COMPILE_ECHO_FILE) +.IF "$(GUI)"=="UNX" +.IF "$(TEST)"!="" + $(COMMAND_ECHO)$(CXX) $(CFLAGS) $(INCLUDE) $(CFLAGSCXX) $(CFLAGSCXXSLO) $(CFLAGSSLO) $(CDEFS) $(CDEFSSLO) $(CDEFSMT) $(!eq,$(EXCEPTIONSFILES),$(subst,$@, $(EXCEPTIONSFILES)) $(LOCAL_EXCEPTIONS_FLAGS) $(GLOBAL_EXCEPTIONS_FLAGS)) -E $(CFLAGSINCXX)$(MISC)/$*.cc +.ELSE + @$(RM) $@ $(@:s/.obj/.o/) + $(COMMAND_ECHO)$(CXX) $(CFLAGS) $(INCLUDE) $(CFLAGSCXX) $(CFLAGSCXXSLO) $(CFLAGSSLO) $(CDEFS) $(CDEFSSLO) $(CDEFSMT) $(!eq,$(EXCEPTIONSFILES),$(subst,$@, $(EXCEPTIONSFILES)) $(LOCAL_EXCEPTIONS_FLAGS) $(GLOBAL_EXCEPTIONS_FLAGS)) $(CFLAGSAPPEND) $(CFLAGSOUTOBJ) $(SLO)/$*.o $(CFLAGSINCXX)$(MISC)/$*.cc +.IF "$(OS)"=="SOLARIS" && "$(product)"=="full" && "$(debug)"=="" + $(COMMAND_ECHO)$(ADJUSTVISIBILITY) -p $(@:s/.obj/.o/) +.ENDIF # "$(OS)"=="SOLARIS" && "$(product)"=="full" && "$(debug)"=="" + @+$(IFEXIST) $(@:s/.obj/.o/) $(THEN) $(TOUCH) $@ $(FI) +.ENDIF +.ELSE + $(COMMAND_ECHO)$(CXX) @$(mktmp $(CFLAGS) $(INCLUDE) $(CFLAGSCXX) $(CFLAGSSLO) $(CDEFS) $(CDEFSSLO) $(CDEFSMT) $(!eq,$(EXCEPTIONSFILES),$(subst,$@, $(EXCEPTIONSFILES)) $(LOCAL_EXCEPTIONS_FLAGS) $(GLOBAL_EXCEPTIONS_FLAGS)) $(CFLAGSAPPEND) $(CFLAGSOUTOBJ)$(SLO)/$*.obj $(CFLAGSINCXX)$(MISC)/$*.cc ) +.ENDIF + +$(OBJ)/%.obj : $(MISC)/%.cxx + @echo $(COMPILE_ECHO_SWITCH) Compiling: $(PRJNAME)/$(INPATH)/misc/$(COMPILE_ECHO_FILE) +.IF "$(GUI)"=="UNX" +.IF "$(TEST)"!="" + $(COMMAND_ECHO)$(CXX) $(CFLAGS) $(INCLUDE) $(CFLAGSCXX) $(CFLAGSCXXOBJ) $(CFLAGSOBJ) $(CDEFS) $(CDEFSOBJ) $(CDEFSMT) $(!eq,$(EXCEPTIONSFILES),$(subst,$@, $(EXCEPTIONSFILES)) $(LOCAL_EXCEPTIONS_FLAGS) $(GLOBAL_EXCEPTIONS_FLAGS)) -E $(CFLAGSINCXX)$(MISC)/$*.cxx +.ELSE + @$(RM) $@ $(@:s/.obj/.o/) + $(COMMAND_ECHO)$(CXX) $(CFLAGS) $(INCLUDE) $(CFLAGSCXX) $(CFLAGSCXXOBJ) $(CFLAGSOBJ) $(CDEFS) $(CDEFSOBJ) $(CDEFSMT) $(!eq,$(EXCEPTIONSFILES),$(subst,$@, $(EXCEPTIONSFILES)) $(LOCAL_EXCEPTIONS_FLAGS) $(GLOBAL_EXCEPTIONS_FLAGS)) $(CFLAGSAPPEND) $(CFLAGSOUTOBJ) $(OBJ)/$*.o $(CFLAGSINCXX)$(MISC)/$*.cxx +.IF "$(OS)"=="SOLARIS" && "$(product)"=="full" && "$(debug)"=="" + $(COMMAND_ECHO)$(ADJUSTVISIBILITY) -p $(@:s/.obj/.o/) +.ENDIF # "$(OS)"=="SOLARIS" && "$(product)"=="full" && "$(debug)"=="" + @$(IFEXIST) $(@:s/.obj/.o/) $(THEN) $(TOUCH) $@ $(FI) +.ENDIF +.ELSE +.IF "$(COM)"=="GCC" + $(COMMAND_ECHO)$(CXX) $(CFLAGS) $(INCLUDE) $(CFLAGSCXX) $(CFLAGSOBJ) $(CDEFS) $(CDEFSOBJ) $(CDEFSMT) $(!eq,$(EXCEPTIONSFILES),$(subst,$@, $(EXCEPTIONSFILES)) $(LOCAL_EXCEPTIONS_FLAGS) $(GLOBAL_EXCEPTIONS_FLAGS)) $(CFLAGSAPPEND) $(CFLAGSOUTOBJ)$(OBJ)/$*.obj $(CFLAGSINCXX)$(MISC)/$*.cxx +.ELSE + $(COMMAND_ECHO)$(CXX) $(CFLAGS) $(INCLUDE) $(CFLAGSCXX) $(CFLAGSOBJ) $(CDEFS) $(CDEFSOBJ) $(CDEFSMT) $(!eq,$(EXCEPTIONSFILES),$(subst,$@, $(EXCEPTIONSFILES)) $(LOCAL_EXCEPTIONS_FLAGS) $(GLOBAL_EXCEPTIONS_FLAGS)) $(CFLAGSAPPEND) $(CFLAGSOUTOBJ)$(OBJ)/$*.obj $(CFLAGSINCXX)$(MISC)/$*.cxx +.ENDIF +.ENDIF +.IF "$(nodep)"=="" + $(COMMAND_ECHO)$(MAKEDEPEND) @$(mktmp -f - -p$(OBJ) $(MKDEPFLAGS) $(CDEFS) $(CDEFSOBJ) $(CDEFSMT) $< ) > $(MISC)/o_$(@:f:s/.obj/.dpcc/) + @noop $(assign DEPS_MADE+:=o_$(@:f:s/.obj/.dpcc/)) +.ENDIF # "$(nodep)"=="" + +$(OBJ)/%.obj : %.c + @echo $(COMPILE_ECHO_SWITCH) Compiling: $(PRJNAME)/$(PATH_IN_MODULE)/$(COMPILE_ECHO_FILE) +.IF "$(GUI)"=="UNX" +.IF "$(TEST)"!="" + $(COMMAND_ECHO)$(CC) $(CFLAGS) $(INCLUDE_C) $(CFLAGSCC) $(CFLAGSOBJ) $(CDEFS) $(CDEFSOBJ) -E $(CFLAGSAPPEND) $(CFLAGSOUTOBJ) $(OBJ)/$*.o $*.c +.ELSE + @$(RM) $@ $(@:s/.obj/.o/) + $(COMMAND_ECHO)$(CC) $(CFLAGS) $(INCLUDE_C) $(CFLAGSCC) $(CFLAGSOBJ) $(CDEFS) $(CDEFSOBJ) $(CFLAGSAPPEND) $(CFLAGSOUTOBJ) $(OBJ)/$*.o $*.c +.IF "$(OS)"=="SOLARIS" && "$(product)"=="full" && "$(debug)"=="" +.IF "$(noadjust)"=="" + $(COMMAND_ECHO)$(ADJUSTVISIBILITY) -p $(@:s/.obj/.o/) +.ENDIF # "$(noadjust)"=="" +.ENDIF # "$(OS)"=="SOLARIS" && "$(product)"=="full" && "$(debug)"=="" + @$(IFEXIST) $(@:s/.obj/.o/) $(THEN) $(TOUCH) $@ $(FI) +.ENDIF +.ELSE +.IF "$(COM)"=="GCC" + $(COMMAND_ECHO)$(CC) $(CFLAGS) $(INCLUDE_C) $(CFLAGSCC) $(CFLAGSOBJ) $(CDEFS) $(CDEFSOBJ) $(CFLAGSAPPEND) $(CFLAGSOUTOBJ)$(OBJ)/$*.obj $*.c +.ELSE + .IF "$(VERBOSE)" == "TRUE" + -@echo Cflags: $(CFLAGS) $(INCLUDE) + .ENDIF + $(COMMAND_ECHO)$(CC) $(CFLAGS) $(INCLUDE_C) $(CFLAGSCC) $(CFLAGSOBJ) $(CDEFS) $(CDEFSOBJ) $(CFLAGSAPPEND) $(CFLAGSOUTOBJ)$(OBJ)/$*.obj $*.c +.ENDIF +.ENDIF +.IF "$(nodep)"=="" + $(COMMAND_ECHO)$(MAKEDEPEND) @$(mktmp -f - -p$(OBJ) $(MKDEPFLAGS) $(CDEFS) $(CDEFSOBJ) $(CDEFSMT) $< ) > $(MISC)/o_$(@:f:s/.obj/.dpcc/) + @noop $(assign DEPS_MADE+:=o_$(@:f:s/.obj/.dpcc/)) +.ENDIF # "$(nodep)"=="" + +$(OBJ)/%.obj : $(MISC)/%.c + @echo $(COMPILE_ECHO_SWITCH) Compiling: $(PRJNAME)/$(INPATH)/misc/$(COMPILE_ECHO_FILE) +.IF "$(GUI)"=="UNX" + @$(RM) $@ $(@:s/.obj/.o/) + $(COMMAND_ECHO)$(CC) $(CFLAGS) $(INCLUDE_C) $(CFLAGSCC) $(CFLAGSOBJ) $(CDEFS) $(CDEFSOBJ) $(CFLAGSAPPEND) $(CFLAGSOUTOBJ) $(OBJ)/$*.o $(MISC)/$*.c +.IF "$(OS)"=="SOLARIS" && "$(product)"=="full" && "$(debug)"=="" + $(COMMAND_ECHO)$(ADJUSTVISIBILITY) -p $(@:s/.obj/.o/) +.ENDIF # "$(OS)"=="SOLARIS" && "$(product)"=="full" && "$(debug)"=="" + @$(IFEXIST) $(@:s/.obj/.o/) $(THEN) $(TOUCH) $@ $(FI) +.ELSE + @@-$(RM) $@ +.IF "$(COM)"=="GCC" + $(COMMAND_ECHO)$(CC) $(CFLAGS) $(INCLUDE_C) $(CFLAGSCC) $(CFLAGSOBJ) $(CDEFS) $(CDEFSOBJ) $(CFLAGSAPPEND) $(CFLAGSOUTOBJ)$(OBJ)/$*.obj $(MISC)/$*.c +.ELSE + $(COMMAND_ECHO)$(CC) $(CFLAGS) $(INCLUDE_C) $(CFLAGSCC) $(CFLAGSOBJ) $(CDEFS) $(CDEFSOBJ) $(CFLAGSAPPEND) $(CFLAGSOUTOBJ)$(OBJ)/$*.obj $(MISC)/$*.c +.ENDIF +.ENDIF +.IF "$(nodep)"=="" + $(COMMAND_ECHO)$(MAKEDEPEND) @$(mktmp -f - -p$(OBJ) $(MKDEPFLAGS) $(CDEFS) $(CDEFSOBJ) $(CDEFSMT) $< ) > $(MISC)/o_$(@:f:s/.obj/.dpcc/) + @noop $(assign DEPS_MADE+:=o_$(@:f:s/.obj/.dpcc/)) +.ENDIF # "$(nodep)"=="" + +$(SLO)/%.obj : $(MISC)/%.c + @echo $(COMPILE_ECHO_SWITCH) Compiling: $(PRJNAME)/$(INPATH)/misc/$(COMPILE_ECHO_FILE) +.IF "$(GUI)"=="UNX" + @$(RM) $@ $(@:s/.obj/.o/) + $(COMMAND_ECHO)$(CC) $(CFLAGS) $(INCLUDE_C) $(CFLAGSCC) $(CFLAGSSLO) $(CDEFS) $(CDEFSSLO) $(CFLAGSAPPEND) $(CFLAGSOUTOBJ) $(SLO)/$*.o $(MISC)/$*.c +.IF "$(OS)"=="SOLARIS" && "$(product)"=="full" && "$(debug)"=="" + $(COMMAND_ECHO)$(ADJUSTVISIBILITY) -p $(@:s/.obj/.o/) +.ENDIF # "$(OS)"=="SOLARIS" && "$(product)"=="full" && "$(debug)"=="" + @$(IFEXIST) $(@:s/.obj/.o/) $(THEN) $(TOUCH) $@ $(FI) +.ELSE + @@-$(RM) $@ +.IF "$(COM)"=="GCC" + $(COMMAND_ECHO)$(CC) $(CFLAGS) $(INCLUDE_C) $(CFLAGSCC) $(CFLAGSSLO) $(CDEFS) $(CDEFSSLO) $(CFLAGSAPPEND) $(CFLAGSOUTOBJ)$(SLO)/$*.obj $(MISC)/$*.c +.ELSE + $(COMMAND_ECHO)$(CC) $(CFLAGS) $(INCLUDE_C) $(CFLAGSCC) $(CFLAGSSLO) $(CDEFS) $(CDEFSSLO) $(CFLAGSAPPEND) $(CFLAGSOUTOBJ)$(SLO)/$*.obj $(MISC)/$*.c +.ENDIF +.ENDIF +.IF "$(nodep)"=="" + $(COMMAND_ECHO)$(MAKEDEPEND) @$(mktmp -f - -p$(SLO) $(MKDEPFLAGS) $(CDEFS) $(CDEFSSLO) $(CDEFSMT) $< ) > $(MISC)/s_$(@:f:s/.obj/.dpcc/) +# avoid _version objects (see tg_shl.mk) - quite hacky... + @noop $(!eq,$@,$(@:s/_version.obj/.obj/) $(NULL) $(assign DEPS_MADE+:=s_$(@:f:s/.obj/.dpcc/))) +.ENDIF # "$(nodep)"=="" + +$(SLO)/%.obj : %.c + @echo $(COMPILE_ECHO_SWITCH) Compiling: $(PRJNAME)/$(PATH_IN_MODULE)/$(COMPILE_ECHO_FILE) +.IF "$(GUI)"=="UNX" + @$(RM) $@ $(@:s/.obj/.o/) + $(COMMAND_ECHO)$(CC) $(CFLAGS) $(INCLUDE_C) $(CFLAGSCC) $(CFLAGSSLO) $(CDEFS) $(CDEFSSLO) $(CDEFSMT) $(CFLAGSAPPEND) $(CFLAGSOUTOBJ) $(SLO)/$*.o $*.c +.IF "$(OS)"=="SOLARIS" && "$(product)"=="full" && "$(debug)"=="" + $(COMMAND_ECHO)$(ADJUSTVISIBILITY) -p $(@:s/.obj/.o/) +.ENDIF # "$(OS)"=="SOLARIS" && "$(product)"=="full" && "$(debug)"=="" + @$(IFEXIST) $(@:s/.obj/.o/) $(THEN) $(TOUCH) $@ $(FI) +.ELSE + @@-$(RM) $@ +.IF "$(COM)"=="GCC" + $(COMMAND_ECHO)$(CC) $(CFLAGS) $(INCLUDE_C) $(CFLAGSCC) $(CFLAGSSLO) $(CDEFS) $(CDEFSSLO) $(CDEFSMT) $(CFLAGSAPPEND) $(CFLAGSOUTOBJ)$(SLO)/$*.obj $*.c +.ELSE + $(COMMAND_ECHO)$(CC) $(CFLAGS) $(INCLUDE_C) $(CFLAGSCC) $(CFLAGSSLO) $(CDEFS) $(CDEFSSLO) $(CDEFSMT) $(CFLAGSAPPEND) $(CFLAGSOUTOBJ)$(SLO)/$*.obj $*.c +.ENDIF +.ENDIF +.IF "$(nodep)"=="" + $(COMMAND_ECHO)$(MAKEDEPEND) @$(mktmp -f - -p$(SLO) $(MKDEPFLAGS) $(CDEFS) $(CDEFSSLO) $(CDEFSMT) $< ) > $(MISC)/s_$(@:f:s/.obj/.dpcc/) + @noop $(assign DEPS_MADE+:=s_$(@:f:s/.obj/.dpcc/)) +.ENDIF # "$(nodep)"=="" + +# Objective-C files +$(OBJ)/%.obj : %.m + @echo $(COMPILE_ECHO_SWITCH) Compiling: $(PRJNAME)/$(PATH_IN_MODULE)/$(COMPILE_ECHO_FILE) +.IF "$(OS)"=="MACOSX" +.IF "$(TEST)"!="" + $(COMMAND_ECHO)$(objc) $(CFLAGS) $(INCLUDE_C) $(CFLAGSCC) $(OBJCFLAGS) $(CFLAGSOBJ) $(CDEFS) $(CDEFSOBJ) -E $(CFLAGSAPPEND) $(CFLAGSOUTOBJ) $(OBJ)/$*.o $*.m +.ELSE + @$(RM) $@ $(@:s/.obj/.o/) + $(COMMAND_ECHO)$(objc) $(CFLAGS) $(INCLUDE_C) $(CFLAGSCC) $(OBJCFLAGS) $(CFLAGSOBJ) $(CDEFS) $(CDEFSOBJ) $(CFLAGSAPPEND) $(CFLAGSOUTOBJ) $(OBJ)/$*.o $*.m + @$(IFEXIST) $(@:s/.obj/.o/) $(THEN) $(TOUCH) $@ $(FI) +.ENDIF +.ELSE # "$(OS)"=="MACOSX" + @echo "No recipe for compiling Objective-C files is available for this platform" +.ENDIF "$(OS)"=="MACOSX" + +# Objective-C files +$(OBJ)/%.obj : $(MISC)/%.m + @echo $(COMPILE_ECHO_SWITCH) Compiling: $(PRJNAME)/$(INPATH)/misc/$(COMPILE_ECHO_FILE) +.IF "$(OS)"=="MACOSX" + @$(RM) $@ $(@:s/.obj/.o/) + $(COMMAND_ECHO)$(objc) $(CFLAGS) $(INCLUDE_C) $(CFLAGSCC) $(OBJCFLAGS) $(CFLAGSOBJ) $(CDEFS) $(CDEFSOBJ) $(CFLAGSAPPEND) $(CFLAGSOUTOBJ) $(OBJ)/$*.o $(MISC)/$*.m + @$(IFEXIST) $(@:s/.obj/.o/) $(THEN) $(TOUCH) $@ $(FI) +.ELSE # "$(OS)"=="MACOSX" + @echo "No recipe for compiling Objective-C files is available for this platform" +.ENDIF "$(OS)"=="MACOSX" + +# Objective-C files +$(SLO)/%.obj : $(MISC)/%.m + @echo $(COMPILE_ECHO_SWITCH) Compiling: $(PRJNAME)/$(INPATH)/misc/$(COMPILE_ECHO_FILE) +.IF "$(OS)"=="MACOSX" + @$(RM) $@ $(@:s/.obj/.o/) + $(COMMAND_ECHO)$(objc) $(CFLAGS) $(INCLUDE_C) $(CFLAGSCC) $(OBJCFLAGS) $(CFLAGSSLO) $(CDEFS) $(CDEFSSLO) $(CFLAGSAPPEND) $(CFLAGSOUTOBJ) $(SLO)/$*.o $(MISC)/$*.m + @$(IFEXIST) $(@:s/.obj/.o/) $(THEN) $(TOUCH) $@ $(FI) +.ELSE # "$(OS)"=="MACOSX" + @echo "No recipe for compiling Objective-C files is available for this platform" +.ENDIF "$(OS)"=="MACOSX" + +# Objective-C files +$(SLO)/%.obj : %.m + @echo $(COMPILE_ECHO_SWITCH) Compiling: $(PRJNAME)/$(PATH_IN_MODULE)/$(COMPILE_ECHO_FILE) +.IF "$(OS)"=="MACOSX" + @$(RM) $@ $(@:s/.obj/.o/) + $(COMMAND_ECHO)$(objc) $(CFLAGS) $(INCLUDE_C) $(CFLAGSCC) $(OBJCFLAGS) $(CFLAGSSLO) $(CDEFS) $(CDEFSSLO) $(CDEFSMT) $(CFLAGSAPPEND) $(CFLAGSOUTOBJ) $(SLO)/$*.o $*.m + @$(IFEXIST) $(@:s/.obj/.o/) $(THEN) $(TOUCH) $@ $(FI) +.ELSE # "$(OS)"=="MACOSX" + @echo "No recipe for compiling Objective-C files is available for this platform" +.ENDIF "$(OS)"=="MACOSX" + +# dependencies c / c++ + +not_existing/s_%.dpcc : %.c;@noop $(assign all_local_slo+:=$<) +not_existing/o_%.dpcc : %.c;@noop $(assign all_local_obj+:=$<) + +# Objective-C++ files +$(OBJ)/%.obj : %.mm + @echo $(COMPILE_ECHO_SWITCH) Compiling: $(PRJNAME)/$(PATH_IN_MODULE)/$(COMPILE_ECHO_FILE) +.IF "$(OS)"=="MACOSX" +.IF "$(TEST)"!="" + $(COMMAND_ECHO)$(objcpp) $(CFLAGS) $(INCLUDE) $(CFLAGSCC) $(OBJCXXFLAGS) $(CFLAGSOBJ) $(CDEFS) $(CDEFSOBJ) -E $(CFLAGSAPPEND) $(CFLAGSOUTOBJ) $(OBJ)/$*.o $*.mm +.ELSE + @$(RM) $@ $(@:s/.obj/.o/) + $(COMMAND_ECHO)$(objcpp) $(CFLAGS) $(INCLUDE) $(CFLAGSCC) $(OBJCXXFLAGS) $(CFLAGSOBJ) $(CDEFS) $(CDEFSOBJ) $(CFLAGSAPPEND) $(CFLAGSOUTOBJ) $(OBJ)/$*.o $*.mm + @$(IFEXIST) $(@:s/.obj/.o/) $(THEN) $(TOUCH) $@ $(FI) +.ENDIF +.IF "$(nodep)"=="" + $(COMMAND_ECHO)$(MAKEDEPEND) @$(mktmp -f - -p$(OBJ) $(MKDEPFLAGS) $(CDEFS) $(CDEFSOBJ) $(CDEFSMT) $< ) > $(MISC)/o_$(@:f:s/.obj/.dpcc/) + @noop $(assign DEPS_MADE+:=o_$(@:f:s/.obj/.dpcc/)) +.ENDIF # "$(nodep)"=="" +.ELSE # "$(OS)"=="MACOSX" + @echo "No recipe for compiling Objective-C++ files is available for this platform" +.ENDIF # "$(OS)"=="MACOSX" + +# Objective-C++ files +$(OBJ)/%.obj : $(MISC)/%.mm + @echo $(COMPILE_ECHO_SWITCH) Compiling: $(PRJNAME)/$(INPATH)/misc/$(COMPILE_ECHO_FILE) +.IF "$(OS)"=="MACOSX" + @$(RM) $@ $(@:s/.obj/.o/) + $(COMMAND_ECHO)$(objcpp) $(CFLAGS) $(INCLUDE) $(CFLAGSCXX) $(OBJCXXFLAGS) $(CFLAGSOBJ) $(CDEFS) $(CDEFSOBJ) $(CFLAGSAPPEND) $(CFLAGSOUTOBJ) $(OBJ)/$*.o $(MISC)/$*.mm + @$(IFEXIST) $(@:s/.obj/.o/) $(THEN) $(TOUCH) $@ $(FI) +.IF "$(nodep)"=="" + $(COMMAND_ECHO)$(MAKEDEPEND) @$(mktmp -f - -p$(OBJ) $(MKDEPFLAGS) $(CDEFS) $(CDEFSOBJ) $(CDEFSMT) $< ) > $(MISC)/o_$(@:f:s/.obj/.dpcc/) + @noop $(assign DEPS_MADE+:=o_$(@:f:s/.obj/.dpcc/)) +.ENDIF # "$(nodep)"=="" +.ELSE # "$(OS)"=="MACOSX" + @echo "No recipe for compiling Objective-C++ files is available for this platform" +.ENDIF # "$(OS)"=="MACOSX" + +# Objective-C++ files +$(SLO)/%.obj : $(MISC)/%.mm + @echo $(COMPILE_ECHO_SWITCH) Compiling: $(PRJNAME)/$(INPATH)/misc/$(COMPILE_ECHO_FILE) +.IF "$(OS)"=="MACOSX" + @$(RM) $@ $(@:s/.obj/.o/) + $(COMMAND_ECHO)$(objcpp) $(CFLAGS) $(INCLUDE) $(CFLAGSCXX) $(OBJCXXFLAGS) $(CFLAGSSLO) $(CDEFS) $(CDEFSSLO) $(CFLAGSAPPEND) $(CFLAGSOUTOBJ) $(SLO)/$*.o $(MISC)/$*.mm + @$(IFEXIST) $(@:s/.obj/.o/) $(THEN) $(TOUCH) $@ $(FI) +.IF "$(nodep)"=="" + $(COMMAND_ECHO)$(MAKEDEPEND) @$(mktmp -f - -p$(SLO) $(MKDEPFLAGS) $(CDEFS) $(CDEFSSLO) $(CDEFSMT) $< ) > $(MISC)/s_$(@:f:s/.obj/.dpcc/) + @noop $(assign DEPS_MADE+:=s_$(@:f:s/.obj/.dpcc/)) +.ENDIF # "$(nodep)"=="" +.ELSE # "$(OS)"=="MACOSX" + @echo "No recipe for compiling Objective-C++ files is available for this platform" +.ENDIF # "$(OS)"=="MACOSX" + +# Objective-C++ files +$(SLO)/%.obj : %.mm + @echo $(COMPILE_ECHO_SWITCH) Compiling: $(PRJNAME)/$(PATH_IN_MODULE)/$(COMPILE_ECHO_FILE) +.IF "$(OS)"=="MACOSX" + @$(RM) $@ $(@:s/.obj/.o/) + $(COMMAND_ECHO)$(objcpp) $(CFLAGS) $(INCLUDE) $(CFLAGSCXX) $(OBJCXXFLAGS) $(CFLAGSSLO) $(CDEFS) $(CDEFSSLO) $(CDEFSMT) $(CFLAGSAPPEND) $(CFLAGSOUTOBJ) $(SLO)/$*.o $*.mm + @$(IFEXIST) $(@:s/.obj/.o/) $(THEN) $(TOUCH) $@ $(FI) +.IF "$(nodep)"=="" + $(COMMAND_ECHO)$(MAKEDEPEND) @$(mktmp -f - -p$(SLO) $(MKDEPFLAGS) $(CDEFS) $(CDEFSSLO) $(CDEFSMT) $< ) > $(MISC)/s_$(@:f:s/.obj/.dpcc/) + @noop $(assign DEPS_MADE+:=s_$(@:f:s/.obj/.dpcc/)) +.ENDIF # "$(nodep)"=="" +.ELSE # "$(OS)"=="MACOSX" + @echo "No recipe for compiling Objective-C++ files is available for this platform" +.ENDIF # "$(OS)"=="MACOSX" + +$(MISC)/%.dpslo : + @echo "Making: " $(@:f) + @@$(RM) $@ + @@-$(CDD) $(MISC) && $(!null,$(all_local_slo) $(TYPE:s/+//) echo #) $(foreach,i,$(all_local_slo:b:+".dpcc") s_$(i)) > $(@:f) + @@-$(CDD) $(MISC) && $(!null,$(all_misc_slo) $(TYPE:s/+//) echo #) $(foreach,i,$(all_misc_slo:b:+".dpcc") s_$(i)) >> $(@:f) + @$(TYPE) $(mktmp $(foreach,i,$(all_local_slo:b:+".dpcc") $(@:s#\#/#:^"\n") : $(MISC:s#\#/#)/s_$i) $(foreach,i,$(all_misc_slo:b:+".dpcc") $(@:s#\#/#:^"\n") : $(MISC:s#\#/#)/s_$i)) >> $@ + @$(TYPE) $(mktmp $(TARGET)_known_dpcc+=$(all_local_slo:b:+".dpcc":^"s_") $(all_misc_slo:b:+".dpcc":^"s_")) >> $@ + +$(MISC)/%.dpobj : + @echo "Making: " $(@:f) + @@$(RM) $@ + @@-$(CDD) $(MISC) && $(!null,$(all_local_obj) $(TYPE:s/+//) echo #) $(foreach,i,$(all_local_obj:b:+".dpcc") o_$(i)) > $(@:f) + @@-$(CDD) $(MISC) && $(!null,$(all_misc_obj) $(TYPE:s/+//) echo #) $(foreach,i,$(all_misc_obj:b:+".dpcc") o_$(i)) >> $(@:f) + @$(TYPE) $(mktmp $(foreach,i,$(all_local_obj:b:+".dpcc") $(@:s#\#/#:^"\n") : $(MISC:s#\#/#)/o_$i) $(foreach,i,$(all_misc_obj:b:+".dpcc") $(@:s#\#/#:^"\n") : $(MISC:s#\#/#)/o_$i)) >> $@ + @$(TYPE) $(mktmp $(TARGET)_known_dpcc+=$(all_local_obj:b:+".dpcc":^"s_") $(all_misc_obj:b:+".dpcc":^"s_")) >> $@ + +# see also %.dpslo +not_existing/s_%.dpcc : %.cxx;@noop $(assign all_local_slo+:=$<) +not_existing/o_%.dpcc : %.cxx;@noop $(assign all_local_obj+:=$<) + +not_existing/s_%.dpcc : %.cpp;@noop $(assign all_local_slo+:=$<) +not_existing/o_%.dpcc : %.cpp;@noop $(assign all_local_obj+:=$<) + +not_existing/s_%.dpcc : $(MISC)/%.c;@noop $(assign all_misc_slo+:=$<) +not_existing/o_%.dpcc : $(MISC)/%.c;@noop $(assign all_misc_obj+:=$<) + +not_existing/s_%.dpcc : $(MISC)/%.cxx;@noop $(assign all_misc_slo+:=$<) +not_existing/o_%.dpcc : $(MISC)/%.cxx;@noop $(assign all_misc_obj+:=$<) + +not_existing/s_%.dpcc : %.mm;@noop $(assign all_local_slo+:=$<) +not_existing/o_%.dpcc : %.mm;@noop $(assign all_local_obj+:=$<) + +not_existing/s_%.dpcc : $(MISC)/%.mm;@noop $(assign all_misc_slo+:=$<) +not_existing/o_%.dpcc : $(MISC)/%.mm;@noop $(assign all_misc_obj+:=$<) + +# dependencies objective-c + +$(MISC)/s_%.dpcc : %.m + @@-$(RM) $@ + $(COMMAND_ECHO)$(MAKEDEPEND) -f - -p$(SLO) $(MKDEPFLAGS) $(CDEFS) $(CDEFSSLO) $(CDEFSMT) $< > $@ + @echo $@ : $(SLO)/$(<:b).obj >> $@ + +$(MISC)/o_%.dpcc : %.m + @@-$(RM) $@ + $(COMMAND_ECHO)$(MAKEDEPEND) -f - -p$(OBJ) $(MKDEPFLAGS) $(CDEFS) $(CDEFSOBJ) $(CDEFSMT) $< > $@ + @echo $@ : $(OBJ)/$(<:b).obj >> $@ + +$(MISC)/s_%.dpcc : $(MISC)/%.m + @@-$(RM) $@ +.IF "$(GUI)"=="UNX" + $(COMMAND_ECHO)$(MAKEDEPEND) -f - -p$(SLO) $(MKDEPFLAGS) $(CDEFS) $(CDEFSSLO) $(CDEFSMT) $< | sed s\#$(MISC)/\#\# > $@ +.ELSE # "$(GUI)"=="UNX" + $(COMMAND_ECHO)$(MAKEDEPEND) -f - -p$(SLO) $(MKDEPFLAGS) $(CDEFS) $(CDEFSSLO) $(CDEFSMT) $< | $(SED) s/$(MISC:s/\/\\/)\\// > $@ +.ENDIF # "$(GUI)"=="UNX" + @echo $@ : $(SLO)/$(<:b).obj >> $@ + +$(MISC)/o_%.dpcc : $(MISC)/%.m + @@-$(RM) $@ +.IF "$(GUI)"=="UNX" + $(COMMAND_ECHO)$(MAKEDEPEND) -f - -p$(OBJ) $(MKDEPFLAGS) $(CDEFS) $(CDEFSOBJ) $(CDEFSMT) $< | sed s\#$(MISC)/\#\# > $@ +.ELSE # "$(GUI)"=="UNX" + $(COMMAND_ECHO)$(MAKEDEPEND) -f - -p$(OBJ) $(MKDEPFLAGS) $(CDEFS) $(CDEFSOBJ) $(CDEFSMT) $< | $(SED) s/$(MISC:s/\/\\/)\\// > $@ +.ENDIF # "$(GUI)"=="UNX" + @echo $@ : $(OBJ)/$(<:b).obj >> $@ + +# dependency dummy for *.s files + +$(MISC)/s_%.dpcc : %.s + @@-$(RM) $@ + $(COMMAND_ECHO)$(MAKEDEPEND) -f - -p$(SLO) $(MKDEPFLAGS) $(CDEFS) $(CDEFSSLO) $(CDEFSMT) $< > $@ + @echo $@ : $(SLO)/$(<:b).obj >> $@ + +$(MISC)/s_%.dpcc : $(SLO)/%.obj + @noop $(assign DEPS_MISSING+:=$(@:f)) + +$(MISC)/o_%.dpcc : $(OBJ)/%.obj + @noop $(assign DEPS_MISSING+:=$(@:f)) + +# dependencies script files + +$(MISC)/%.dpsc : + @@-$(RM) $@ + @@-$(MKDIR) $(MISC)/{$(subst,$(@:d:d:d), $(@:d:d))} + $(COMMAND_ECHO)$(MAKEDEPEND) -f - -p$(PAR)/{$(subst,$(@:d:d:d), $(@:d:d))} -o.par -D{$(subst,$(@:d:d:d:u), $(@:d:d:u))}_PRODUCT $(CDEFS) -DDLLPOSTFIX=$(DLLPOSTFIX) -I. -I$(INC) -I$(INCLOCAL) -I$(INCGUI) -I$(INCCOM) $(*:b).scp > $@ + @echo $@ : $(PAR)/{$(subst,$(@:d:d:d), $(@:d:d))}/$(*:b).par >> $@ + @echo $(PAR)/{$(subst,$(@:d:d:d), $(@:d:d))}/$(*:b).par : $(*:b).scp >> $@ + +# dependencies rc files (native resources for windows) + +$(MISC)/%.dprc : + @@-$(RM) $@ + $(COMMAND_ECHO)$(MAKEDEPEND) -f - -p$(RES) -o.res $(RCLANGFLAGS_{$(subst,$(@:d:d:d:u), $(@:d:d:u))}:u:s/ //) $(CDEFS) -DDLLPOSTFIX=$(DLLPOSTFIX) -I. -I$(INC) -I$(INCLOCAL) -I$(INCGUI) -I$(INCCOM) -I$(SOLARENV)/inc $(*:b).rc >> $@ +# @echo $@ : $(RES)/{$(subst,$(@:d:d:d), $(@:d:d))}/$(*:b).res >> $@ + @echo $@ : $(RES)/$(*:b).res >> $@ + +$(MISC)/%.dpr : + @@noop +.IF "$(nodep)"=="" + @echo "Making: " $(@:f) + @@-$(RM) $@ + $(COMMAND_ECHO)dmake $(MFLAGS) $(MAKEFILE) $(CALLMACROS) make_srs_deps=true $(DEPSRSFILES) + $(COMMAND_ECHO)-$(TYPE) $(MISC)/$(TARGET).*.dprr >> $@ +.ENDIF # "$(nodep)"=="" + +$(MISC)/%.dpz : + @@noop +.IF "$(nodep)"=="" + @echo "Making: " $(@:f) + @@-$(RM) $@ + $(COMMAND_ECHO)dmake $(MFLAGS) $(MAKEFILE) $(CALLMACROS) make_zip_deps=true $(ZIPDEPFILES) + $(COMMAND_ECHO)$(TYPE) $(ZIPDEPFILES) $(mktmp $(NULL)) | grep -v "CVS" | grep -v "\.svn" >> $@ + @echo zipdep_langs=$(alllangiso) >> $@ + @@-$(RM) $(ZIPDEPFILES) +.ENDIF # "$(nodep)"=="" + +# Dependencies fuer java - Files + +$(MISC)/%.dpj : + @echo "Making: " $(@:f) +.IF "$(nodep)"!="" +.IF "$(GUI)"=="UNX" + @echo > $@ +.ELSE + @$(ECHONL) > $@ +.ENDIF +.ELSE # "$(ndep)"=="" +.IF "$(GUI)"=="UNX" + @echo $(shell @$(STARDEP) @$(mktmp -o $@ -i $(CLASSDIR) $(foreach,i,$(JAVADEPINCLUDES:s/:/ /) -i $i) $(JAVACLASSFILES))) +.ELSE + @echo javadeps + @echo $(shell @$(STARDEP) @$(mktmp -o $@ -i $(CLASSDIR) $(foreach,i,$(JAVADEPINCLUDES:s/;/ /) -i $i) $(JAVACLASSFILES))) +.ENDIF +.ENDIF # "$(nodep)"=="" + +$(SLO)/%.obj : %.asm + @echo $(COMPILE_ECHO_SWITCH) Compiling: $(PRJNAME)/$(PATH_IN_MODULE)/$(COMPILE_ECHO_FILE) +.IF "$(COM)"=="GCC" +.IF "$(ASM)"=="ml" || "$(ASM)"=="ml64" + $(COMMAND_ECHO)$(ASM) $(AFLAGS) -D$(COM) /Fo$(SLO)/$*.obj $*.asm + @@-$(RM) $*.err +.ELSE # "$(ASM)"=="ml" + @@-$(RM) $@ + $(COMMAND_ECHO)$(ASM) $(AFLAGS) $*.asm,$(SLO)/$*.obj; +.ENDIF # "$(ASM)"=="ml" +.ELSE +.IF "$(COM)"=="WTC" + $(COMMAND_ECHO)$(ASM) $(AFLAGS) -D$(COM) $*.asm -fo=$(SLO)/$*.obj + @-$(IFEXIST) $*.err $(THEN) $(RM:s/+//) $*.err $(FI) +.ELSE +.IF "$(COM)"=="MSC" +.IF "$(ASM)"=="ml" || "$(ASM)"=="ml64" + $(COMMAND_ECHO)$(ASM) $(AFLAGS) -D$(COM) /Fo$(SLO)/$*.obj $*.asm + @-$(IFEXIST) $*.err $(THEN) $(RM:s/+//) $*.err $(FI) +.ELSE # "$(ASM)"=="ml" + @@-$(RM) $@ + $(COMMAND_ECHO)$(ASM) $(AFLAGS) $*.asm,$(SLO)/$*.obj; +.ENDIF # "$(ASM)"=="ml" +.ENDIF "$(COM)"=="MSC" +.ENDIF +.ENDIF + +$(OBJ)/%.obj : %.asm + @echo $(COMPILE_ECHO_SWITCH) Compiling: $(PRJNAME)/$(PATH_IN_MODULE)/$(COMPILE_ECHO_FILE) +.IF "$(COM)"=="GCC" +.IF "$(ASM)"=="ml" + $(COMMAND_ECHO)$(ASM) $(AFLAGS) -D$(COM) /Fo$(OBJ)/$*.obj $*.asm + @@-$(RM) $*.err +.ELSE # "$(ASM)"=="ml" + @@-$(RM) $@ + $(COMMAND_ECHO)$(ASM) $(AFLAGS) $*.asm,$(OBJ)/$*.obj; +.ENDIF # "$(ASM)"=="ml" +.ELSE +.IF "$(COM)"=="MSC" +.IF "$(ASM)"=="ml" + $(COMMAND_ECHO)$(ASM) $(AFLAGS) -D$(COM) /Fo$(SLO)/$*.obj $*.asm + @-$(IFEXIST) $*.err $(THEN) $(RM:s/+//) $*.err $(FI) +.ELSE # "$(ASM)"=="ml" + @$(IFEXIST) $@ $(THEN) $(RM:s/+//) $@ >& $(NULLDEV) $(FI) + $(COMMAND_ECHO)$(ASM) $(AFLAGS) $*.asm,$(OBJ)/$*.obj; +.ENDIF # "$(ASM)"=="ml" +.ENDIF "$(COM)"=="MSC" +.ENDIF + +$(OUT)/ucr/$(IDLPACKAGE)/%.urd : %.idl + @noop $(assign all_outdated_idl+:=$<) + +$(OUT)/ucrdoc/$(IDLPACKAGE)/%.urd : %.idl + @noop $(assign all_outdated_doc_idl+:=$<) + +# make *.xml descriptions available in $(MISC) +$(MISC)/%$($(WINVERSIONNAMES)_MAJOR).xml : %.xml + $(COMMAND_ECHO)$(COPY) $< $@ + +# dummy rule to make sure xml file is in place when used in settings.mk +$(MISC)/%.mk : $(MISC)/%$($(WINVERSIONNAMES)_MAJOR).xml + @$(TOUCH) $@ + @echo XML2MK_FILES += $(@:b) >> $@ + +#generate descriptions from xml +$(MISC)/%$($(WINVERSIONNAMES)_MAJOR)_description.cxx : $(MISC)/%$($(WINVERSIONNAMES)_MAJOR).xml + xml2cmp -func $(MISC)/$*$($(WINVERSIONNAMES)_MAJOR)_description.cxx $< + +#generate private rdb +$(BIN)/%.rdb: $(MISC)/%$($(WINVERSIONNAMES)_MAJOR).xml + $(COMMAND_ECHO)$(RDBMAKER) -BUCR -O$(BIN)/$*.rdb @$(mktmp $(foreach,i,$($(@:b)_XML2CMPTYPES) -T$i ) $(COMPRDB)) + +#strip dos lineends +$(MISC)/%.sh : %.sh + @@-$(RM) -f $@ + @tr -d "\015" < $< > $@ + +# merge targets +.IF "$(WITH_LANG)"!="" +$(COMMONMISC)/$(TARGET)/%.ulf : %.ulf + @echo "Making: " $(@:f) + $(COMMAND_ECHO)-$(MKDIRHIER) $(@:d) + $(COMMAND_ECHO)-$(RM) $@ + $(COMMAND_ECHO)$(ULFEX) -p $(PRJNAME) -i $(@:f) -o $(@).$(INPATH) -m $(LOCALIZESDF) -l all + $(COMMAND_ECHO)$(RENAME) $@.$(INPATH) $@ + $(COMMAND_ECHO)-$(RM) $@.$(INPATH) + +$(COMMONMISC)/$(TARGET)/%.xrb : %.xrb + $(COMMAND_ECHO)-$(MKDIRHIER) $(@:d) + $(COMMAND_ECHO)-$(RM) $@ + $(COMMAND_ECHO)$(XMLEX) -t xrb -p $(PRJNAME) -i $(@:f) -o $(@).$(INPATH) -m $(LOCALIZESDF) -l all + $(COMMAND_ECHO)$(RENAME) $@.$(INPATH) $@ + $(COMMAND_ECHO)-$(RM) $@.$(INPATH) + +$(COMMONMISC)/$(MYPATH)/%.xrm : %.xrm + $(COMMAND_ECHO)-$(MKDIRHIER) $(@:d) + $(COMMAND_ECHO)-$(RM) $@ + @echo trysdf = $(TRYSDF) + $(COMMAND_ECHO)$(XRMEX) -p $(PRJNAME) -i $(@:f) -o $(@).$(INPATH) -m $(LOCALIZESDF) -l all + $(COMMAND_ECHO)$(RENAME) $@.$(INPATH) $@ + $(COMMAND_ECHO)-$(RM) $@.$(INPATH) + +#$(COMMONMISC)/$(TARGET)/%.xrm : %.xrm +# -$(MKDIRHIER) $(@:d) +# -$(RM) $@ +# $(XRMEX) -p $(PRJNAME) -i $(@:f) -o $(@).$(INPATH) -m $(LOCALIZESDF) -l all +# $(RENAME) $@.$(INPATH) $@ +# -$(RM) $@.$(INPATH) +# +#$(COMMONMISC)/%.xrm : %.xrm +# -$(MKDIR) $(@:d) +# -$(RM) $@ +# $(XRMEX) -p $(PRJNAME) -i $(@:f) -o $(@).$(INPATH) -m $(LOCALIZESDF) -l all +# $(RENAME) $@.$(INPATH) $@ +# -$(RM) $@.$(INPATH) +.ENDIF # "$(WITH_LANG)"!="" + +.IF "$(WITH_LANG)"!="" +$(COMMONMISC)/$(TARGET)/%.jlf : $$(@:db).ulf +.ELSE # "$(WITH_LANG)"!="" +$(COMMONMISC)/$(TARGET)/%.jlf : $$(@:b).ulf +.ENDIF # "$(WITH_LANG)"!="" + @-$(MKDIRHIER) $(@:d) + $(COMMAND_ECHO)-$(RM) $@ + $(COMMAND_ECHO)$(ULFCONV) -o $@.$(INPATH) $< + $(COMMAND_ECHO)$(RENAME) $@.$(INPATH) $@ + $(COMMAND_ECHO)-$(RM) $@.$(INPATH) + +.IF "$(WITH_LANG)"!="" +$(COMMONMISC)/$(TARGET)/%.mlf : $$(@:db).ulf +.ELSE # "$(WITH_LANG)"!="" +$(COMMONMISC)/$(TARGET)/%.mlf : $$(@:b).ulf +.ENDIF # "$(WITH_LANG)"!="" + @-$(MKDIRHIER) $(@:d) + @-$(RM) $@ + @$(ULFCONV) -o $@.$(INPATH) -t $(SOLARBINDIR)/msi-encodinglist.txt $< + @$(RENAME) $@.$(INPATH) $@ + @-$(RM) $@.$(INPATH) + +.IF "$(WITH_LANG)"!="" +$(COMMONMISC)/$(TARGET)/%.uulf : $$(@:db).ulf +.ELSE # "$(WITH_LANG)"!="" +$(COMMONMISC)/$(TARGET)/%.uulf : $$(@:b).ulf +.ENDIF # "$(WITH_LANG)"!="" + @-$(MKDIRHIER) $(@:d) + $(COMMAND_ECHO)-$(RM) $@ + @$(COPY) $< $@.$(INPATH) + @$(RENAME) $@.$(INPATH) $@ + @-$(RM) $@.$(INPATH) + +# This is still needed????? +$(COMMONMISC)/$(TARGET)/%.xrm : %.xrm + $(COMMAND_ECHO)-$(MKDIR) $(@:d) + $(COMMAND_ECHO)-$(RM) $@ + $(COMMAND_ECHO)$(XRMEX) -p $(PRJNAME) -i $(@:f) -o $(@).$(INPATH) -m $(LOCALIZESDF) -l all + $(COMMAND_ECHO)$(RENAME) $@.$(INPATH) $@ + $(COMMAND_ECHO)-$(RM) $@.$(INPATH) + +# dirty hack +# if local *.sdf file is missing +#%.sdf: +# echo > $@ + diff --git a/solenv/inc/set_ext.mk b/solenv/inc/set_ext.mk new file mode 100644 index 000000000000..8d6d4db5a627 --- /dev/null +++ b/solenv/inc/set_ext.mk @@ -0,0 +1,37 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +#defaults +TARFILE_ROOTDIR*=$(TARFILE_NAME) +UNTAR_FLAG_FILE*=so_unpacked_$(TARGET) +ADD_FILES_FLAG_FILE*=so_addfiles_$(TARGET) +PATCH_FLAG_FILE*=so_patched_$(TARGET) +CONFIGURE_FLAG_FILE*=so_configured_$(TARGET) +BUILD_FLAG_FILE*=so_built_$(TARGET) +INSTALL_FLAG_FILE*=so_installed_$(TARGET) +PREDELIVER_FLAG_FILE*=so_predeliver_$(TARGET) + diff --git a/solenv/inc/set_wntx64.mk b/solenv/inc/set_wntx64.mk new file mode 100644 index 000000000000..bc8fb7445dfd --- /dev/null +++ b/solenv/inc/set_wntx64.mk @@ -0,0 +1,213 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* +############################################### +# Windows 64 bit special +# only used for 64 bit shell extension +# ( Windows Vista ) +# --------------------------------------------- +# THIS FILE WILL BE DELETED when a fully ported +# Windows 64 bit version is available +############################################### + +.IF "$(BUILD_X64)"!="" +# ----------------- settings for x64 -------------------- +CC_X64*:="$(CXX_X64_BINARY)" +CXX_X64*:="$(CXX_X64_BINARY)" +LINK_X64*:="$(LINK_X64_BINARY)" $(NOLOGO) -MACHINE:X64 +LIBMGR_X64="$(LIBMGR_X64_BINARY)" $(NOLOGO) +IMPLIB_X64="$(LIBMGR_X64_BINARY)" + +USE_CFLAGS_X64=-c -nologo -Gs $(NOLOGO) -Zm500 -Zc:forScope,wchar_t- -GR + +# Stack buffer overrun detection. +CFLAGS+=-GS + +USE_CDEFS_X64+= -D$(OS) -D$(GUI) -D$(GVER) -D$(COM) -DX86_64 -DWIN32 -D_AMD64_=1 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_NON_CONFORMING_SWPRINTFS +.IF "$(debug)"!="" +USE_CFLAGS_X64+=-Zi -Fd$(MISC_X64)/$(@:b).pdb +USE_CDEFS_X64+=-DDEBUG +.ENDIF # "$(debug)"!="" +USE_CFLAGS_X64+=$(CFLAGS_X64) +USE_CDEFS_X64+=$(CDEFS_X64) +INCLUDE_X64=$(subst,/stl$(SPACECHAR),dont_use_stl$(SPACECHAR) $(INCLUDE)) + +.IF "$(product)" != "" +USE_CFLAGS_X64+=-Gy +.ENDIF # "$(product)" != "" + +# inline expansion +USE_CFLAGS_X64+=-Ob1 + +.IF "$(DYNAMIC_CRT)"!="" +CDEFSSLOMT_X64+=-D_MT -D_DLL +CDEFSSLOMT_X64+=-D_MT -D_DLL +.IF "$(NO_DYNAMIC_OBJ)"=="" +CDEFSOBJMT_X64+=-D_MT -D_DLL +CDEFSOBJMT_X64+=-D_MT -D_DLL +.ELSE +CDEFSOBJMT_X64+=-D_MT +CDEFSOBJMT_X64+=-D_MT +.ENDIF # "$(NO_DYNAMIC_OBJ)"=="" +.ELSE +CDEFSSLOMT_X64+=-D_MT +CDEFSOBJMT_X64+=-D_MT +.ENDIF # "$(DYNAMIC_CRT)"!="" + +.IF "$(PRODUCT)"!="full" +.ELSE +LINKFLAGS_X64=/MAP /OPT:NOREF +.ENDIF + +# excetion handling protection +LINKFLAGS+=-safeseh + +# enable DEP +LINKFLAGS+=-nxcompat + +# enable ASLR +LINKFLAGS+=-dynamicbase + +.IF "$(PRODUCT)"!="full" +LINKFLAGS_X64+= -NODEFAULTLIB -DEBUG +.ELSE # "$(PRODUCT)"!="full" +LINKFLAGS_X64+= -NODEFAULTLIB -RELEASE -DEBUG -INCREMENTAL:NO +.ENDIF # "$(PRODUCT)"!="full" +MAPFILE=-out:$$@ + +.IF "$(debug)" != "" +LINKFLAGS_X64+= $(LINKFLAGSDEBUG) +.ENDIF + +LINKFLAGSSHLCUI_X64=/SUBSYSTEM:CONSOLE /DLL +LINKFLAGSSHL_X64=$(LINKFLAGSSHLCUI_X64) +CDEFSSLO_X64+=$(CDEFSMT_X64) $(CDEFSOBJMT_X64) +CFLAGSSLO_X64+=-MT + +STDOBJGUI_X64= +STDSLOGUI_X64= +STDOBJCUI_X64= +STDSLOCUI_X64= + +IMPLIBFLAGS_X64=-machine:X64 + +LIBPATH_X64=$(WINDOWS_SDK_HOME)/lib/x64 +LIBPATH_VC_X64=$(COMPATH)/lib/amd64 + +ADVAPI32LIB_X64=$(LIBPATH_X64)/advapi32.lib +SHELL32LIB_X64=$(LIBPATH_X64)/shell32.lib +GDI32LIB_X64=$(LIBPATH_X64)/gdi32.lib +OLE32LIB_X64=$(LIBPATH_X64)/ole32.lib +OLEAUT32LIB_X64=$(LIBPATH_X64)/oleaut32.lib +UUIDLIB_X64=$(LIBPATH_X64)/uuid.lib +WINSPOOLLIB_X64=$(LIBPATH_X64)/winspool.lib +IMM32LIB_X64=$(LIBPATH_X64)/imm32.lib +VERSIONLIB_X64=$(LIBPATH_X64)/version.lib +WINMMLIB_X64=$(LIBPATH_X64)/winmm.lib +MPRLIB_X64=$(LIBPATH_X64)/mpr.lib +WS2_32LIB_X64=$(LIBPATH_X64)/ws2_32.lib +KERNEL32LIB_X64=$(LIBPATH_X64)/kernel32.lib +USER32LIB_X64=$(LIBPATH_X64)/user32.lib +COMDLG32LIB_X64=$(LIBPATH_X64)/comdlg32.lib +COMCTL32LIB_X64=$(LIBPATH_X64)/comctl32.lib +CRYPT32LIB_X64=$(LIBPATH_X64)/crypt32.lib +GDIPLUSLIB_X64=$(LIBPATH_X64)/gdiplus.lib +DBGHELPLIB_X64=$(LIBPATH_X64)/dbghelp.lib +PROPSYSLIB_X64=$(LIBPATH_X64)/propsys.lib +MSILIB_X64=$(LIBPATH_X64)/msi.lib +DDRAWLIB_X64=$(LIBPATH_X64)/ddraw.lib +SHLWAPILIB_X64=$(LIBPATH_X64)/shlwapi.lib +URLMONLIB_X64=$(LIBPATH_X64)/urlmon.lib +WININETLIB_X64=$(LIBPATH_X64)/wininet.lib +OLDNAMESLIB_X64=$(LIBPATH_VC_X64)/oldnames.lib +MSIMG32LIB_X64=$(LIBPATH_X64)/msimg32.lib +MSVCPRT_X64=$(LIBPATH_VC_X64)/msvcprt.lib +MSVCRT_X64=$(LIBPATH_VC_X64)/msvcrt.lib + +MISC_X64=$(MISC)/x64 +OBJ_X64=$(OBJ)/x64 +SLO_X64=$(SLO)/x64 +LB_X64=$(LB)/x64 +SLB_X64=$(SLB)/x64 +L_X64=$(SOLARLIBDIR_X64) +VERSIONOBJ_X64=$(SLO_X64)/_version.obj +BIN_X64=$(BIN)/x64 +RES_X64=$(RES)/x64 +SOLARLIBDIR_X64=$(SOLARVERSION)/$(INPATH)/lib/x64 +LIB_X64:=$(LB_X64);$(SLB_X64);$(ILIB_X64) + +.IF "$(LIBTARGET)"=="" +.IF "$(OBJFILES_X64)$(IDLOBJFILES_X64)"!="" +OBJTARGET_X64=$(LB_X64)/$(TARGET).lib +.ENDIF # "$(OBJFILES_X64)$(IDLOBJFILES_X64)"!="" +.IF "$(SLOFILES_X64)$(IDLSLOFILES_x64)"!="" +SLOTARGET_X64=$(SLB_X64)/$(TARGET).lib +.ENDIF # "$(SLOFILES_X64)$(IDLSLOFILES_x64)"!="" +.ENDIF # "$(LIBTARGET)"=="" + +.IF "$(OBJFILES_X64)"!="" +.IF "$(LIBTARGET)" != "" +NOLIBOBJTARGET_X64=$(OBJFILES_X64) +.ENDIF +.ENDIF + +.IF "$(SLOFILES_X64)"!="" +.IF "$(LIBTARGET)" != "" +NOLIBSLOTARGET_X64=$(SLOFILES_X64) +.ENDIF +.ENDIF + +.IF "$(SHL1TARGET_X64)"!="" +SHL1TARGETN_X64=$(BIN_X64)/$(DLLPRE)$(SHL1TARGET_X64)$(DLLPOST) +.ENDIF +.IF "$(SHL2TARGET_X64)"!="" +SHL2TARGETN_X64=$(BIN_X64)/$(DLLPRE)$(SHL2TARGET_X64)$(DLLPOST) +.ENDIF +.IF "$(LIB1TARGET_X64)" != "" +LIB1TARGETN_X64=$(LIB1TARGET_X64) +.ENDIF +.IF "$(LIB2TARGET_X64)" != "" +LIB2TARGETN_X64=$(LIB2TARGET_X64) +.ENDIF +.IF "$(DEF1NAME_X64)"!="" +DEF1TARGETN_X64=$(MISC_X64)/$(DEF1NAME_X64).def +.ENDIF +.IF "$(DEF2NAME_X64)"!="" +DEF2TARGETN_X64=$(MISC_X64)/$(DEF2NAME_X64).def +.ENDIF + +$(SLO_X64)/%.obj : $(MISC_X64)/%.c + @echo ------------------------------ + @echo Making: $@ + -$(MKDIR) $(@:d) + @-$(MKDIR) $(MISC_X64) + @@-$(RM) $@ + @$(TYPE) $(mktmp $(CC_X64) $(USE_CFLAGS_X64) $(INCLUDE_C) $(CFLAGSCC_X64) $(CFLAGSSLO_X64) $(USE_CDEFS_X64) $(CDEFSSLO_X64) $(CFLAGSAPPEND_X64) $(CFLAGSOUTOBJ)$(SLO_X64)/$*.obj $(MISC_X64)/$*.c ) + @$(ECHONL) + $(CC_X64) @$(mktmp $(USE_CFLAGS_X64) $(INCLUDE_C) $(CFLAGSCC_X64) $(CFLAGSSLO_X64) $(USE_CDEFS_X64) $(CDEFSSLO_X64) $(CFLAGSAPPEND_X64) $(CFLAGSOUTOBJ)$(SLO_X64)/$*.obj $(MISC_X64)/$*.c ) + +.ENDIF # "$(BUILD_X64)"!="" + diff --git a/solenv/inc/settings.mk b/solenv/inc/settings.mk new file mode 100644 index 000000000000..f395fa187db8 --- /dev/null +++ b/solenv/inc/settings.mk @@ -0,0 +1,1406 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* +MKFILENAME:=SETTINGS.MK + +# smaller/greater arithmetic's like ".IF 400<=200" are an OOo extention to +# the initial dmake 4.1PL0 (unfortunately called 4.10) version and are +# tested implicitly by the construction below. +.IF $(MAKEVERSION:s/-cvs//:s/.//)<=410 +.ERROR : ; @echo Forced error: dmake version 4.11 or newer is needed! +force_dmake_to_error +.ENDIF + +.INCLUDE .IGNORE : ooo_vendor.mk + +# --- common tool makros -------------------------------------- + +.IF "$(USE_PCH)"!="" +ENABLE_PCH=TRUE +.ENDIF # "$(USE_PCH)"!="" + +.IF "$(ENABLE_PCH)"!="" && "$(BUILD_SPECIAL)"!="" +.IF "$(SOLARSRC)"=="$(SRC_ROOT)" +NETWORK_BUILD:=TRUE +.ENDIF # "$(SOLARSRC)"=="$(SRC_ROOT)" +.ENDIF # "$(ENABLE_PCH)"!="" && "$(BUILD_SPECIAL)"!="" + +.INCLUDE : unitools.mk + +.INCLUDE : minor.mk + +.INCLUDE .IGNORE : rtlbootstrap.mk + +PLATFORMID = $(RTL_OS:l)_$(RTL_ARCH:l) +EXTNAME*=$(EXTENSIONNAME)_in + +.IF "$(UPDATER)"!="" + +.IF "$(SOURCEVERSION)"!="$(WORK_STAMP)" +.ERROR : ; @echo Forced error: minor.mk in solenv/inc does not match your version! +WRONG_SOURCEVERSION +.ENDIF + +# Create $(SOLARVERSION)/$(INPATH)/inc/$(UPD)minor.mk if needed +%minor.mk : $(SOLARENV)/inc/minor.mk + @@-$(MKDIRHIER) $(SOLARVERSION)/$(INPATH)/inc + @@$(COPY) $(SOLARENV)/inc/minor.mk $(SOLARVERSION)/$(INPATH)/inc/$(UPD)minor.mk + @@$(TOUCH) $(SOLARVERSION)/$(INPATH)/inc/minormkchanged.flg +.ENDIF # "$(UPDATER)"!="" + +# Force creation of $(SOLARVERSION)/$(INPATH)/inc/ +# $(UPD)minor.mk could be empty as it's contents were already included from minor.mk +.INCLUDE : $(SOLARVERSION)/$(INPATH)/inc/$(UPD)minor.mk + +.IF "$(BSCLIENT)"=="TRUE" +.IF "$(UPDATER)"!="YES" +incorrect_settings: + @echo "#" + @echo "#" ERROR: setsolar option -bsclient used but UPDATER=YES not set! + @echo "#" + force_dmake_to_error +.ENDIF +.ENDIF + +.INCLUDE : udkversion.mk + +# --- reset defined Environments -------------------- +ASM= +AFLAGS= + + +#START JAVA + +#interpreter location +.IF "$(JAVAINTERPRETER)" == "" +.IF "$(JDK)" == "J++" +JAVAINTERPRETER=jview.exe +.ELSE +.IF "$(JDK)" == "SCAFE" +.IF "$(JDK_VERSION)" != "" +JAVAINTERPRETER=$(DEVROOT)/vcafe11/java/bin/java.exe +.ELSE +JAVAINTERPRETER=$(DEVROOT)/cafepro/java/bin/java.exe +.ENDIF +.ELSE +.IF "$(JAVACISGCJ)" == "yes" +JAVAINTERPRETER=gij +.ELSE +JAVAINTERPRETER=java +.ENDIF +.ENDIF +.ENDIF +.ENDIF + +#compiler location +.IF "$(JAVACOMPILER)" == "" +.IF "$(JDK)" == "J++" +JAVACOMPILER=jvc.exe +.ELSE +.IF "$(JDK)" == "SCAFE" +.IF "$(JDK_VERSION)" != "" +JAVACOMPILER=$(DEVROOT)/vcafe11/bin/sj.exe +.ELSE +JAVACOMPILER=$(DEVROOT)/cafepro/bin/sj.exe +.ENDIF +.ELSE +.IF "$(JAVACISGCJ)" == "yes" +JAVACOMPILER=gcj +.ELSE +JAVACOMPILER=javac +.ENDIF +.ENDIF +.ENDIF +.ENDIF + +#if javadoc is not already set +.IF "$(JAVADOC)"=="" +JAVADOC=javadoc -J-Xmx120m +.ENDIF + +#required arguments +JAVAC=$(JAVACOMPILER) +JAVAI:=$(JAVAINTERPRETER) +.IF "$(JAVACISGCJ)" == "yes" +JAVAC+=--encoding=UTF-8 -O2 -fno-assert -Wno-deprecated -C +.ENDIF +.IF "$(JDK)" != "gcj" && $(JAVACISKAFFE) != "yes" +JAVAC+=-source $(JAVA_SOURCE_VER) -target $(JAVA_TARGET_VER) +.ENDIF + +#classpath and response +.IF "$(JDK)" == "J++" +JAVACPS=/cp +.ELSE +.IF "$(JDK)" == "SCAFE" +JAVACPS=-classpath +JAVARESPONSE=TRUE +.ELSE +JAVACPS=-classpath +JAVARESPONSE= +.ENDIF +.ENDIF + +JAVAFLAGS+=$(JAVA_TARGET_FLAG) + +#END JAVA + +CDEFS= +CXXDEFS= +CDEFSCXX= +CDEFSOBJ= +CDEFSSLO= +CDEFSGUI= +CDEFSCUI= +CDEFSMT= +CDEFSPROF= +CDEFSDEBUG= +CDEFSDBGUTIL= +CDEFSOPT= + +CFLAGS= +CFLAGSCALL= +CFLAGSCXX= +CFLAGSCC= +CFLAGSOBJ= +CFLAGSSLO= +CFLAGSOBJGUIMT= +CFLAGSOBJCUIMT= +CFLAGSSLOGUIMT= +CFLAGSSLOCUIMT= +CFLAGSPROF= +CFLAGSDEBUG= +CFLAGSDBGUTIL= +CFLAGSOPT= +CFLAGSNOOPT= +CFLAGSOUTOBJ= + +CFLAGSINCXX= + +LINKFLAGS= +LINKFLAGSAPPGUI= +LINKFLAGSSHLGUI= +LINKFLAGSAPPCUI= +LINKFLAGSSHLCUI= +LINKFLAGSTACK= +LINKFLAGSPROF= +LINKFLAGSDEBUG= +LINKFLAGSOPT= +LINKFLAGSAPP= +LINKFLAGSSHL= +LINKEXTENDLINE= + +STDOBJGUI= +STDSLOGUI= +STDOBJCUI= +STDSLOCUI= +STDLIBGUIMT= +STDLIBCUIMT= +STDSHLGUIMT= +STDSHLCUIMT= +STDOBJ= +STDSLO= +STDLIB= +STDSHL= + +LIBFLAGS= + +IMPLIBMGR= +IMPLIBFLAGS= + +MAPSYM= +MAPSYMFLAGS= + +RSC= +RSCFLAGS= +RSCDEFS= +RSCLANG= + +RC= +RCFLAGS= +RCLINK= +RCLINKFLAGS= +RCSETVERSION= + +DLLPOSTFIX= + +HC= +HCFLAGS= + +MKDEP= + +AS= +BC= +COBOL= +CPP= +FOR= +PASCAL= + +BFLAGS= +COBFLAGS= +CPPFLAGS= +CXXFLAGS= +FFLAGS= +PFLAGS= +RFLAGS= + +LNT= +LNTFLAGS= +LNTFLAGSGUI= +LNTFLAGSCOM= + +# doesn't make sense +#IDLSTATICOBJS= + +E2P= +CAP= +cap= + +# not to reset because possibly taken from environment +#CC= +#CXX= +#LINK= +#LIBMGR= + + +# avoid confusion with CUE PROFILE variable... +PROFILE= + +# can be set on the command line. we shouldn't delete them! +#profile= + +# reset as setting those manually is no lonjger supported +DBGUTIL= +dbgutil= + +# =========================================================================== +# unter NT werden Variablennamen an untergeordnete makefiles UPPERCASE +# weitergereicht, aber case significant ausgewertet! +# --------------------------------------------------------------------------- + +DMAKE_WORK_DIR*:=$(subst,/,/ $(PWD)) +.IF "$(GUI_FOR_BUILD)"=="WNT" +posix_PWD:=/cygdrive/$(PWD:s/://) +.ELSE +posix_PWD:=$(PWD) +.ENDIF + + +.IF "$(TMP)"!="" +tmp*=$(TMP) +.ENDIF + +.IF "$(tmp)"!="" +TMP*=$(tmp) +.ENDIF + +.IF "$(TEMP)"!="" +temp*=$(TEMP) +.ENDIF + +.IF "$(temp)"!="" +TEMP*=$(temp) +.ENDIF + +.IF "$(DEPEND)"!="" +depend=$(DEPEND) +.ENDIF + +.IF "$(OPTIMIZE)"!="" +optimize=$(OPTIMIZE) +.ENDIF + +.IF "$(NOPT)"!="" +nopt*=$(NOPT) +.ENDIF + +.IF "$(GROUP)"!="" +group*=$(GROUP) +.ENDIF + +.IF "$(group)"!="" +GROUP*=$(group) +.ENDIF + +# override dbglevel if set manually +.IF "$(dbglevel)"!="" +DBG_LEVEL=$(dbglevel) +.ENDIF + +.IF "$(NODEBUG)"!="" +nodebug=$(NODEBUG) +.ENDIF + +.IF "$(PRODUCT)"!="" +product*=$(PRODUCT) +.ENDIF + +.IF "$(product)"!="" +PRODUCT*=$(product) +.ENDIF + +.IF "$(VERBOSE)"!="" +verbose*=$(VERBOSE) +.ENDIF + +.IF "$(verbose)"!="" +# normalize: "false" (any upper/lower case) and "0" mean FALSE, everything else means TRUE +VERBOSE_IS_FALSE:=$(or $(eq,"$(verbose:u)","FALSE" "false" ) $(eq,"$(verbose)","0" "false" )) +VERBOSE!:=$(eq,"$(VERBOSE_IS_FALSE)","t" FALSE TRUE) +.ENDIF + +.IF "$(SOLARLANG)" != "" +solarlang*=$(SOLARLANG) +.ENDIF + +.IF "$(solarlang)" != "" +SOLARLANG:=$(solarlang) +.ENDIF + +.IF "$(wall)"!="" +COMPILER_WARN_ALL=TRUE +.ENDIF # "$(wall)"!="" + +.IF "$(werror)"!="" +COMPILER_WARN_ERRORS=TRUE +.ENDIF + +#.IF "$(COMMON_BUILD)"!="" +#common_build*=$(COMMON_BUILD) +#.ENDIF +common_build:= +COMMON_BUILD:= + +.IF "$(USE_SHL_VERSIONS)"!="" +use_shl_versions*=$(USE_SHL_VERSIONS) +.ENDIF + +.IF "$(noremove)"!="" +NOREMOVE*=$(noremove) +.ENDIF + +# --- env flags not case sensitive -------------------------------- + +#.IF "$(envcflags)"!="" +ENVCFLAGS*=$(envcflags) +#.ENDIF + +#.IF "$(envcflagscxx)"!="" +ENVCFLAGSCXX*=$(envcflagscxx) +#.ENDIF + + +.IF "$(envcdefs)"!="" +ENVCDEFS*=$(envcdefs) +.ENDIF + +.IF "$(envlibflags)"!="" +ENVLIBFLAGS*=$(envlibflags) +.ENDIF + +.IF "$(envcflagsincxx)"!="" +ENVCFLAGSINCXX*=$(envcflagsincxx) +.ENDIF + +.IF "$(envlinkflags)"!="" +ENVLINKFLAGS*=$(envlinkflags) +.ENDIF + +.IF "$(envrscflags)"!="" +ENVRSCFLAGS*=$(envrscflags) +.ENDIF + +.IF "$(envrscdefs)"!="" +ENVRSCDEFS*=$(envrscdefs) +.ENDIF + +.IF "$(envrsclinkflags)"!="" +# ENVRSCLINKFLAGS*=$(envrsclinkflags) +.ENDIF + +.IF "$(envrcflags)"!="" +ENVRCFLAGS*=$(envrcflags) +.ENDIF + +.IF "$(envrclinkflags)"!="" +ENVRCLINKFLAGS*=$(envrclinkflags) +.ENDIF + +# --- set both L10N variables to keep things working --------------- + +L10N-framework=$(L10N_framework) + +# --- Parameter Einstellungen ueberpruefen und umsetzen ------------ + +# profile immer mit product +.IF "$(profile)"!="" +.IF "$(product)"=="" +product=full +.ENDIF +.ENDIF + +.IF "$(debug)"!="" +DBG_LEVEL*=1 +.ENDIF + +# Produkt auf einen Wert setzen (alles klein) +.IF "$(product)" != "" +optimize=true +.IF "$(product)" == "full" || "$(product)" == "Full" || "$(product)" == "FULL" +product!=full +.ENDIF +.IF "$(product)" == "demo" || "$(product)" == "Demo" || "$(product)" == "DEMO" +product!=demo +.ENDIF +.IF "$(product)" == "compact" || "$(product)" == "Compact" || "$(product)" == "COMPACT" +product!=compact +.ENDIF +DBG_LEVEL*=0 +.ELSE +optimize!=true +dbgutil!=true +DBG_LEVEL*=1 +USE_DEBUG_RUNTIME*=TRUE +.ENDIF + +.IF "$(debug)"!="" +.IF "$(debug)"!="D_FORCE_OPT" +optimize= +OPTIMIZE= +.ENDIF +.ENDIF + +.IF "$(nopt)"!="" +optimize= +OPTIMIZE= +.ENDIF + +# Optimierung bei FinalCheck funktioniert nicht! +.IF "$(bndchk)" != "" +optimize= +OPTIMIZE= +.ENDIF + +###################################################### +# +# sprachabh. einstellungen +# +###################################################### + +.INCLUDE : lang.mk + +.INCLUDE : postset.mk + +RSC_LANG_ISO+:=$(completelangiso) +.EXPORT : RSC_LANG_ISO + +###################################################### + +.IF "$(TARGETTYPE)"=="" +TARGETTYPE=CUI +.ENDIF + +# --- Pfade setzen ------------------------------------------------- + +# Output-Pfad +# profile has to be first for not getting the .pro extension +.IF "$(profile)"!="" +OUT=$(PRJ)/$(OUTPATH).cap +OUT_FOR_BUILD=$(PRJ)/$(OUTPATH_FOR_BUILD).cap +ROUT=$(OUTPATH).cap +.ELSE + +.IF "$(product)"!="" +OUT=$(PRJ)/$(OUTPATH).pro +OUT_FOR_BUILD=$(PRJ)/$(OUTPATH_FOR_BUILD).pro +ROUT=$(OUTPATH).pro + +.ELSE +.IF "$(profile)"!="" +OUT=$(PRJ)/$(OUTPATH).cap +OUT_FOR_BUILD=$(PRJ)/$(OUTPATH_FOR_BUILD).cap +ROUT=$(OUTPATH).cap +.ENDIF +.IF "$(dbcs)"!="" +OUT=$(PRJ)/$(OUTPATH).w +OUT_FOR_BUILD=$(PRJ)/$(OUTPATH_FOR_BUILD).w +ROUT=$(OUTPATH).w +.ENDIF +# could already be set by makefile.mk +.IF "$(OUT)" == "" +OUT*=$(PRJ)/$(OUTPATH) +OUT_FOR_BUILD*=$(PRJ)/$(OUTPATH_FOR_BUILD) +ROUT*=$(OUTPATH) +.ENDIF +.ENDIF +.ENDIF + +.IF "$(bndchk)" != "" +OUT:=$(PRJ)/$(OUTPATH).bnd +OUT_FOR_BUILD=$(PRJ)/$(OUTPATH_FOR_BUILD).bnd +ROUT=$(OUTPATH).bnd +.ENDIF +.IF "$(truetime)" != "" +OUT=$(PRJ)/$(OUTPATH).tt +OUT_FOR_BUILD=$(PRJ)/$(OUTPATH_FOR_BUILD).tt +ROUT=$(OUTPATH).tt +.ENDIF + +.IF "$(PRJ)"!="." +.IF "$(GUI)"=="WNT" +PATH_IN_MODULE:=\ + $(subst,$(normpath $(shell @+cd $(PRJ) && pwd $(PWDFLAGS)))/, $(PWD)) +.ELSE # "$(GUI)"=="WNT" +PATH_IN_MODULE:=$(subst,$(shell @+cd $(PRJ) && pwd $(PWDFLAGS))/, $(PWD)) +.ENDIF # "$(GUI)"=="WNT" +.ELSE # "$(PRJ)"!="." +PATH_IN_MODULE:= +.ENDIF # "$(PRJ)"!="." + +## common output tree +#.IF "$(common_build)"!="" +#COMMON_OUTDIR*=common +#.IF "$(no_common_build_reslib)"=="" +#common_build_reslib=true +#.ENDIF # "$(no_common_build_reslib)"=="" +#.IF "$(no_common_build_zip)"=="" +#common_build_zip=true +#.ENDIF # "$(no_common_build_zip)"=="" +#.IF "$(no_common_build_sign_jar)"=="" +#common_build_sign_jar=true +#.ENDIF # "$(no_common_build_sign_jar)"=="" +#.IF "$(no_common_build_srs)"=="" +#common_build_srs=true +#.ENDIF # "$(no_common_build_srs)"=="" +#.ELSE # "$(common_build)"!="" +COMMON_OUTDIR:=$(OUTPATH) +#.ENDIF # "$(common_build)"!="" + +LOCAL_OUT:=$(OUT) +LOCAL_OUT_FOR_BUILD:=$(OUT_FOR_BUILD) +LOCAL_COMMON_OUT:=$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(OUT)) +.EXPORT : LOCAL_OUT LOCAL_COMMON_OUT + +# --- generate output tree ----------------------------------------- + +# disable for makefiles wrapping a gnumake module +.IF "$(TARGET)"!="prj" +# As this is not part of the initial startup makefile we define an infered +# target instead of using $(OUT)/inc/myworld.mk as target name. +# (See iz62795) +$(posix_PWD)/$(OUT)/inc/%world.mk : + @$(MKOUT) $(ROUT) + @echo $(EMQ)# > $@ + +.INCLUDE : $(posix_PWD)/$(OUT)/inc/myworld.mk + +.IF "$(common_build)"!="" +$(posix_PWD)/$(LOCAL_COMMON_OUT)/inc/%world.mk : + @$(MKOUT) $(subst,$(OUTPATH),$(COMMON_OUTDIR) $(ROUT)) + @echo $(EMQ)# > $@ + +.INCLUDE : $(posix_PWD)/$(LOCAL_COMMON_OUT)/inc/myworld.mk +.ENDIF # "$(common_build)"!="" +.ENDIF # "$(TARGET)"!="prj" + +.INCLUDE .IGNORE : office.mk + +# Misc-Pfad +.IF "$(UNR)"!="" +MISCX=$(OUT)/umisc +MISC=$(OUT)/umisc +.ELSE +MISC=$(OUT)/misc +MISC_FOR_BUILD=$(OUT_FOR_BUILD)/misc +# pointing to misc in common output tree if exists +COMMONMISC={$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(MISC))} +.ENDIF + +OUTCXX=$(OUT)/cxx + +.IF "$(PACKAGE)"!="" +IDLPACKAGE:=$(PACKAGE) +IDLPACKAGENAME:=$(IDLPACKAGE:sX\X/X) +.ELSE +IDLPACKAGE=$(PRJNAME) +IDLPACKAGENAME=$(PRJNAME) +.ENDIF + +# Objekt-Pfad +OBJ=$(OUT)/obj +SLO=$(OUT)/slo +ROBJ=$(ROUT)/obj +RSLO=$(ROUT)/slo + +# Particle Path +PAR=$(OUT)/par + +# Library-Pfad +LB=$(OUT)/lib +SLB=$(OUT)/slb + +# wir haben ein ucr verzeichnis +UCR=$(OUT)/ucr + +# $(L) nur noch pfad ins solver\upd\...\lib +#L:={$(LB);$(SLB);$(ILIB)} +L=$(SOLARLIBDIR) + +#.EXPORT : SLB LB L LIB +ENVPRJ:=$(PRJ) +#todo: check PRJ is still expected to exist in environment +.EXPORT : PRJ ENVPRJ + +# Class-Path for java-classes +# obwohl der generierte Bytecode plattformunabhg. sein sollte +# generieren wir ihn ersteinmal ins abhaengige Verzeichnis +CLASSDIR=$(OUT)/class +CLASSPATH!:=.$(PATH_SEPERATOR)$(CLASSDIR)$(PATH_SEPERATOR)$(CLASSPATH) +STARJAR=java -classpath $(CLASSPATH)$(PATH_SEPERATOR)$(SOLARENV)/bin/jtools.jar com.sun.star.tool.starjar.StarJar + +STARDEP=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/javadep +.IF "$(PRJNAME)"=="sj2" +CLASSPATH!:=$(CLASSPATH:s/sj2/no/) +.ENDIF +.IF "$(PRJNAME)"=="uno" +CLASSPATH!:=$(CLASSPATH:s/uno/no/) +.ENDIF +.IF "$(PRJNAME)"=="tkt" +CLASSPATH!:=$(CLASSPATH:s/tkt/no/) +.ENDIF + +# default output directory when processing +# configuration files +PROCESSOUT*:=$(MISC) + +# Makros fuer die Librarynamen des Solar +.INCLUDE : libs.mk + +.IF "$(GUI)"=="WNT" +VERSIONOBJ=$(SLO)/_version.obj +.ENDIF + +.IF "$(GUI)"=="UNX" +VERSIONOBJ=$(SLO)/_version.o +.ENDIF + +.IF "$(GUI)"=="WNT" +WINVERSIONNAMES=$(UNIXVERSIONNAMES) +.ENDIF # "$(GUI)"=="WNT" + +.IF "$(GUI)"=="WNT" +.IF "$(COM)"=="GCC" +SHELLLIB=-lgdi32 -lshell32 -ladvapi32 -lcomdlg32 +.ELSE +SHELLLIB=gdi32.lib shell32.lib advapi32.lib comdlg32.lib +.ENDIF +.ENDIF + +# BIN-Pfad +.IF "$(UNR)"!="" +BIN=$(OUT)/ubin +.ELSE +BIN=$(OUT)/bin +.ENDIF +# pointing to misc in common output tree if exists +COMMONBIN=$(LOCAL_COMMON_OUT)/bin + +# Include-Pfad +# still without -I here s.a. target.mk INCLUDE +INC=$(PRJ)/inc +INCPCH=$(PRJ)/inc/pch +INCLOCAL=../inc +INCGUI=$(PRJ)/$(GUIBASE)/inc +INCCOM=$(OUT)/inc +INCCOMX=$(OUT)/inc +INCUNOIDL=$(INCCOM)/$(PRJNAME) +INCDEPN=. $(INCGUI) $(INCLOCAL) $(INC) $(INC)/$(PRJNAME) +.IF "$(PRJINC)"!="" +INCLOCPRJ=$(foreach,i,$(PRJINC) $i/inc) +INCDEPN+=$(INCLOCPRJ) +.ENDIF +.IF "$(INCPRE)"!="" +INCDEPN+=$(INCPRE) +.ENDIF + +# Resource-Pfad fuer .SRS + +.IF "$(common_build_srs)"!="" +SRS=$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(OUT))/srs +SRSX=$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(OUT))/srs +.ELSE # "$(common_build_srs)"!="" +SRS=$(OUT)/srs +SRSX=$(OUT)/srs +.ENDIF # "$(common_build_srs)"!="" + +# Resource-Pfad fuer .RC und .RES +RES=$(OUT)/res + +# das normale MISC wird nicht an LDMISC angepasst, stattdessen MISCX + +.IF "$(make_xl)"!="" +BIN=$(PRJ)/$(OUTPATH).xl/bin +.ENDIF + +# damit gezielt Abhaengigkeiten auf s: angegeben werden koennen + +.IF "$(common_build)"!="" +SOLARIDLDIR=$(SOLARVERSION)/common$(PROEXT)/idl +.ELSE +SOLARIDLDIR=$(SOLARVERSION)/$(INPATH)/idl +.ENDIF + +SOLARRESDIR=$(SOLARVERSION)/$(INPATH)/res +SOLARRESXDIR=$(SOLARVERSION)/$(INPATH)/res +SOLARLIBDIR=$(SOLARVERSION)/$(INPATH)/lib +SOLARLIBDIR_FOR_BUILD=$(SOLARVERSION)/$(INPATH_FOR_BUILD)/lib +SOLARJAVADIR=$(SOLARVERSION)/$(INPATH)/java +SOLARINCDIR=$(SOLARVERSION)/$(INPATH)/inc +SOLARINCXDIR=$(SOLARVERSION)/$(INPATH)/inc +.IF "$(SOLARLANG)"!="deut" +.IF "$(SOLARLANG)" != "" +SOLARINCXDIR=$(SOLARVERSION)/$(INPATH)/inc/$(SOLARLANG) +SOLARRESXDIR=$(SOLARVERSION)/$(INPATH)/res/$(SOLARLANG) +.ENDIF +.ENDIF +SOLARBINDIR:=$(SOLARVERSION)/$(INPATH_FOR_BUILD)/bin +SOLARUCRDIR=$(SOLARVERSION)/$(INPATH)/ucr +SOLARPARDIR=$(SOLARVERSION)/$(INPATH)/par +SOLARXMLDIR=$(SOLARVERSION)/$(INPATH)/xml +SOLARDOCDIR=$(SOLARVERSION)/$(INPATH)/doc +SOLARPCKDIR=$(SOLARVERSION)/$(INPATH)/pck +SOLARSDFDIR=$(SOLARVERSION)/$(INPATH)/sdf +SOLARCOMMONBINDIR=$(SOLARVERSION)/common$(PROEXT)/bin +SOLARCOMMONRESDIR=$(SOLARVERSION)/common$(PROEXT)/res +SOLARCOMMONPCKDIR=$(SOLARVERSION)/common$(PROEXT)/pck +SOLARCOMMONSDFDIR=$(SOLARVERSION)/common$(PROEXT)/sdf +.IF "$(common_build)"=="" +SOLARCOMMONBINDIR=$(SOLARBINDIR) +SOLARCOMMONRESDIR=$(SOLARRESDIR) +SOLARCOMMONPCKDIR=$(SOLARPCKDIR) +SOLARCOMMONSDFDIR=$(SOLARSDFDIR) +.ENDIF + +.EXPORT : SOLARBINDIR + +.IF "$(WITH_LANG)"!="" +.INCLUDE .IGNORE: $(L10N_MODULE)/$(COMMON_OUTDIR)$(PROEXT)/inc/localization_present.mk + +# if the l10n module exists, use split localize.sdf directly from there +.IF "$(LOCALIZATION_FOUND)"!="" && "$(LOCALIZESDF)"=="" +# still check for existence as there may be no localization yet +TRYSDF:=$(L10N_MODULE)$/$(COMMON_OUTDIR)$(PROEXT)$/misc/sdf$/$(PRJNAME)$/$(PATH_IN_MODULE)$/localize.sdf +LOCALIZESDF:=$(strip $(shell @+$(IFEXIST) $(TRYSDF) $(THEN) echo $(TRYSDF) $(FI))) +.ENDIF # "$(LOCALIZATION_FOUND)"!="" && "$(LOCALIZESDF)"=="" +# else use localize.sdf from local output tree if localization .zip exists +.IF "$(LOCALIZESDF)"=="" +LOCALSDFFILE:=$(COMMONMISC)$/$(PRJNAME)$/$(PATH_IN_MODULE)$/localize.sdf +LOCALIZESDF:=$(strip $(shell @+$(IFEXIST) $(SOLARCOMMONSDFDIR)$/$(PRJNAME).zip $(THEN) echo $(LOCALSDFFILE) $(FI))) +.IF "$(LOCALIZESDF)"=="" +LOCALSDFFILE!:= +.ENDIF # "$(LOCALIZESDF)"=="" +.ENDIF # "$(LOCALIZESDF)"=="" +# dummy target to keep the build happy. +.IF "$(LOCALIZESDF)"=="" +LOCALIZESDF:=$(COMMONMISC)$/$(PRJNAME)$/dummy$/localize.sdf +.ENDIF # "$(LOCALIZESDF)"=="" +.ENDIF # "$(WITH_LANG)"!="" + +JARDIR=$(OUT)/class + +# needs to be expanded!!! + +# extend library path for MS Compiler +.IF "$(COM)"=="MSC" +LIB:=$(LB);$(SLB);$(ILIB) +.ENDIF + +# extend library path for MinGW Compiler +.IF "$(GUI)$(COM)"=="WNTGCC" +LIB:=$(LB);$(BIN);$(ILIB) +.ENDIF + +# --- Environment-Allgemein ---------------------------------------- + +.IF "$(CPUNAME)" == "" +CPUNAME=CPUNAME_HAS_TO_BE_SET_IN_ENVIRONMENT +.ENDIF + +.IF "$(USE_DEBUG_RUNTIME)" != "" +SCPCDEFS+=-D_DEBUG_RUNTIME +.ENDIF + +.IF "$(UDK_MAJOR)"!="" +SCPDEFS+=-DUDK_MAJOR=$(UDK_MAJOR) +.ENDIF # "$(UDK_MAJOR)"!="" + +SCPDEFS+=-U$(COMID) -DCOMID=$(COMID) -DCOMNAME=$(COMNAME) -D_$(COMID) +SCPDEFS+=-DCCNUMVER=$(CCNUMVER) +.IF "$(COM)"=="GCC" +SCPDEFS+=-DSHORTSTDCPP3=$(SHORTSTDCPP3) -DSHORTSTDC3=$(SHORTSTDC3) +.ENDIF # "$(SHORTSTDCPP3)"!="" + + +UNOIDLDEFS+=-DSUPD=$(UPD) -DUPD=$(UPD) + +UNOIDLDEPFLAGS=-Mdepend=$(SOLARVER) + +UNOIDLINC+=-I. -I.. -I$(PRJ) -I$(PRJ)/inc -I$(PRJ)/$(INPATH)/idl -I$(OUT)/inc -I$(SOLARIDLDIR) -I$(SOLARINCDIR) + +CDEFS=-D$(OS) +.IF "$(GUI)" != "$(OS)" +CDEFS+=-D$(GUI) +.ENDIF +CDEFS+=-D$(GVER) -D$(COM) -D$(CPUNAME) + +.IF "$(USE_DEBUG_RUNTIME)" != "" +CDEFS+=-D_DEBUG_RUNTIME +.ENDIF + +.IF "$(CDEFS_PRESET)" != "" +CDEFS+=$(CDEFS_PRESET) +.ENDIF + +.IF "$(TIMELOG)" != "" +CDEFS+=-DTIMELOG +.ENDIF + +CDEFSCXX= +CDEFSOBJ= +.IF "$(OS)"=="IOS" +CDEFSSLO= +.ELSE +CDEFSSLO=-DSHAREDLIB -D_DLL_ +.ENDIF +CDEFSGUI=-DGUI +CDEFSCUI=-DCUI +#CDEFSMT=-DMULTITHREAD +CDEFSPROF=-DPROFILE +.IF "$(dbg_build_only)" == "" +CDEFSDEBUG=-DDEBUG +.ENDIF +CDEFSDBGUTIL=-DDBG_UTIL +CDEFSOPT=-DOPTIMIZE + +MKDEPFLAGS+=-I$(INCDEPN:s/ / -I/:s/-I-I/-I/) +MKDEPALLINC=$(SOLARINC:s/-I/ -I/) +MKDEPPREINC=-I$(PREPATH)/$(INPATH)/inc +MKDEPSOLENV=-I$(SOLARENV)/inc -I$(SOLARENV)/$(GUI)$(COMEX)/inc +MKDEPSOLVER=-I$(SOLARVERSION)/$(INPATH)/inc +MKDEPLOCAL=-I$(INCCOM) + +.IF "$(MKDEPENDALL)"!="" +MKDEPFLAGS+=$(MKDEPALLINC) +.ENDIF + +.IF "$(MKDEPENDSOLENV)"!="" +MKDEPFLAGS+=$(MKDEPSOLENV) +.ENDIF + +.IF "$(MKDEPENDPREPATH)"!="" +MKDEPFLAGS+=$(MKDEPPREINC) +.ENDIF + +.IF "$(MKDEPENDSOLVER)"!="" +MKDEPFLAGS+=$(MKDEPSOLVER) +.ENDIF +# unused - nodep should do the same now +#.IF "$(MKDEPENDLOCAL)"!="NO" +MKDEPFLAGS+=$(MKDEPLOCAL) +#.ENDIF + +BISON*=bison +YACCFLAGS*=-d + +SVIDL=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/svidl + +LDUMP2*=$(SOLARBINDIR)/ldump4 + +ZIPUPDATE=-u -j +ZIPFLAGS=$(ZIPUPDATE) +#hack for dynamic language subdirs +LANGDIR=LANGDIR + +#scplinker flags +SCPLINKFLAGS=-i $(PAR),$(SOLARPARDIR) +.IF "$(SCPLINKVERSION)"!="" +SCPLINKFLAGS+=-v $(SCPLINKVERSION) +.ENDIF # "$(SCPLINKVERSION)"!="" + +.IF "$(make_srs_deps)"!="" +RSC=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/rscdep +.ELSE # "$(make_srs_deps)"!="" +RSC=$(AUGMENT_LIBRARY_PATH) $(FLIPCMD) $(SOLARBINDIR)/rsc +.ENDIF # "$(make_srs_deps)"!="" + +.IF "$(VERBOSE)" == "TRUE" + VERBOSITY=-verbose +.ELSE + COMMAND_ECHO=@ + VERBOSITY=-quiet + ZIP_VERBOSITY=-q +.ENDIF # "$(VERBOSE)" == "TRUE" +COMPILE_ECHO_SWITCH= +COMPILE_ECHO_FILE=$(<:f) + +#new +RSCUPDVER=$(RSCREVISION) +RSCUPDVERDEF=-DUPDVER="$(RSCUPDVER)" + +RSCFLAGS=-s +RSCDEFS=-D$(GUI) -D$(GVER) -D$(COM) $(JAVADEF) + +.IF "$(BUILD_SPECIAL)"!="" +RSCDEFS+=-DBUILD_SPECIAL=$(BUILD_SPECIAL) +.ENDIF + +RSCDEFIMG*=default_images + +RSCEXTINC=. + +.IF "$(DEBUG)" != "" +RSCDEFS+= -DDEBUG +.ENDIF + +# settings for mozilla idl compiler +XPIDL=xpidl +XPIDL_LINK=xpt_link + +# alle bisher verwendeten Linker benutzen + um LIBs auf der naechsten Zeile +# weiter zu schreiben, wenn es da eine Ausnahme geben sollte, muss +# LINKEXTENDLINE compilerabhaengig definiert werden +LINKEXTENDLINE=+ + +LNT=$(DEVROOT)/lint/lint +#LNTFLAGS=+v -i$(DEVROOT)/lint\ -mL options.lnt -u +LNTFLAGS=+v -i$(DEVROOT)/lint/ -mL options.lnt -u +LNTFLAGSOUTOBJ=-os + +.IF "$(GUI)"=="WNT" +.INCLUDE : wnt.mk +.ENDIF + +.IF "$(GUI)" == "UNX" +.INCLUDE : unx.mk +.ENDIF + +DLLPOSTFIX=lo + +.IF "$(CROSS_COMPILING)" == "YES" +# Assume always cross-compiling from Unix +EXECPOST_FOR_BUILD= +.ELSE +EXECPOST_FOR_BUILD=$(EXECPOST) +.ENDIF + +.IF "$(OOO_LIBRARY_PATH_VAR)" != "" +# Add SOLARLIBDIR at the begin of a (potentially previously undefined) library +# path (LD_LIBRARY_PATH, PATH, etc.; prepending avoids fetching libraries from +# an existing office/URE installation; the ": &&" enables this to work at the +# start of a recipe line that is not prefixed by "+" as well as in the middle of +# an existing && chain: +.IF "$(CROSS_COMPILING)"=="YES" && "$(OS)"=="WNT" +# Sigh, special-case cross-compiling to Windows. Here OOO_LIBRARY_PATH_VAR is the correct one +# for the BUILD platform but SOLARSHAREDBIN is the one for Windows, i.e. "foo/bin". +AUGMENT_LIBRARY_PATH = : && \ + $(OOO_LIBRARY_PATH_VAR)=$(normpath, $(SOLARLIBDIR_FOR_BUILD))$${{$(OOO_LIBRARY_PATH_VAR):+:$${{$(OOO_LIBRARY_PATH_VAR)}}}} +AUGMENT_LIBRARY_PATH_LOCAL = : && \ + $(OOO_LIBRARY_PATH_VAR)=$(normpath, $(PWD)/$(DLLDEST)):$(normpath, $(SOLARSHAREDBIN))$${{$(OOO_LIBRARY_PATH_VAR):+:$${{$(OOO_LIBRARY_PATH_VAR)}}}} +.ELSE +AUGMENT_LIBRARY_PATH = : && \ + $(OOO_LIBRARY_PATH_VAR)=$(normpath, $(SOLARSHAREDBIN))$${{$(OOO_LIBRARY_PATH_VAR):+:$${{$(OOO_LIBRARY_PATH_VAR)}}}} +AUGMENT_LIBRARY_PATH_LOCAL = : && \ + $(OOO_LIBRARY_PATH_VAR)=$(normpath, $(PWD)/$(DLLDEST)):$(normpath, $(SOLARSHAREDBIN))$${{$(OOO_LIBRARY_PATH_VAR):+:$${{$(OOO_LIBRARY_PATH_VAR)}}}} +.ENDIF +.END + +# for multiprocess building in external modules +# allow seperate handling +EXTMAXPROCESS*=$(MAXPROCESS) + +GDBTRACE=gdb -nx --command=$(SOLARENV)/bin/gdbtrycatchtrace --args + +#use with export VALGRIND=memcheck, that method of invocation is used because +#hunspell will aslo run its own unit tests under valgrind when this variable is +#set. +.IF "$(VALGRIND)" != "" +VALGRINDTOOL=valgrind --tool=$(VALGRIND) --num-callers=50 +.IF "$(VALGRIND)" == "memcheck" +VALGRINDTOOL+=--leak-check=yes +G_SLICE*:=always-malloc +.EXPORT : G_SLICE +GLIBCXX_FORCE_NEW*:=1 +.EXPORT : GLIBCXX_FORCE_NEW +.ENDIF +.ENDIF + +IDLC*=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/idlc +REGMERGE*=$(AUGMENT_LIBRARY_PATH) $(VALGRINDTOOL) $(SOLARBINDIR)/regmerge +REGCOMPARE*=$(AUGMENT_LIBRARY_PATH) $(VALGRINDTOOL) $(SOLARBINDIR)/regcompare + +.IF "$(DEBUGREGCOMP)" != "" || "$(debugregcomp)" != "" +GDBREGCOMPTRACE=$(GDBTRACE) +.ENDIF + +REGCOMP*=$(AUGMENT_LIBRARY_PATH_LOCAL) $(GDBREGCOMPTRACE) $(SOLARBINDIR)/regcomp +CPPUMAKER*=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/cppumaker +JAVAMAKER*=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/javamaker +RDBMAKER*=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/rdbmaker +CLIMAKER*=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/climaker + +.IF "$(DEBUGCPPUNIT)" != "" || "$(debugcppunit)" != "" +GDBCPPUNITTRACE=$(GDBTRACE) +.ENDIF + +.IF "$(CROSS_COMPILING)" == "YES" +CPPUNITTESTER=\# +.ELSE +CPPUNITTESTER=$(AUGMENT_LIBRARY_PATH_LOCAL) $(GDBCPPUNITTRACE) $(VALGRINDTOOL) $(SOLARBINDIR)/cppunit/cppunittester +.ENDIF +HELPEX=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/helpex +LNGCONVEX=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/lngconvex +HELPLINKER=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/HelpLinker + +.IF "$(JAVAINTERPRETER)" == "" +JAVA*:=java +.ELSE +JAVA*:=$(JAVAINTERPRETER) +.ENDIF +.EXPORT : JAVA JAVAI + +# Define SCPCOMP without wrapper because pre2par.pl chokes on DOS style +# pathes. (See iz57443) +SCPCOMP=$(PERL) $(SOLARENV)/bin/pre2par.pl +SCPLINK=$(PERL) $(SOLARENV)/bin/par2script.pl +LZIP*=lzip + +# Note that $(CPPLCC) is oddly enough only used when $(OS)==WNT, see pstrules.mk. +# For the BUILD platform when cross-compiling (always Unix), it is called cpp.lcc +.IF "$(CROSS_COMPILING)" == "YES" +CPPLCC*=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/cpp.lcc +.ELSE +CPPLCC*=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/cpplcc +.ENDIF + +.IF "$(DISABLE_ENHANCED_COMID)"=="" +.INCLUDE : tg_compv.mk +.ELSE # "$(DISABLE_ENHANCED_COMID)"=="" +COMID=$(COM) +.ENDIF # "$(DISABLE_ENHANCED_COMID)"=="" +.IF "$(SOLAR_JAVA)"=="TRUE" +.IF "$(USE_JAVAVER)"!="" +.INCLUDE : tg_javav.mk +.ENDIF "$(USE_JAVAVER)"!="" +.ENDIF # "$(SOLAR_JAVA)"=="TRUE" + +.IF "$(COM)"=="GCC" +GXX_INCLUDE_PATH*:=$(COMPATH)/include/c++/$(CCVER) +.EXPORT : GXX_INCLUDE_PATH +CDEFS+= -DGXX_INCLUDE_PATH=$(GXX_INCLUDE_PATH) +.ENDIF + +# --- extend new environment ---------------------------------- +CDEFS+= -DSUPD=$(UPD) + +# flags to enable build with symbols; required for crashdump feature +.IF ("$(ENABLE_CRASHDUMP)"!="" && "$(ENABLE_CRASHDUMP)"!="DUMMY") || "$(ENABLE_SYMBOLS)"!="" +# if debug is enabled, this may enable less debug info than debug, so rely just on debug +.IF "$(debug)" == "" +CFLAGSENABLESYMBOLS_CC_ONLY*=$(CFLAGSENABLESYMBOLS) +CFLAGSCXX+=$(CFLAGSENABLESYMBOLS) +CFLAGSCC+=$(CFLAGSENABLESYMBOLS_CC_ONLY) +.ENDIF # "$(DEBUG)" == "" +.ENDIF # ("$(ENABLE_CRASHDUMP)"!="" && "$(ENABLE_CRASHDUMP)"!="DUMMY") || "$(ENABLE_SYMBOLS)"!="" + +.IF "$(profile)"!="" +CDEFS+= $(CDEFSPROF) +CFLAGS+= $(CFLAGSPROF) +.IF "$(WST)"!="" +LINKFLAGS=$(LINKFLAGSWST) +LINKCFLAGS=$(LINKFLAGSWST) +.ELSE +LINKFLAGSADD+=$(LINKFLAGSPROF) +.ENDIF +.ENDIF + +.IF "$(debug)"!="" +JAVAFLAGS+=$(JAVAFLAGSDEBUG) +CDEFS+= $(CDEFSDEBUG) +CFLAGS+= $(CFLAGSDEBUG) +LINKFLAGSADD+= $(LINKFLAGSDEBUG) +.ENDIF + +.IF "$(dbgutil)"!="" +CDEFS+=$(CDEFSDBGUTIL) +CFLAGS+=$(CFLAGSDBGUTIL) +RSCDEFS+=-DDBG_UTIL +.ENDIF + +.IF "$(product)"!="" +CDEFS+= -DPRODUCT -DNDEBUG +RSCDEFS+= -DPRODUCT +RSCDEFS+= -DNDEBUG +.ENDIF + +.IF "$(DBG_LEVEL)"!="" +CDEFS+=-DOSL_DEBUG_LEVEL=$(DBG_LEVEL) +RSCDEFS+=-DOSL_DEBUG_LEVEL=$(DBG_LEVEL) +.ENDIF + +.IF "$(optimize)"!="" +CDEFS+=$(CDEFSOPT) +CFLAGS+=$(CFLAGSOPT) +LINKFLAGSADD+=$(LINKFLAGSOPT) +.ELSE +CFLAGS+=$(CFLAGSNOOPT) +.ENDIF + +.IF "$(ENABLE_EXCEPTIONS)"!="" +GLOBAL_EXCEPTIONS_FLAGS+=$(CFLAGSEXCEPTIONS) +GLOBAL_EXCEPTIONS_FLAGS+=-DEXCEPTIONS_ON +.ELSE +GLOBAL_EXCEPTIONS_FLAGS+=$(CFLAGS_NO_EXCEPTIONS) +GLOBAL_EXCEPTIONS_FLAGS+=-DEXCEPTIONS_OFF +.ENDIF +# used if an object appears in the EXCEPTIONSFILES list +# see also rules.mk +LOCAL_EXCEPTIONS_FLAGS+=$(CFLAGSEXCEPTIONS) +LOCAL_EXCEPTIONS_FLAGS+=-DEXCEPTIONS_ON + +.IF "$(ENABLE_LAYOUT)" == "TRUE" +CDEFS+=-DENABLE_LAYOUT=1 +.ELSE # ENABLE_LAYOUT != TRUE +CFLAGS+=-DENABLE_LAYOUT=0 +.ENDIF # ENABLE_LAYOUT != TRUE + +.IF "$(ENABLE_LAYOUT_EXPERIMENTAL)" == "TRUE" +CDEFS+=-DENABLE_LAYOUT_EXPERIMENTAL=1 +.ELSE # ENABLE_LAYOUT_EXPERIMENTAL != TRUE +CFLAGS+=-DENABLE_LAYOUT_EXPERIMENTAL=0 +.ENDIF # ENABLE_LAYOUT_EXPERIMENTAL != TRUE + +.IF "$(ENABLE_GSTREAMER)" == "TRUE" +CDEFS+=-DGSTREAMER +.ENDIF + +# compose flags and defines for GUI +.IF "$(TARGETTYPE)"=="GUI" +CDEFS+= $(CDEFSGUI) +CFLAGSSLO+=$(CFLAGSSLOGUIMT) +CDEFSSLO+=$(CDEFSSLOMT) +LINKFLAGSAPP=$(LINKFLAGSAPPGUI) +LINKFLAGSSHL=$(LINKFLAGSSHLGUI) +STDOBJ=$(STDOBJGUI) +STDSLO=$(STDSLOGUI) + +CDEFSOBJ+= $(CDEFSMT) $(CDEFSOBJMT) +CFLAGSOBJ+=$(CFLAGSOBJGUIMT) +STDLIB=$(STDLIBGUIMT) +STDSHL=$(STDSHLGUIMT) + +.ENDIF + +# compose flags and defines for CUI +.IF "$(TARGETTYPE)" == "CUI" || "$(TARGETTYPE)"=="cui" +CDEFS+= $(CDEFSCUI) +CFLAGSSLO+=$(CFLAGSSLOCUIMT) +CDEFSSLO+=$(CDEFSSLOMT) +LINKFLAGSAPP=$(LINKFLAGSAPPCUI) +LINKFLAGSSHL=$(LINKFLAGSSHLCUI) +STDOBJ=$(STDOBJCUI) +STDSLO=$(STDSLOCUI) + +CDEFSOBJ+=$(CDEFSMT) $(CDEFSOBJMT) +CFLAGSOBJ+=$(CFLAGSOBJCUIMT) +STDLIB=$(STDLIBCUIMT) +STDSHL=$(STDSHLCUIMT) + +.ENDIF + +.EXPORT : PICSWITCH + +# fill up unresolved symbols not found else where +.IF "$(FILLUPARC)"!="" +STDLIB+=$(FILLUPARC) +STDSHL+=$(FILLUPARC) +.ENDIF # "$(FILUPARC)"!="" + +.IF "$(SOLAR_JAVA)"!="" +CDEFS+=$(JAVADEF) +.ENDIF # "$(SOLAR_JAVA)"!="" + +.INCLUDE .IGNORE: $(UPD)$(LAST_MINOR).mk + +# Once all modules on a given platform compile without warnings, the specific +# .mk file for that platform should set COMPILER_WARN_ERRORS=TRUE and no longer +# set MODULES_WITH_WARNINGS, and once no platform sets MODULES_WITH_WARNINGS any +# longer, this code can go away: +.IF "$(MODULES_WITH_WARNINGS)" == "" +COMPILER_WARN_ERRORS=TRUE +.ELSE +MODULES_WITH_WARNINGS_1 := $(foreach,i,$(MODULES_WITH_WARNINGS) .$(i).) +MODULES_WITH_WARNINGS_2 := $(subst,.$(PRJNAME)., $(MODULES_WITH_WARNINGS_1)) +.IF "$(MODULES_WITH_WARNINGS_1)" == "$(MODULES_WITH_WARNINGS_2)" +COMPILER_WARN_ERRORS=TRUE +.ENDIF +.ENDIF + +CFLAGSWARNCXX *= $(CFLAGSWARNCC) +CFLAGSWALLCXX *= $(CFLAGSWALLCC) +CFLAGSWERRCXX *= $(CFLAGSWERRCC) + +.IF "$(ENVWARNFLAGS)"=="" +.IF "$(COMPILER_WARN_ALL)"=="" +CFLAGSCC+=$(CFLAGSWARNCC) +CFLAGSCXX+=$(CFLAGSWARNCXX) +.ELSE +CFLAGSCC+=$(CFLAGSWALLCC) +CFLAGSCXX+=$(CFLAGSWALLCXX) +.ENDIF +.IF "$(COMPILER_WARN_ERRORS)"!="" && "$(EXTERNAL_WARNINGS_NOT_ERRORS)"=="" +CFLAGSCC+=$(CFLAGSWERRCC) +CFLAGSCXX+=$(CFLAGSWERRCXX) +.ENDIF +.ELSE # "$(ENVWARNFLAGS)"=="" +CFLAGSAPPEND+=$(ENVWARNFLAGS) +.ENDIF # "$(ENVWARNFLAGS)"=="" + +CDEFS+= $(ADDCDEFS) +CDEFS+= $(ENVCDEFS) +CFLAGS+= $(CFLAGSCALL) $(ENVCFLAGS) +CFLAGSCXX+= $(ENVCFLAGSCXX) +# andersrum wg. -TPxxxx +CFLAGSINCXX+:=$(ENVCFLAGSINCXX) +LIBFLAGS+= $(ENVLIBFLAGS) +LINKFLAGSADD+= $(ENVLINKFLAGS) +RSCFLAGS+= $(ENVRSCFLAGS) +RSCDEFS+= $(ENVRSCDEFS) +# RSCLINKFLAGS+= $(ENVRSCLINKFLAGS) +RCFLAGS+= $(ENVRCFLAGS) +RCLINKFLAGS+= $(ENVRCLINKFLAGS) + +LINKFLAGSRUNPATH_URELIB*= +LINKFLAGSRUNPATH_UREBIN*= +LINKFLAGSRUNPATH_OOO*= +LINKFLAGSRUNPATH_SDK*= +LINKFLAGSRUNPATH_BRAND*= +LINKFLAGSRUNPATH_OXT*= +LINKFLAGSRUNPATH_BOXT*= +LINKFLAGSRUNPATH_NONE*= + +# make sure both linker variables are set +LINKC*=$(LINK) +LINKCFLAGS*=$(LINKFLAGS) +LINKFLAGS+=$(LINKFLAGSADD) +LINKCFLAGS+=$(LINKFLAGSADD) + +#defaults for UCR HEADER +UNOUCRBASE*=UCR +UNOUCROUT*=$(OUT)/inc/$(TARGET) +INCPRE+=-I$(UNOUCROUT) +UNOUCRRDB*=$(SOLARBINDIR)/types.rdb + +# location of trustedinfo.manifest for Windows Vista +.IF "$(COM)"=="MSC" +TRUSTED_MANIFEST_LOCATION*=$(SOLARENV)/inc +.ENDIF # "$(COM)"=="MSC" + +# --- Compiler ----------------------------------------------------- +.INCLUDE : rules.mk + +# --- include typelists -------------------------------------------- + +.IF "$(COMP1TYPELIST)"!="" +.INCLUDE .IGNORE : $(MISC)/$(COMP1TYPELIST).mk +$(COMP1TYPELIST)_XML2CMPTYPES:=$(shell @$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/xml2cmp -types stdout $(MISC)/$(COMP1TYPELIST)$($(WINVERSIONNAMES)_MAJOR).xml) +.ENDIF + +.IF "$(COMP2TYPELIST)"!="" +.INCLUDE .IGNORE : $(MISC)/$(COMP2TYPELIST).mk +$(COMP2TYPELIST)_XML2CMPTYPES:=$(shell @$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/xml2cmp -types stdout $(MISC)/$(COMP2TYPELIST)$($(WINVERSIONNAMES)_MAJOR).xml) +.ENDIF + +.IF "$(COMP3TYPELIST)"!="" +.INCLUDE .IGNORE : $(MISC)/$(COMP3TYPELIST).mk +$(COMP3TYPELIST)_XML2CMPTYPES:=$(shell @$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/xml2cmp -types stdout $(MISC)/$(COMP3TYPELIST)$($(WINVERSIONNAMES)_MAJOR).xml) +.ENDIF + +.IF "$(COMP4TYPELIST)"!="" +.INCLUDE .IGNORE : $(MISC)/$(COMP4TYPELIST).mk +$(COMP4TYPELIST)_XML2CMPTYPES:=$(shell @$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/xml2cmp -types stdout $(MISC)/$(COMP4TYPELIST)$($(WINVERSIONNAMES)_MAJOR).xml) +.ENDIF + +.IF "$(COMP5TYPELIST)"!="" +.INCLUDE .IGNORE : $(MISC)/$(COMP5TYPELIST).mk +$(COMP5TYPELIST)_XML2CMPTYPES:=$(shell @$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/xml2cmp -types stdout $(MISC)/$(COMP5TYPELIST)$($(WINVERSIONNAMES)_MAJOR).xml) +.ENDIF + +.IF "$(COMP6TYPELIST)"!="" +.INCLUDE .IGNORE : $(MISC)/$(COMP6TYPELIST).mk +$(COMP6TYPELIST)_XML2CMPTYPES:=$(shell @$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/xml2cmp -types stdout $(MISC)/$(COMP6TYPELIST)$($(WINVERSIONNAMES)_MAJOR).xml) +.ENDIF + +.IF "$(COMP7TYPELIST)"!="" +.INCLUDE .IGNORE : $(MISC)/$(COMP7TYPELIST).mk +$(COMP7TYPELIST)_XML2CMPTYPES:=$(shell @$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/xml2cmp -types stdout $(MISC)/$(COMP7TYPELIST)$($(WINVERSIONNAMES)_MAJOR).xml) +.ENDIF + +.IF "$(COMP8TYPELIST)"!="" +.INCLUDE .IGNORE : $(MISC)/$(COMP8TYPELIST).mk +$(COMP8TYPELIST)_XML2CMPTYPES:=$(shell @$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/xml2cmp -types stdout $(MISC)/$(COMP8TYPELIST)$($(WINVERSIONNAMES)_MAJOR).xml) +.ENDIF + +.IF "$(COMP9TYPELIST)"!="" +.INCLUDE .IGNORE : $(MISC)/$(COMP9TYPELIST).mk +$(COMP9TYPELIST)_XML2CMPTYPES:=$(shell @$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/xml2cmp -types stdout $(MISC)/$(COMP9TYPELIST)$($(WINVERSIONNAMES)_MAJOR).xml) +.ENDIF + +# some place to define these jars for SO environment +XML_APIS_JAR*=$(SOLARBINDIR)/xml-apis.jar +XERCES_JAR*=$(SOLARBINDIR)/xercesImpl.jar + +.IF "$(SYSTEM_CPPUNIT)" != "YES" +CPPUNIT_CFLAGS = +.END + +COMPONENTPREFIX_URE_NATIVE = vnd.sun.star.expand:$$URE_INTERNAL_LIB_DIR/ +COMPONENTPREFIX_URE_JAVA = vnd.sun.star.expand:$$URE_INTERNAL_JAVA_DIR/ +.IF "$(OS)" == "WNT" +COMPONENTPREFIX_BASIS_NATIVE = vnd.sun.star.expand:$$BRAND_BASE_DIR/program/ +.ELSE +COMPONENTPREFIX_BASIS_NATIVE = vnd.sun.star.expand:$$OOO_BASE_DIR/program/ +.END +COMPONENTPREFIX_BASIS_JAVA = vnd.sun.star.expand:$$OOO_BASE_DIR/program/classes/ +COMPONENTPREFIX_BASIS_PYTHON = vnd.openoffice.pymodule: +COMPONENTPREFIX_INBUILD_NATIVE = \ + vnd.sun.star.expand:$$OOO_INBUILD_SHAREDLIB_DIR/ +COMPONENTPREFIX_INBUILD_JAVA = vnd.sun.star.expand:$$OOO_INBUILD_JAR_DIR/ +COMPONENTPREFIX_EXTENSION = ./ + +# workaround for strange dmake bug: +# if the previous block was a rule or a target, "\#" isn't recognized +# as an escaped "#". if it was an assignment, escaping works... +some_unique_variable_name:=1 diff --git a/solenv/inc/shlinfo.rc b/solenv/inc/shlinfo.rc new file mode 100644 index 000000000000..5896f2b55c12 --- /dev/null +++ b/solenv/inc/shlinfo.rc @@ -0,0 +1,77 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#define VER_FIRSTYEAR 2010 + +#include <windows.h> +#include "version.hrc" + +// ----------------------------------------------------------------------- +// version information +// ----------------------------------------------------------------------- + +VS_VERSION_INFO VERSIONINFO +#ifndef SUBVERSION + FILEVERSION VERSION, 0, VERVARIANT, VER_COUNT + PRODUCTVERSION VERSION, 0, VERVARIANT, VER_COUNT +#else + FILEVERSION VERSION, SUBVERSION, VERVARIANT, VER_COUNT + PRODUCTVERSION VERSION, SUBVERSION, VERVARIANT, VER_COUNT +#endif + FILEFLAGSMASK 0x3F + FILEFLAGS +#if defined(DEBUG) + VS_FF_DEBUG | +#endif +#ifdef VER_PREL + VS_FF_PRERELEASE | +#endif + 0 + FILEOS VOS_NT_WINDOWS32 + FILETYPE VFT_APP + { + BLOCK "StringFileInfo" + { + BLOCK "040904E4" + { + // International StringTable + VALUE "CompanyName", "The Document Foundation\0" + VALUE "FileVersion", PPS(VER_LEVEL) "\0" + VALUE "OriginalFilename", PPS(ORG_NAME) "\0" + VALUE "InternalName", PPS(INTERNAL_NAME) "\0" + VALUE "LegalCopyright", S_CRIGHT " The Document Foundation\0" + ADDITIONAL_VERINFO1 + ADDITIONAL_VERINFO2 + ADDITIONAL_VERINFO3 + } + } + + BLOCK "VarFileInfo" + { + VALUE "Translation", 0x0409, 1252 + } + } diff --git a/solenv/inc/startup/OS2/macros.mk b/solenv/inc/startup/OS2/macros.mk new file mode 100644 index 000000000000..2f1447e6e714 --- /dev/null +++ b/solenv/inc/startup/OS2/macros.mk @@ -0,0 +1,30 @@ +# Define additional OS/2 specific macros. +# + +# Process release-specific refinements, if any. +# YD .INCLUDE .NOINFER .IGNORE : $(INCFILENAME:d)$(OSRELEASE)$/macros.mk + +# Directory entries are case incensitive +.DIRCACHERESPCASE *:= no + +# tmp is already imported - use it! +TMPDIR *= $(TMP) + +# Applicable suffix definitions +A *:= .lib # Libraries +E *:= .exe # Executables +F *:= .for # Fortran +O *:= .obj # Objects +P *:= .pas # Pascal +S *:= .asm # Assembler sources +V *:= # RCS suffix + +.MKSARGS *:= yes +RM *= $(ROOTDIR)$/bin$/rm +MV *= $(ROOTDIR)$/bin$/mv +DIVFILE *= $(TMPFILE:s,/,${__.DIVSEP-sh-${USESHELL}}) +__.DIVSEP-sh-yes !:= \\\ +__.DIVSEP-sh-no !:= \\ + +NAMEMAX = 256 + diff --git a/solenv/inc/startup/Readme b/solenv/inc/startup/Readme new file mode 100644 index 000000000000..63a023d10d3e --- /dev/null +++ b/solenv/inc/startup/Readme @@ -0,0 +1,6 @@ + +here are some hints about our use of the startup directory. + +the .INCLUDEDIRS line in startup.mk gives you the oportunity of switching +to your own set of central makefiles. + diff --git a/solenv/inc/startup/startup.mk b/solenv/inc/startup/startup.mk new file mode 100644 index 000000000000..da4f38e5e5ad --- /dev/null +++ b/solenv/inc/startup/startup.mk @@ -0,0 +1,107 @@ +# This is the root DMAKE startup file. +# +# Definitions common to all environments are given at the root. +# Definitions parameterized at the root have their parameters specified +# in sub-makefiles which are included based on the values of the three +# make variables: +# +# OS - core operating system flavour +# +# See the file 'summary', found in this directory for a list of +# environments supported by this release. + +# Disable warnings for macros given on the command line but redefined here. +__.silent !:= $(.SILENT) # Preserve user's .SILENT flag +.SILENT !:= yes +.NOTABS !:= yes +.ERROR : + @echo '---* $(MKFILENAME) *---' + +# Define the directory separator string. +/ *= $(DIRSEPSTR) + +.IMPORT .IGNORE : .EVERYTHING + +.IF "$(TNR)" == "" + +CALLMACROS:=$(MAKEMACROS) +.EXPORT : CALLMACROS + +CALLTARGETS=$(MAKETARGETS) +.ENDIF # "$(TNR)" == "" + +.INCLUDEDIRS : $(DMAKE_INC) $(SOLARVERSION)$/$(INPATH)$/inc $(SOLARENV)$/inc + +# Grab key definitions from the environment +# .IMPORT .IGNORE : OS TMPDIR UPD INPATH OUTPATH GUI COM EX CLASSPATH PRODUCT GUIBASE SOLARENV SOLARVER GUIENV CPU CPUNAME GVER COMPATH LIB INCLUDE TR SORT UNIQ ROOTDIR SED AWK TOUCH IENV ILIB PRODUCT_ENV COMEX UPD BUILD DEVROOT VCL SO3 ENVCFLAGS + +.IF "$(OS)" == "" || "$(OS)" == "Windows_NT" +.ERROR : ; @echo Forced error: Environment variable OS has to be set for OOo build! +OS_variable_needed +.ENDIF + +# Customize macro definitions based on seting of OS. +# This must come before the default macro definitions which follow. +.IF "$(OS_FOR_BUILD)" == "WNT" +.INCLUDE: $(INCFILENAME:d)wnt/macros.mk +.END + +# ----------------- Default Control Macro definitions ----------------------- +# Select appropriate defaults for basic macros +MAKE *= $(MAKECMD) $(MFLAGS) +TMPDIR *:= $/tmp +DIVFILE *= $(TMPFILE) + +MAXLINELENGTH = 65530 + +# Recipe execution configuration +SHELL := $(OOO_SHELL) +SHELLFLAGS := -c +SHELLMETAS := !"\#$$%&'()*;<=>?[\]`{{|}}~ + # the colon (":") utility is typically only available as a shell built-in, + # so it should be included in SHELLMETAS; however, this would result in very + # many false positives on Windows where ":" is used in drive letter notation +GROUPSHELL := $(SHELL) +GROUPFLAGS := +GROUPSUFFIX := + +# Intermediate target removal configuration +RM *:= rm +RMFLAGS *= -f +RMTARGET *= $< + +# Default recipe that is used to remove intermediate targets. +.REMOVE :; #echo dummy remove #$(RM) $(RMFLAGS) $(RMTARGET) +#.REMOVE :; echo $(RM) $(RMFLAGS) $(RMTARGET) + +# Directory caching configuration. +.DIRCACHE *:= yes +.DIRCACHERESPCASE *:= yes + +# Define the special NULL Prerequisite +NULLPRQ *:= __.NULLPRQ + +# Primary suffixes in common use +E *:= # Executables + +# Other Compilers, Tools and their flags +MV *:= mv # File rename command + + +# Finally, define the default construction strategy +.ROOT .PHONY .NOSTATE .SEQUENTIAL :- .INIT .TARGETS .DONE; +.INIT .DONE .PHONY: $(NULLPRQ); + +# Define the NULL Prerequisite as having no recipe. +$(NULLPRQ) .PHONY :; + +# Reset warnings back to previous setting. +.SILENT !:= $(__.silent) + +# Check for a Local project file, gets parsed before user makefile. +.INCLUDE .IGNORE .NOINFER: "project.mk" + +.MAKEFILES :- makefile.mk MAKEFILE.MK $(CONFIG_PROJECT)$/makefile.rc $(SOLARENV)$/inc$/found_no.mk + +LANG=C +.EXPORT : LANG diff --git a/solenv/inc/startup/summary b/solenv/inc/startup/summary new file mode 100644 index 000000000000..4ae18860da41 --- /dev/null +++ b/solenv/inc/startup/summary @@ -0,0 +1,3 @@ +The following is a summary of the supported dmake environments. When you +issue the build command 'dmake tag' where tag is the target environment it +will build one of these by default. diff --git a/solenv/inc/startup/wnt/macros.mk b/solenv/inc/startup/wnt/macros.mk new file mode 100644 index 000000000000..391c1a9145d4 --- /dev/null +++ b/solenv/inc/startup/wnt/macros.mk @@ -0,0 +1,24 @@ +# Define additional Windows-specific settings. +# + +# This is a no-op for native Windows dmake +.WINPATH !:= yes + +# Directory cache configuration. +.DIRCACHE *:= no + +# Applicable suffix definitions +E *:= .exe # Executables + +# This is hopefully not used. Only in: dmake/msdos/spawn.c +# .MKSARGS *:= yes + DIVFILE *= $(TMPFILE:s,/,${__.DIVSEP-sh-${USESHELL}}) + RM *= $/bin$/rm + MV *= $/bin$/mv + __.DIVSEP-sh-yes *:= \\\ + __.DIVSEP-sh-no *:= \\ + DIRSEPSTR :=/ + +# Does not respect case of filenames. +.DIRCACHERESPCASE := no +NAMEMAX = 256 diff --git a/solenv/inc/starview.hid b/solenv/inc/starview.hid new file mode 100644 index 000000000000..54474c566b99 --- /dev/null +++ b/solenv/inc/starview.hid @@ -0,0 +1,304 @@ +#include <stdio.h> + +#define leer 0 + +#define application 1 +#define Application 1 +#define APPLICATION 1 +#define resource 2 +#define Resource 2 +#define RESOURCE 2 +#define string 3 +#define String 3 +#define STRING 3 +#define icon 4 +#define Icon 4 +#define ICON 4 +#define bitmap 5 +#define Bitmap 5 +#define BITMAP 5 +#define pointer 6 +#define Pointer 6 +#define POINTER 6 +#define brush 7 +#define Brush 7 +#define BRUSH 7 +#define color 8 +#define Color 8 +#define COLOR 8 +#define font 9 +#define Font 9 +#define FONT 9 +#define pen 10 +#define Pen 10 +#define PEN 10 +#define mapmode 11 +#define MapMode 11 +#define MAPMODE 11 +#define accel 12 +#define Accel 12 +#define ACCEL 12 +#define accelitem 13 +#define AccelItem 13 +#define ACCELITEM 13 +#define menu 14 +#define Menu 14 +#define MENU 14 +#define menuitem 15 +#define MenuItem 15 +#define MENUITEM 15 +#define outputdevice 16 +#define OutputDevice 16 +#define OUTPUTDEVICE 16 +#define keycode 17 +#define KeyCode 17 +#define KEYCODE 17 +#define time 18 +#define Time 18 +#define TIME 18 +#define date 19 +#define Date 19 +#define DATE 19 +#define international 20 +#define International 20 +#define INTERNATIONAL 20 +#define image 21 +#define Image 21 +#define IMAGE 21 +#define imagelist 22 +#define ImageList 22 +#define IMAGELIST 22 +#define messbox 23 +#define MessBox 23 +#define MESSBOX 23 +#define infobox 24 +#define InfoBox 24 +#define INFOBOX 24 +#define warningbox 25 +#define WarningBox 25 +#define WARNINGBOX 25 +#define errorbox 26 +#define ErrorBox 26 +#define ERRORBOX 26 +#define querybox 27 +#define QueryBox 27 +#define QUERYBOX 27 +#define window 28 +#define Window 28 +#define WINDOW 28 +#define syswindow 29 +#define SysWindow 29 +#define SYSWINDOW 29 +#define workwin 30 +#define WorkWin 30 +#define WORKWIN 30 +#define mdiwindow 31 +#define MdiWindow 31 +#define MDIWINDOW 31 +#define floatingwindow 32 +#define FloatingWindow 32 +#define FLOATINGWINDOW 32 +#define dialog 33 +#define Dialog 33 +#define DIALOG 33 +#define modelessdialog 34 +#define ModelessDialog 34 +#define MODELESSDIALOG 34 +#define modaldialog 35 +#define ModalDialog 35 +#define MODALDIALOG 35 +#define systemdialog 36 +#define SystemDialog 36 +#define SYSTEMDIALOG 36 +#define pathdialog 37 +#define PathDialog 37 +#define PATHDIALOG 37 +#define filedialog 38 +#define FileDialog 38 +#define FILEDIALOG 38 +#define printersetupdialog 39 +#define PrinterSetupDialog 39 +#define PRINTERSETUPDIALOG 39 +#define printdialog 40 +#define PrintDialog 40 +#define PRINTDIALOG 40 +#define colordialog 41 +#define ColorDialog 41 +#define COLORDIALOG 41 +#define fontdialog 42 +#define FontDialog 42 +#define FONTDIALOG 42 +#define control 43 +#define Control 43 +#define CONTROL 43 +#define button 44 +#define Button 44 +#define BUTTON 44 +#define pushbutton 45 +#define PushButton 45 +#define PUSHBUTTON 45 +#define okbutton 46 +#define OkButton 46 +#define OKButton 46 +#define OKBUTTON 46 +#define cancelbutton 47 +#define CancelButton 47 +#define CANCELBUTTON 47 +#define helpbutton 48 +#define HelpButton 48 +#define HELPBUTTON 48 +#define imagebutton 49 +#define ImageButton 49 +#define IMAGEBUTTON 49 +#define menubutton 50 +#define MenuButton 50 +#define MENUBUTTON 50 +#define morebutton 51 +#define MoreButton 51 +#define MOREBUTTON 51 +#define spinbutton 52 +#define SpinButton 52 +#define SPINBUTTON 52 +#define radiobutton 53 +#define RadioButton 53 +#define RADIOBUTTON 53 +#define checkbox 54 +#define CheckBox 54 +#define CHECKBOX 54 +#define tristatebox 55 +#define TriStateBox 55 +#define TRISTATEBOX 55 +#define edit 56 +#define Edit 56 +#define EDIT 56 +#define multilineedit 57 +#define MultiLineEdit 57 +#define MULTILINEEDIT 57 +#define combobox 58 +#define ComboBox 58 +#define COMBOBOX 58 +#define listbox 59 +#define ListBox 59 +#define LISTBOX 59 +#define multilistbox 60 +#define MultiListBox 60 +#define MULTILISTBOX 60 +#define text 61 +#define Text 61 +#define TEXT 61 +#define fixedline 62 +#define FixedLine 62 +#define FIXEDLINE 62 +#define fixedbitmap 63 +#define FixedBitmap 63 +#define FIXEDBITMAP 63 +#define fixedimage 64 +#define FixedImage 64 +#define FIXEDIMAGE 64 +#define fixedicon 65 +#define FixedIcon 65 +#define FIXEDICON 65 +#define groupBox 66 +#define GroupBox 66 +#define GROUPBOX 66 +#define scrollbar 67 +#define ScrollBar 67 +#define SCROLLBAR 67 +#define scrollbarbox 68 +#define ScrollBarBox 68 +#define SCROLLBARBOX 68 +#define splitter 69 +#define Splitter 69 +#define SPLITTER 69 +#define splitwindow 70 +#define SplitWindow 70 +#define SPLITWINDOW 70 +#define spinfield 71 +#define SpinField 71 +#define SPINFIELD 71 +#define patternfield 72 +#define PatternField 72 +#define PATTERNFIELD 72 +#define numericfield 73 +#define NumericField 73 +#define NUMERICFIELD 73 +#define metricfield 74 +#define MetricField 74 +#define METRICFIELD 74 +#define currencyfield 75 +#define CurrencyField 75 +#define CURRENCYFIELD 75 +#define datefield 76 +#define DateField 76 +#define DATEFIELD 76 +#define timefield 77 +#define TimeField 77 +#define TIMEFIELD 77 +#define patternbox 78 +#define PatternBox 78 +#define PATTERNBOX 78 +#define numericbox 79 +#define NumericBox 79 +#define NUMERICBOX 79 +#define metricbox 80 +#define MetricBox 80 +#define METRICBOX 80 +#define currencybox 81 +#define CurrencyBox 81 +#define CURRENCYBOX 81 +#define datebox 82 +#define DateBox 82 +#define DATEBOX 82 +#define timebox 83 +#define TimeBox 83 +#define TIMEBOX 83 +#define toolboxitem 84 +#define ToolBoxItem 84 +#define TOOLBOXITEM 84 +#define toolbox 85 +#define ToolBox 85 +#define TOOLBOX 85 +#define dockingwindow 86 +#define DockingWindow 86 +#define DOCKINGWINDOW 86 +#define statusbar 87 +#define StatusBar 87 +#define STATUSBAR 87 +#define tabpage 88 +#define TabPage 88 +#define TABPAGE 88 +#define tabcontrol 89 +#define TabControl 89 +#define TABCONTROL 89 +#define tabdialog 90 +#define TabDialog 90 +#define TABDIALOG 90 +#define tabcontrolitem 91 +#define TabControlItem 91 +#define TABCONTROLITEM 91 +#define treelistbox 92 +#define TreeListBox 92 +#define TREELISTBOX 92 +#define stringarray 93 +#define StringArray 93 +#define STRINGARRAY 93 +/* MH and OG */ +#define fixedtext 94 +#define FixedText 94 +#define FIXEDTEXT 94 +#define pageitem 95 +#define PageItem 95 +#define PAGEITEM 95 +#define accelerator 96 +#define Accelerator 96 +#define ACCELERATOR 96 +#define acceleratoritem 97 +#define AcceleratorItem 97 +#define ACCELERATORITEM 97 + +#define SfxStyleFamilies 98 +#define SfxStyleFamilyItem 99 +#define SfxSlotInfo 100 + +#define define 127 + diff --git a/solenv/inc/target.mk b/solenv/inc/target.mk new file mode 100644 index 000000000000..4ef0a232a1f7 --- /dev/null +++ b/solenv/inc/target.mk @@ -0,0 +1,2076 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +MKFILENAME:=TARGET.MK + +# ------------------------------------------------------------------ +# INCLUDE-Path +# ------------------------------------------------------------------ + +.IF "$(VISIBILITY_HIDDEN)" != "" +.IF "$(COMNAME)" == "gcc3" && "$(HAVE_GCC_VISIBILITY_FEATURE)" == "TRUE" +CFLAGS += -fvisibility=hidden +.ELIF "$(COMNAME)" == "sunpro5" && "$(CCNUMVER)" >= "00050005" +CFLAGS += -xldscope=hidden +.ENDIF +.ENDIF + +.IF "$(TARGET)"=="" +target_empty=warn_target_empty +.ENDIF + +# all use solarinc +# no standalone -I flags!! +INCEXT*=. +INCPRE*=. +INCPOST*=. +.IF "$(BOOTSTRAP_SERVICE)"!="TRUE" && "$(NO_OFFUH)"=="" +UNOINCLUDES=$(SOLARINCDIR)/udkapi -I$(SOLARINCDIR)/offapi -I$(SOLARINCDIR)/oovbaapi +.ENDIF # "$(BOOTSTRAP_SERVICE)"!="TRUE" && "$(NO_OFFUH)"=="" +SOLARINC+=$(JDKINCS) +# make sure INCLUDE isn't set +INCLUDE:= +.EXPORT : INCLUDE +.IF "$(PRJINC)"!="" +INCLUDE!:=-I. $(INCPRE:^"-I":s/-I-I/-I/) -I$(INCLOCAL) $(INCLOCPRJ:^"-I":s/-I-I/-I/) -I$(INCPCH) -I$(INC) -I$(INCGUI) -I$(INCCOM) $(SOLARINC) $(null,$(UNOINCLUDES) $(NULL) -I$(UNOINCLUDES)) -I$(INCEXT) -I$(PRJ)/res -I$(INCPOST) +.ELSE # "$(PRJINC)"!="" +INCLUDE!:=-I. $(INCPRE:^"-I":s/-I-I/-I/) -I$(INCLOCAL) -I$(INCPCH) -I$(INC) -I$(INCGUI) -I$(INCCOM) $(SOLARINC) $(null,$(UNOINCLUDES) $(NULL) -I$(UNOINCLUDES)) -I$(INCEXT) -I$(PRJ)/res -I$(INCPOST) +.ENDIF # "$(PRJINC)"!="" +INCLUDE_C=$(subst,/stl$(SPACECHAR),dont_use_stl$(SPACECHAR) $(INCLUDE)) +.EXPORT : LIB +# --- Compiler ----------------------------------------------------- + +.IF "$(RC_SUBDIRS)"!="" +SUBDIRS:=$(RC_SUBDIRS) +SUBDIRSDEPS=$(RC_SUBDIRSDEPS) +.ENDIF + +.INCLUDE : pstrules.mk + +.IF "$(YACCTARGET)"!="" +.INCLUDE : tg_yxx.mk +.ENDIF # "$(YACCTARGET)"!="" + +.IF "$(nodep)"=="" + +.IF "$(L10N_framework)"=="" +.IF "$(DEPOBJFILES)"!="" +DEPCOLLECT_SLO+:=$(foreach,i,$(DEPOBJFILES) $(eq,$i,$(subst,$(SLO),ttt $i) $(NULL) $(subst,$(SLO)/,not_existing/s_ $(i:s/.obj/.dpcc/)))) +DEPCOLLECT_OBJ+:=$(foreach,i,$(DEPOBJFILES) $(eq,$i,$(subst,$(OBJ),ttt $i) $(NULL) $(subst,$(OBJ)/,not_existing/o_ $(i:s/.obj/.dpcc/)))) +.ENDIF # "$(DEPOBJFILES)"!="" +# point to not existing directory as there is no creation intended anyway and +# stat call looks faster +DEPCOLLECT_SLO+:=$(subst,$(SLO)/,not_existing/s_ $(SLOFILES:s/.obj/.dpcc/)) +DEPCOLLECT_OBJ+:=$(subst,$(OBJ)/,not_existing/o_ $(OBJFILES:s/.obj/.dpcc/)) +.ENDIF # "$(L10N_framework)"=="" +DEPFILESx+:=$(subst,$(PAR),$(MISC) $(ALLPARFILES:s/.par/.dpsc/)) +.IF "$(L10N_framework)"=="" +.IF "$(RCFILES)"!="" +.IF "$(RESNAME)"!="" +DEPFILESx+:=$(MISC)/$(RESNAME).dpcc +.ELSE # "$(RESNAME)"!="" +DEPFILESx+:=$(MISC)/$(TARGET).dprc +.ENDIF # "$(RESNAME)"!="" +.ENDIF # "$(RCFILES)"!="" +.ENDIF # "$(L10N_framework)"=="" +DEPFILES:=$(uniq $(DEPFILESx)) +DEPCOLLECT_SLO!:=$(strip $(uniq $(DEPCOLLECT_SLO))) +.IF "$(DEPCOLLECT_SLO)"!="" +DEPFILE_SLO+:=$(MISC)/all_$(TARGET).dpslo +.ENDIF # "$(DEPCOLLECT_SLO)"!="" +DEPCOLLECT_OBJ!:=$(strip $(uniq $(DEPCOLLECT_OBJ))) +.IF "$(DEPCOLLECT_OBJ)"!="" +DEPFILE_OBJ+:=$(MISC)/all_$(TARGET).dpobj +.ENDIF # "$(DEPCOLLECT_OBJ)"!="" +.ENDIF # "$(nodep)"=="" + +.IF "$(depend)" == "" + +# ------- +# - ALL - +# ------- + +# with VCL no resources are appended to the application +APP1RES= +APP2RES= +APP3RES= +APP4RES= +APP5RES= +APP6RES= +APP7RES= +APP8RES= +APP9RES= +# unfortunatly there are some applications which don't VCL resources but have +# resources of their own +.IF "$(APP1NOSVRES)" != "" +APP1RES=$(APP1NOSVRES) +.ENDIF +.IF "$(APP2NOSVRES)" != "" +APP2RES=$(APP2NOSVRES) +.ENDIF +.IF "$(APP3NOSVRES)" != "" +APP3RES=$(APP3NOSVRES) +.ENDIF + +.IF "$(NO_APP)"!="" +APP1TARGET= +APP2TARGET= +APP3TARGET= +APP4TARGET= +APP5TARGET= +APP6TARGET= +APP7TARGET= +APP8TARGET= +APP9TARGET= +.ENDIF + +.IF "$(IDLFILES)"!="" + +URDFILES+=$(foreach,i,$(IDLFILES:s/.idl/.urd/:f) $(OUT)/ucr/$(IDLPACKAGE)/$i) +UNOIDLTARGETS+=$(URDFILES) + +.IF "$(URDFILES)"!="" +LOCALDBTARGET=$(OUT)/ucr/$(TARGET).db +.ENDIF + +.IF "$(URDDOC)" != "" +URDDOCFILES+=$(foreach,i,$(IDLFILES:s/.idl/.urd/:f) $(OUT)/ucrdoc/$(IDLPACKAGE)/$i) +UNOIDLTARGETS+=$(URDDOCFILES) + +.IF "$(URDDOCFILES)"!="" +LOCALDOCDBTARGET=$(OUT)/ucrdoc/$(TARGET).db +.ENDIF + +.ENDIF # "$(URDDOC)" != "" + +.ENDIF # "$(IDLFILES)"!="" + +.IF "$(UNOIDLDBFILES)"!="" +UNOIDLDBTARGET=$(OUT)/ucr/$(PRJNAME).db +.IF "$(URDDOC)" != "" +UNOIDLDBDOCFILES:=$(subst,/ucr/,/ucrdoc/ $(UNOIDLDBFILES)) +UNOIDLDBDOCTARGET=$(OUT)/ucrdoc/$(PRJNAME)_doc.db +.IF "$(UNOIDLDBREGS)"!="" +UNOIDLDBDOCREGS=$(foreach,i,$(UNOIDLDBREGS) $(i:d)$(i:b)_doc$(i:e)) +.ENDIF # "$(UNOIDLDBREGS)"!="" +.ENDIF # "$(URDDOC)" != "" +.ENDIF # "$(UNOIDLDBFILES)"!="" + +.IF "$(IDLFILES)"!="" +.IF "$(PACKAGE)"!="" +IDLDIRS=$(SOLARIDLDIR)/$(PACKAGE) +.ELSE # "$(PACKAGE)"!="" +IDLDIRS=$(SOLARIDLDIR) +.ENDIF # "$(PACKAGE)"!="" + +.IF "$(LOCALIDLFILES)$(EXTERNIDLFILES)"!="" +.IF "$(EXTERNIDLFILES)"!="" +DEPIDLFILES:=$(foreach,i,$(IDLFILES) $(IDLDIRS)/$i) +.ELSE # "$(EXTERNIDLFILES)"!="" +DEPIDLFILES:=$(IDLFILES) +.ENDIF # "$(EXTERNIDLFILES)"!="" +.ELSE # "$(LOCALIDLFILES)$(EXTERNIDLFILES)"!="" +.IF "$(GUI)"=="WNT" +DEPIDLFILES:=$(foreach,i,$(IDLFILES) $(!null,$(shell @$(FIND) . -name $i) $i $(shell @($(FIND) $(IDLDIRS) -name $(i:f)) | $(SED) s/\//\\/g ))) +.ELSE # "$(GUI)"=="WNT" +DEPIDLFILES:=$(foreach,i,$(IDLFILES) $(!null,$(shell @$(FIND) . -name $i -print) $i $(shell @$(FIND) $(IDLDIRS) -name $(i:f) -print ) )) +.ENDIF # "$(GUI)"=="WNT" +.ENDIF # "$(LOCALIDLFILES)$(EXTERNIDLFILES)"!="" +.ENDIF # "$(IDLFILES)"!="" + +.IF "$(L10N_framework)"=="" +.IF "$(JARFILES)"!="" +LOCALJARS:=$(foreach,i,$(shell @@-cd $(JARDIR) && ls -1 $(JARFILES) ) $(JARDIR)/$i) +NEWCLASS:=$(LOCALJARS) +NEWCLASS+:=$(foreach,i,$(JARFILES) $(eq,$(LOCALJARS),$(subst,$i, $(LOCALJARS)) $(SOLARVERSION)$/$(INPATH)$/bin$/$i $(NULL))) +.ENDIF # "$(JARFILES)"!="" +NEWCLASS+=$(EXTRAJARFILES) +.IF "$(GENJAVACLASSFILES)"!="" +NEWCLASS+=$(CLASSGENDIR) +.ENDIF # "$(GENJAVACLASSFILES)"!="" +.IF "$(NEWCLASS)"!="" +# See iz36027 for the reason for the strange $(subst ..) construct +CLASSPATH:=.$(PATH_SEPERATOR)$(CLASSDIR)$(PATH_SEPERATOR)$(XCLASSPATH)$(PATH_SEPERATOR){$(subst,%Z*Z%,$(PATH_SEPERATOR) $(NEWCLASS:s/ /%Z*Z%/))}$(PATH_SEPERATOR)$(SOLARLIBDIR) +.ENDIF # "$(NEWCLASS)"!="" +.ENDIF # "$(L10N_framework)"=="" + +.IF "$(NOOPTFILES)" != "" +NOOPTTARGET=do_it_noopt +.ENDIF + +.IF "$(EXCEPTIONSNOOPTFILES)" != "" +EXCEPTIONSNOOPTTARGET=do_it_exceptions_noopt +.ENDIF + +.IF "$(LIBTARGET)"=="" +.IF "$(OBJFILES)$(IDLOBJFILES)"!="" +OBJTARGET=$(LB)/$(TARGET).lib +.ENDIF + +.IF "$(SLOFILES)$(IDLSLOFILES)"!="" +SLOTARGET=$(SLB)/$(TARGET).lib +.ENDIF +.ENDIF # "$(LIBTARGET)"=="" + +.IF "$(SECOND_BUILD)"!="" +.IF "$($(SECOND_BUILD)_SLOFILES)"!="" +.IF "$(LIBTARGET)"=="" +$(SECOND_BUILD)SLOTARGET=$(SLB)/$(SECOND_BUILD)_$(TARGET).lib +.ENDIF # "$(LIBTARGET)"=="" +REAL_$(SECOND_BUILD)_SLOFILES=$(foreach,i,$($(SECOND_BUILD)_SLOFILES) $(i:d)$(SECOND_BUILD)_$(i:f)) +.ENDIF + +.IF "$($(SECOND_BUILD)_OBJFILES)"!="" +.IF "$(LIBTARGET)"=="" +$(SECOND_BUILD)OBJTARGET=$(LB)/$(SECOND_BUILD)_$(TARGET).lib +.ENDIF # "$(LIBTARGET)"=="" +REAL_$(SECOND_BUILD)_OBJFILES=$(foreach,i,$($(SECOND_BUILD)_OBJFILES) $(i:d)$(SECOND_BUILD)_$(i:f)) +.ENDIF +.ENDIF # "$(SECOND_BUILD)"!="" + +.IF "$(NOLIBOBJTARGET)$(NOLIBSLOTARGET)"!="" +dont_set_NOLIBOBJTARGET: + @echo -------------------------------------------------- + @echo setting NOLIBOBJTARGET or NOLIBSLOTARGET in your makefile + @echo will cause serious problems! + @echo use DEPOBJFILES instead. + @echo -------------------------------------------------- + force_dmake_to_error +.ENDIF # "$(NOLIBTARGET)"!="" +.IF "$(OBJFILES)"!="" +.IF "$(LIBTARGET)" != "" +NOLIBOBJTARGET=$(OBJFILES) +.ENDIF +.ENDIF + +.IF "$(SLOFILES)"!="" +.IF "$(LIBTARGET)" != "" +NOLIBSLOTARGET=$(SLOFILES) +.ENDIF +.ENDIF + +.IF "$(SRC1FILES)"!="" +SRC1TARGET=$(SRS)/$(SRS1NAME).srs +DEPSRS1FILE+=$(MISC)/$(TARGET).$(SRS1NAME).dprr +DEPSRSFILES+=$(DEPSRS1FILE) +.ENDIF + +.IF "$(SRC2FILES)"!="" +SRC2TARGET=$(SRS)/$(SRS2NAME).srs +DEPSRS2FILE+=$(MISC)/$(TARGET).$(SRS2NAME).dprr +DEPSRSFILES+=$(DEPSRS2FILE) +.ENDIF + +.IF "$(SRC3FILES)"!="" +SRC3TARGET=$(SRS)/$(SRS3NAME).srs +DEPSRS3FILE+=$(MISC)/$(TARGET).$(SRS3NAME).dprr +DEPSRSFILES+=$(DEPSRS3FILE) +.ENDIF + +.IF "$(SRC4FILES)"!="" +SRC4TARGET=$(SRS)/$(SRS4NAME).srs +DEPSRS4FILE+=$(MISC)/$(TARGET).$(SRS4NAME).dprr +DEPSRSFILES+=$(DEPSRS4FILE) +.ENDIF + +.IF "$(SRC5FILES)"!="" +SRC5TARGET=$(SRS)/$(SRS5NAME).srs +DEPSRS5FILE+=$(MISC)/$(TARGET).$(SRS5NAME).dprr +DEPSRSFILES+=$(DEPSRS5FILE) +.ENDIF + +.IF "$(SRC6FILES)"!="" +SRC6TARGET=$(SRS)/$(SRS6NAME).srs +DEPSRS6FILE+=$(MISC)/$(TARGET).$(SRS6NAME).dprr +DEPSRSFILES+=$(DEPSRS6FILE) +.ENDIF + +.IF "$(SRC7FILES)"!="" +SRC7TARGET=$(SRS)/$(SRS7NAME).srs +DEPSRS7FILE+=$(MISC)/$(TARGET).$(SRS7NAME).dprr +DEPSRSFILES+=$(DEPSRS7FILE) +.ENDIF + +.IF "$(SRC8FILES)"!="" +SRC8TARGET=$(SRS)/$(SRS8NAME).srs +DEPSRS8FILE+=$(MISC)/$(TARGET).$(SRS8NAME).dprr +DEPSRSFILES+=$(DEPSRS8FILE) +.ENDIF + +.IF "$(SRC9FILES)"!="" +SRC9TARGET=$(SRS)/$(SRS9NAME).srs +DEPSRS9FILE+=$(MISC)/$(TARGET).$(SRS9NAME).dprr +DEPSRSFILES+=$(DEPSRS9FILE) +.ENDIF + +.IF "$(SOLAR_JAVA)"!="" +.IF "$(JAVAFILES)$(JAVACLASSFILES)$(GENJAVAFILES)"!="" +.IF "$(JAVAFILES)$(JAVACLASSFILES)"=="$(JAVAFILES)" +JAVACLASSFILES= $(foreach,i,$(JAVAFILES) $(CLASSDIR)/$(PACKAGE)/$(i:s/.java//).class) +.ELSE # "$(JAVAFILES)$(JAVACLASSFILES)"=="$(JAVAFILES)" +.IF "$(JAVAFILES)$(JAVACLASSFILES)"=="$(JAVACLASSFILES)" +JAVAFILES= $(foreach,i,$(JAVACLASSFILES) $(subst,$(CLASSDIR)/$(PACKAGE)/, $(i:s/.class//).java)) +.ENDIF # "$(JAVAFILES)$(JAVACLASSFILES)"=="$(JAVACLASSFILES)" +.ENDIF # "$(JAVAFILES)$(JAVACLASSFILES)"=="$(JAVAFILES)" +JAVATARGET:=$(MISC)/$(TARGET)_dummy.java +.ENDIF # "$(JAVAFILES)$(JAVACLASSFILES)$(GENJAVAFILES)"!="" + +.IF "$(JARTARGET)"!="" +JARCLASSDIRS*=. +JARMANIFEST*=$(CLASSDIR)/$(TARGET)/META-INF/MANIFEST.MF +JARTARGETN=$(CLASSDIR)/$(JARTARGET) +.ENDIF # "$(JARTARGET)"!="" +.ELSE # "$(SOLAR_JAVA)"!="" +JAVACLASSFILES:= +JAVAFILES:= +javauno:= +.ENDIF # "$(SOLAR_JAVA)"!="" + +.IF "$(L10N_framework)"=="" +.IF "$(RCFILES)"!="" +RESNAME*=$(TARGET) +.IF "$(RCFILES)" != "verinfo.rc" +RCTARGET=$(RES)/$(RESNAME).res +.ELSE # "$(RCFILES)" != "verinfo.rc" +RCFILES= +.ENDIF # "$(RCFILES)" != "verinfo.rc" +.ENDIF # "$(RCFILES)"!="" +.ENDIF # "$(L10N_framework)"=="" + +LOCALIZE_ME_DEST:=$(foreach,i,$(LOCALIZE_ME) $(INCCOM)/$(i:f:s/_tmpl//)) + +.IF "$(SCP1TARGET)"!="" +SCP1TARGETN:=$(foreach,i,$(SCP1LINK_PRODUCT_TYPE) $(BIN)/$i/$(SCP1TARGET)$(SCPPOST)) +.ENDIF + +.IF "$(SCP2TARGET)"!="" +SCP2TARGETN:=$(foreach,i,$(SCP2LINK_PRODUCT_TYPE) $(BIN)/$i/$(SCP2TARGET)$(SCPPOST)) +.ENDIF + +.IF "$(SCP3TARGET)"!="" +SCP3TARGETN:=$(foreach,i,$(SCP3LINK_PRODUCT_TYPE) $(BIN)/$i/$(SCP3TARGET)$(SCPPOST)) +.ENDIF + +.IF "$(SCP4TARGET)"!="" +SCP4TARGETN:=$(foreach,i,$(SCP4LINK_PRODUCT_TYPE) $(BIN)/$i/$(SCP4TARGET)$(SCPPOST)) +.ENDIF + +.IF "$(SCP5TARGET)"!="" +SCP5TARGETN:=$(foreach,i,$(SCP5LINK_PRODUCT_TYPE) $(BIN)/$i/$(SCP5TARGET)$(SCPPOST)) +.ENDIF + +.IF "$(SCP6TARGET)"!="" +SCP6TARGETN:=$(foreach,i,$(SCP6LINK_PRODUCT_TYPE) $(BIN)/$i/$(SCP6TARGET)$(SCPPOST)) +.ENDIF + +.IF "$(SCP7TARGET)"!="" +SCP7TARGETN:=$(foreach,i,$(SCP7LINK_PRODUCT_TYPE) $(BIN)/$i/$(SCP7TARGET)$(SCPPOST)) +.ENDIF + +.IF "$(SCP8TARGET)"!="" +SCP8TARGETN:=$(foreach,i,$(SCP8LINK_PRODUCT_TYPE) $(BIN)/$i/$(SCP8TARGET)$(SCPPOST)) +.ENDIF + +.IF "$(SCP9TARGET)"!="" +SCP9TARGETN:=$(foreach,i,$(SCP9LINK_PRODUCT_TYPE) $(BIN)/$i/$(SCP9TARGET)$(SCPPOST)) +.ENDIF + +.IF "$(ZIP1TARGET)$(ZIP2TARGET)$(ZIP3TARGET)$(ZIP4TARGET)$(ZIP5TARGET)$(ZIP6TARGET)$(ZIP7TARGET)$(ZIP8TARGET)$(ZIP9TARGET)"!="$(ZIP1LIST:s/LANGDIR//)$(ZIP2LIST:s/LANGDIR//)$(ZIP3LIST:s/LANGDIR//)$(ZIP4LIST:s/LANGDIR//)$(ZIP5LIST:s/LANGDIR//)$(ZIP6LIST:s/LANGDIR//)$(ZIP7LIST:s/LANGDIR//)$(ZIP8LIST:s/LANGDIR//)$(ZIP9LIST:s/LANGDIR//)" + +ZIPALL=ZIPALLTARGET + +.ENDIF # + +.IF "$(APP1TARGET)"!="" +APP1TARGETN=$(BIN)/$(APP1TARGET)$(EXECPOST) +.IF "$(BASE)" != "" +.IF "$(GUI)"=="WNT" +.IF "$(APP1BASE)"=="" +APP1BASE=$(BASE) +.ENDIF +APP1BASEX=/BASE:$(APP1BASE) +.ENDIF +.ENDIF +.ENDIF + +.IF "$(APP2TARGET)"!="" +APP2TARGETN=$(BIN)/$(APP2TARGET)$(EXECPOST) +.IF "$(BASE)" != "" +.IF "$(GUI)"=="WNT" +.IF "$(APP2BASE)"=="" +APP2BASE=$(BASE) +.ENDIF +APP2BASEX=/BASE:$(APP2BASE) +.ENDIF +.ENDIF +.ENDIF + +.IF "$(APP3TARGET)"!="" +APP3TARGETN=$(BIN)/$(APP3TARGET)$(EXECPOST) +.IF "$(BASE)" != "" +.IF "$(GUI)"=="WNT" +.IF "$(APP3BASE)"=="" +APP3BASE=$(BASE) +.ENDIF +APP3BASEX=/BASE:$(APP3BASE) +.ENDIF +.ENDIF +.ENDIF + +.IF "$(APP4TARGET)"!="" +APP4TARGETN=$(BIN)/$(APP4TARGET)$(EXECPOST) +.IF "$(BASE)" != "" +.IF "$(GUI)"=="WNT" +.IF "$(APP4BASE)"=="" +APP4BASE=$(BASE) +.ENDIF +APP4BASEX=/BASE:$(APP4BASE) +.ENDIF +.ENDIF +.ENDIF + +.IF "$(APP5TARGET)"!="" +APP5TARGETN=$(BIN)/$(APP5TARGET)$(EXECPOST) +.IF "$(BASE)" != "" +.IF "$(GUI)"=="WNT" +.IF "$(APP5BASE)"=="" +APP5BASE=$(BASE) +.ENDIF +APP5BASEX=/BASE:$(APP5BASE) +.ENDIF +.ENDIF +.ENDIF + +.IF "$(APP6TARGET)"!="" +APP6TARGETN=$(BIN)/$(APP6TARGET)$(EXECPOST) +.IF "$(BASE)" != "" +.IF "$(GUI)"=="WNT" +.IF "$(APP6BASE)"=="" +APP6BASE=$(BASE) +.ENDIF +APP6BASEX=/BASE:$(APP6BASE) +.ENDIF +.ENDIF +.ENDIF + +.IF "$(APP7TARGET)"!="" +APP7TARGETN=$(BIN)/$(APP7TARGET)$(EXECPOST) +.IF "$(BASE)" != "" +.IF "$(GUI)"=="WNT" +.IF "$(APP7BASE)"=="" +APP7BASE=$(BASE) +.ENDIF +APP7BASEX=/BASE:$(APP7BASE) +.ENDIF +.ENDIF +.ENDIF + +.IF "$(APP8TARGET)"!="" +APP8TARGETN=$(BIN)/$(APP8TARGET)$(EXECPOST) +.IF "$(BASE)" != "" +.IF "$(GUI)"=="WNT" +.IF "$(APP8BASE)"=="" +APP8BASE=$(BASE) +.ENDIF +APP8BASEX=/BASE:$(APP8BASE) +.ENDIF +.ENDIF +.ENDIF + +.IF "$(APP9TARGET)"!="" +APP9TARGETN=$(BIN)/$(APP9TARGET)$(EXECPOST) +.IF "$(BASE)" != "" +.IF "$(GUI)"=="WNT" +.IF "$(APP9BASE)"=="" +APP9BASE=$(BASE) +.ENDIF +APP9BASEX=/BASE:$(APP9BASE) +.ENDIF +.ENDIF +.ENDIF + +.IF "$(SHL1TARGET)"!="" +.IF "$(WINVERSIONNAMES)"!="" +SHL1TARGET!:=$(SHL1TARGET)$($(WINVERSIONNAMES)_MAJOR) +.ENDIF # "$(WINVERSIONNAMES)"!="" +SHL1DLLPRE*=$(DLLPRE) +SHL1TARGETN=$(DLLDEST)/$(SHL1DLLPRE)$(SHL1TARGET)$(DLLPOST) +.IF "$(BASE)" != "" +.IF "$(GUI)"=="WNT" +.IF "$(SHL1BASE)"=="" +SHL1BASE=$(BASE) +.ENDIF +SHL1BASEX=/BASE:$(SHL1BASE) +.ENDIF +.ENDIF +.ENDIF + +.IF "$(SHL2TARGET)"!="" +.IF "$(WINVERSIONNAMES)"!="" +SHL2TARGET!:=$(SHL2TARGET)$($(WINVERSIONNAMES)_MAJOR) +.ENDIF # "$(WINVERSIONNAMES)"!="" +SHL2DLLPRE*=$(DLLPRE) +SHL2TARGETN=$(DLLDEST)/$(SHL2DLLPRE)$(SHL2TARGET)$(DLLPOST) +.IF "$(BASE)" != "" +.IF "$(GUI)"=="WNT" +.IF "$(SHL2BASE)"=="" +SHL2BASE=$(BASE) +.ENDIF +SHL2BASEX=/BASE:$(SHL2BASE) +.ENDIF +.ENDIF +.ENDIF + +.IF "$(SHL3TARGET)"!="" +.IF "$(WINVERSIONNAMES)"!="" +SHL3TARGET!:=$(SHL3TARGET)$($(WINVERSIONNAMES)_MAJOR) +.ENDIF # "$(WINVERSIONNAMES)"!="" +SHL3DLLPRE*=$(DLLPRE) +SHL3TARGETN=$(DLLDEST)/$(SHL3DLLPRE)$(SHL3TARGET)$(DLLPOST) +.IF "$(BASE)" != "" +.IF "$(GUI)"=="WNT" +.IF "$(SHL3BASE)"=="" +SHL3BASE=$(BASE) +.ENDIF +SHL3BASEX=/BASE:$(SHL3BASE) +.ENDIF +.ENDIF +.ENDIF + +.IF "$(SHL4TARGET)"!="" +.IF "$(WINVERSIONNAMES)"!="" +SHL4TARGET!:=$(SHL4TARGET)$($(WINVERSIONNAMES)_MAJOR) +.ENDIF # "$(WINVERSIONNAMES)"!="" +SHL4DLLPRE*=$(DLLPRE) +SHL4TARGETN=$(DLLDEST)/$(SHL4DLLPRE)$(SHL4TARGET)$(DLLPOST) +.IF "$(BASE)" != "" +.IF "$(GUI)"=="WNT" +.IF "$(SHL4BASE)"=="" +SHL4BASE=$(BASE) +.ENDIF +SHL4BASEX=/BASE:$(SHL4BASE) +.ENDIF +.ENDIF +.ENDIF + +.IF "$(SHL5TARGET)"!="" +.IF "$(WINVERSIONNAMES)"!="" +SHL5TARGET!:=$(SHL5TARGET)$($(WINVERSIONNAMES)_MAJOR) +.ENDIF # "$(WINVERSIONNAMES)"!="" +SHL5DLLPRE*=$(DLLPRE) +SHL5TARGETN=$(DLLDEST)/$(SHL5DLLPRE)$(SHL5TARGET)$(DLLPOST) +.IF "$(BASE)" != "" +.IF "$(GUI)"=="WNT" +.IF "$(SHL5BASE)"=="" +SHL5BASE=$(BASE) +.ENDIF +SHL5BASEX=/BASE:$(SHL5BASE) +.ENDIF +.ENDIF +.ENDIF + +.IF "$(SHL6TARGET)"!="" +.IF "$(WINVERSIONNAMES)"!="" +SHL6TARGET!:=$(SHL6TARGET)$($(WINVERSIONNAMES)_MAJOR) +.ENDIF # "$(WINVERSIONNAMES)"!="" +SHL6DLLPRE*=$(DLLPRE) +SHL6TARGETN=$(DLLDEST)/$(SHL6DLLPRE)$(SHL6TARGET)$(DLLPOST) +.IF "$(BASE)" != "" +.IF "$(GUI)"=="WNT" +.IF "$(SHL6BASE)"=="" +SHL6BASE=$(BASE) +.ENDIF +SHL6BASEX=/BASE:$(SHL6BASE) +.ENDIF +.ENDIF +.ENDIF + +.IF "$(SHL7TARGET)"!="" +.IF "$(WINVERSIONNAMES)"!="" +SHL7TARGET!:=$(SHL7TARGET)$($(WINVERSIONNAMES)_MAJOR) +.ENDIF # "$(WINVERSIONNAMES)"!="" +SHL7DLLPRE*=$(DLLPRE) +SHL7TARGETN=$(DLLDEST)/$(SHL7DLLPRE)$(SHL7TARGET)$(DLLPOST) +.IF "$(BASE)" != "" +.IF "$(GUI)"=="WNT" +.IF "$(SHL7BASE)"=="" +SHL7BASE=$(BASE) +.ENDIF +SHL7BASEX=/BASE:$(SHL7BASE) +.ENDIF +.ENDIF +.ENDIF + +.IF "$(SHL8TARGET)"!="" +.IF "$(WINVERSIONNAMES)"!="" +SHL8TARGET!:=$(SHL8TARGET)$($(WINVERSIONNAMES)_MAJOR) +.ENDIF # "$(WINVERSIONNAMES)"!="" +SHL8DLLPRE*=$(DLLPRE) +SHL8TARGETN=$(DLLDEST)/$(SHL8DLLPRE)$(SHL8TARGET)$(DLLPOST) +.IF "$(BASE)" != "" +.IF "$(GUI)"=="WNT" +.IF "$(SHL8BASE)"=="" +SHL8BASE=$(BASE) +.ENDIF +SHL8BASEX=/BASE:$(SHL8BASE) +.ENDIF +.ENDIF +.ENDIF + +.IF "$(SHL9TARGET)"!="" +.IF "$(WINVERSIONNAMES)"!="" +SHL9TARGET!:=$(SHL9TARGET)$($(WINVERSIONNAMES)_MAJOR) +.ENDIF # "$(WINVERSIONNAMES)"!="" +SHL9DLLPRE*=$(DLLPRE) +SHL9TARGETN=$(DLLDEST)/$(SHL9DLLPRE)$(SHL9TARGET)$(DLLPOST) +.IF "$(BASE)" != "" +.IF "$(GUI)"=="WNT" +.IF "$(SHL9BASE)"=="" +SHL9BASE=$(BASE) +.ENDIF +SHL9BASEX=/BASE:$(SHL9BASE) +.ENDIF +.ENDIF +.ENDIF + +.IF "$(COMP1TYPELIST)$(COMP2TYPELIST)$(COMP3TYPELIST)$(COMP4TYPELIST)$(COMP5TYPELIST)$(COMP6TYPELIST)$(COMP7TYPELIST)$(COMP8TYPELIST)$(COMP9TYPELIST)"!="" +.IF "$(UNOUCRRDB)"!="" +COMPRDB*:=$(UNOUCRRDB) +.ELSE # "$(UNOUCRRDB)"!="" +COMPRDB*:=$(SOLARBINDIR)/types.rdb +.ENDIF # "$(UNOUCRRDB)"!="" +.ENDIF # "$(COMP1TYPELIST)$(COMP2TYPELIST)$(COMP3TYPELIST)$(COMP4TYPELIST)$(COMP5TYPELIST)$(COMP6TYPELIST)$(COMP7TYPELIST)$(COMP8TYPELIST)$(COMP9TYPELIST)"!="" +.IF "$(COMP1TYPELIST)"!="" +UNOTYPES+=$($(COMP1TYPELIST)_XML2CMPTYPES) +COMP1RDBTARGETN:=$(BIN)/$(COMP1TYPELIST).rdb +#COMP1TYPELISTN:=$(MISC)/$(COMP1TYPELIST).xml +.ENDIF + +.IF "$(COMP2TYPELIST)"!="" +UNOTYPES+=$($(COMP2TYPELIST)_XML2CMPTYPES) +COMP2RDBTARGETN:=$(BIN)/$(COMP2TYPELIST).rdb +#COMP2TYPELISTN:=$(MISC)/$(COMP2TYPELIST).xml +.ENDIF + +.IF "$(COMP3TYPELIST)"!="" +UNOTYPES+=$($(COMP3TYPELIST)_XML2CMPTYPES) +COMP3RDBTARGETN:=$(BIN)/$(COMP3TYPELIST).rdb +#COMP3TYPELISTN:=$(MISC)/$(COMP3TYPELIST).xml +.ENDIF + +.IF "$(COMP4TYPELIST)"!="" +UNOTYPES+=$($(COMP4TYPELIST)_XML2CMPTYPES) +COMP4RDBTARGETN:=$(BIN)/$(COMP4TYPELIST).rdb +#COMP4TYPELISTN:=$(MISC)/$(COMP4TYPELIST).xml +.ENDIF + +.IF "$(COMP5TYPELIST)"!="" +UNOTYPES+=$($(COMP5TYPELIST)_XML2CMPTYPES) +COMP5RDBTARGETN:=$(BIN)/$(COMP5TYPELIST).rdb +#COMP5TYPELISTN:=$(MISC)/$(COMP5TYPELIST).xml +.ENDIF + +.IF "$(COMP6TYPELIST)"!="" +UNOTYPES+=$($(COMP6TYPELIST)_XML2CMPTYPES) +COMP6RDBTARGETN:=$(BIN)/$(COMP6TYPELIST).rdb +#COMP6TYPELISTN:=$(MISC)/$(COMP6TYPELIST).xml +.ENDIF + +.IF "$(COMP7TYPELIST)"!="" +UNOTYPES+=$($(COMP7TYPELIST)_XML2CMPTYPES) +COMP7RDBTARGETN:=$(BIN)/$(COMP7TYPELIST).rdb +#COMP7TYPELISTN:=$(MISC)/$(COMP7TYPELIST).xml +.ENDIF + +.IF "$(COMP8TYPELIST)"!="" +UNOTYPES+=$($(COMP8TYPELIST)_XML2CMPTYPES) +COMP8RDBTARGETN:=$(BIN)/$(COMP8TYPELIST).rdb +#COMP8TYPELISTN:=$(MISC)/$(COMP8TYPELIST).xml +.ENDIF + +.IF "$(COMP9TYPELIST)"!="" +UNOTYPES+=$($(COMP9TYPELIST)_XML2CMPTYPES) +COMP9RDBTARGETN:=$(BIN)/$(COMP9TYPELIST).rdb +#COMP9TYPELISTN:=$(MISC)/$(COMP9TYPELIST).xml +.ENDIF + +UNOTYPES!:=$(strip $(UNOTYPES)) + +#moved here to get UNOTYPES from COMPxTYPELIST +.IF "$(UNOTYPES)" != "" +UNOUCRHEADER=$(foreach,j,$(subst,.,/ $(UNOTYPES)) $(UNOUCROUT)/$(j:+".hpp")) +UNOUCRTARGET:=$(INCCOM)/$(TARGET)_headergen.done +.ENDIF # "$(UNOTYPES)" != "" + +.IF "$(HELPIDFILES)"!="" +MAKE_HELPIDS=$(MISC)/helpids.don +.ENDIF + +.IF "$(HXXCOPYFILES)" != "" +HXXCOPYTARGET= copy_hxxcopyfiles +.ENDIF + +.IF "$(LIB1TARGET)" != "" +LIB1TARGETN=$(LIB1TARGET) +.ENDIF + +.IF "$(LIB2TARGET)" != "" +LIB2TARGETN=$(LIB2TARGET) +.ENDIF + +.IF "$(LIB3TARGET)" != "" +LIB3TARGETN=$(LIB3TARGET) +.ENDIF + +.IF "$(LIB4TARGET)" != "" +LIB4TARGETN=$(LIB4TARGET) +.ENDIF + +.IF "$(LIB5TARGET)" != "" +LIB5TARGETN=$(LIB5TARGET) +.ENDIF + +.IF "$(LIB6TARGET)" != "" +LIB6TARGETN=$(LIB6TARGET) +.ENDIF + +.IF "$(LIB7TARGET)" != "" +LIB7TARGETN=$(LIB7TARGET) +.ENDIF + +.IF "$(LIB8TARGET)" != "" +LIB8TARGETN=$(LIB8TARGET) +.ENDIF + +.IF "$(LIB9TARGET)" != "" +LIB9TARGETN=$(LIB9TARGET) +.ENDIF + +.IF "$(GUI)"=="WNT" +.IF "$(COM)"!="GCC" +LIB1ARCHIV= +LIB2ARCHIV= +LIB3ARCHIV= +LIB4ARCHIV= +LIB5ARCHIV= +LIB6ARCHIV= +LIB7ARCHIV= +LIB8ARCHIV= +LIB9ARCHIV= +.ENDIF +.ENDIF # "$(GUI)"=="WNT" + +.IF "$(RESLIB1NAME)" != "" +.IF "$(RESLIB1NOVERSION)"=="" +.ENDIF # "$(RESLIB1NOVERSION)"=="" +.IF "$(common_build_reslib)"!="" +RESLIB1TARGETN=$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(BIN))/$(RESLIB1NAME)LANGEXT.res +RSC_MULTI1=$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(MISC))/rsc_$(RESLIB1NAME) +.ELSE # "$(common_build_reslib)"!="" +RESLIB1TARGETN=$(BIN)/$(RESLIB1NAME)LANGEXT.res +RSC_MULTI1=$(MISC)/rsc_$(RESLIB1NAME) +.ENDIF # "$(common_build_reslib)"!="" +# change to iso if resmgr is changed +RESLIB1TARGETN!:=$(foreach,i,$(alllangiso) $(subst,LANGEXT,$i $(RESLIB1TARGETN))) +.ENDIF + +.IF "$(RESLIB2NAME)" != "" +.IF "$(RESLIB2NOVERSION)"=="" +.ENDIF # "$(RESLIB2NOVERSION)"=="" +.IF "$(common_build_reslib)"!="" +RESLIB2TARGETN=$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(BIN))/$(RESLIB2NAME)LANGEXT.res +RSC_MULTI2=$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(MISC))/rsc_$(RESLIB2NAME) +.ELSE # "$(common_build_reslib)"!="" +RESLIB2TARGETN=$(BIN)/$(RESLIB2NAME)LANGEXT.res +RSC_MULTI2=$(MISC)/rsc_$(RESLIB2NAME) +.ENDIF # "$(common_build_reslib)"!="" +RESLIB2TARGETN!:=$(foreach,i,$(alllangiso) $(subst,LANGEXT,$i $(RESLIB2TARGETN))) +.ENDIF + +.IF "$(RESLIB3NAME)" != "" +.IF "$(RESLIB3NOVERSION)"=="" +.ENDIF # "$(RESLIB3NOVERSION)"=="" +.IF "$(common_build_reslib)"!="" +RESLIB3TARGETN=$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(BIN))/$(RESLIB3NAME)LANGEXT.res +RSC_MULTI3=$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(MISC))/rsc_$(RESLIB3NAME) +.ELSE # "$(common_build_reslib)"!="" +RESLIB3TARGETN=$(BIN)/$(RESLIB3NAME)LANGEXT.res +RSC_MULTI3=$(MISC)/rsc_$(RESLIB3NAME) +.ENDIF # "$(common_build_reslib)"!="" +RESLIB3TARGETN!:=$(foreach,i,$(alllangiso) $(subst,LANGEXT,$i $(RESLIB3TARGETN))) +.ENDIF + +.IF "$(RESLIB4NAME)" != "" +.IF "$(RESLIB4NOVERSION)"=="" +.ENDIF # "$(RESLIB4NOVERSION)"=="" +.IF "$(common_build_reslib)"!="" +RESLIB4TARGETN=$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(BIN))/$(RESLIB4NAME)LANGEXT.res +RSC_MULTI4=$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(MISC))/rsc_$(RESLIB4NAME) +.ELSE # "$(common_build_reslib)"!="" +RESLIB4TARGETN=$(BIN)/$(RESLIB4NAME)LANGEXT.res +RSC_MULTI4=$(MISC)/rsc_$(RESLIB4NAME) +.ENDIF # "$(common_build_reslib)"!="" +RESLIB4TARGETN!:=$(foreach,i,$(alllangiso) $(subst,LANGEXT,$i $(RESLIB4TARGETN))) +.ENDIF + +.IF "$(RESLIB5NAME)" != "" +.IF "$(RESLIB5NOVERSION)"=="" +.ENDIF # "$(RESLIB5NOVERSION)"=="" +.IF "$(common_build_reslib)"!="" +RESLIB5TARGETN=$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(BIN))/$(RESLIB5NAME)LANGEXT.res +RSC_MULTI5=$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(MISC))/rsc_$(RESLIB5NAME) +.ELSE # "$(common_build_reslib)"!="" +RESLIB5TARGETN=$(BIN)/$(RESLIB5NAME)LANGEXT.res +RSC_MULTI5=$(MISC)/rsc_$(RESLIB5NAME) +.ENDIF # "$(common_build_reslib)"!="" +RESLIB5TARGETN!:=$(foreach,i,$(alllangiso) $(subst,LANGEXT,$i $(RESLIB5TARGETN))) +.ENDIF + +.IF "$(RESLIB6NAME)" != "" +.IF "$(RESLIB6NOVERSION)"=="" +.ENDIF # "$(RESLIB6NOVERSION)"=="" +.IF "$(common_build_reslib)"!="" +RESLIB6TARGETN=$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(BIN))/$(RESLIB6NAME)LANGEXT.res +RSC_MULTI6=$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(MISC))/rsc_$(RESLIB6NAME) +.ELSE # "$(common_build_reslib)"!="" +RESLIB6TARGETN=$(BIN)/$(RESLIB6NAME)LANGEXT.res +RSC_MULTI6=$(MISC)/rsc_$(RESLIB6NAME) +.ENDIF # "$(common_build_reslib)"!="" +RESLIB6TARGETN!:=$(foreach,i,$(alllangiso) $(subst,LANGEXT,$i $(RESLIB6TARGETN))) +.ENDIF + +.IF "$(RESLIB7NAME)" != "" +.IF "$(RESLIB7NOVERSION)"=="" +.ENDIF # "$(RESLIB7NOVERSION)"=="" +.IF "$(common_build_reslib)"!="" +RESLIB7TARGETN=$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(BIN))/$(RESLIB7NAME)LANGEXT.res +RSC_MULTI7=$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(MISC))/rsc_$(RESLIB7NAME) +.ELSE # "$(common_build_reslib)"!="" +RESLIB7TARGETN=$(BIN)/$(RESLIB7NAME)LANGEXT.res +RSC_MULTI7=$(MISC)/rsc_$(RESLIB7NAME) +.ENDIF # "$(common_build_reslib)"!="" +RESLIB7TARGETN!:=$(foreach,i,$(alllangiso) $(subst,LANGEXT,$i $(RESLIB7TARGETN))) +.ENDIF + +.IF "$(RESLIB8NAME)" != "" +.IF "$(RESLIB8NOVERSION)"=="" +.ENDIF # "$(RESLIB8NOVERSION)"=="" +.IF "$(common_build_reslib)"!="" +RESLIB8TARGETN=$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(BIN))/$(RESLIB8NAME)LANGEXT.res +RSC_MULTI8=$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(MISC))/rsc_$(RESLIB8NAME) +.ELSE # "$(common_build_reslib)"!="" +RESLIB8TARGETN=$(BIN)/$(RESLIB8NAME)LANGEXT.res +RSC_MULTI8=$(MISC)/rsc_$(RESLIB8NAME) +.ENDIF # "$(common_build_reslib)"!="" +RESLIB8TARGETN!:=$(foreach,i,$(alllangiso) $(subst,LANGEXT,$i $(RESLIB8TARGETN))) +.ENDIF + +.IF "$(RESLIB9NAME)" != "" +.IF "$(RESLIB9NOVERSION)"=="" +.ENDIF # "$(RESLIB9NOVERSION)"=="" +.IF "$(common_build_reslib)"!="" +RESLIB9TARGETN=$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(BIN))/$(RESLIB9NAME)LANGEXT.res +RSC_MULTI9=$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(MISC))/rsc_$(RESLIB9NAME) +.ELSE # "$(common_build_reslib)"!="" +RESLIB9TARGETN=$(BIN)/$(RESLIB9NAME)LANGEXT.res +RSC_MULTI9=$(MISC)/rsc_$(RESLIB9NAME) +.ENDIF # "$(common_build_reslib)"!="" +RESLIB9TARGETN!:=$(foreach,i,$(alllangiso) $(subst,LANGEXT,$i $(RESLIB9TARGETN))) +.ENDIF + +.IF "$(INDPRESLIB1NAME)"!="" +INDPRESLIB1TARGETN=$(BIN)/$(INDPRESLIB1NAME).dll +.ENDIF + +.IF "$(DEF1NAME)"!="" +DEF1TARGETN=$(MISC)/$(DEF1NAME).def +.ENDIF + +.IF "$(DEF2NAME)"!="" +DEF2TARGETN=$(MISC)/$(DEF2NAME).def +.ENDIF + +.IF "$(DEF3NAME)"!="" +DEF3TARGETN=$(MISC)/$(DEF3NAME).def +.ENDIF + +.IF "$(DEF4NAME)"!="" +DEF4TARGETN=$(MISC)/$(DEF4NAME).def +.ENDIF + +.IF "$(DEF5NAME)"!="" +DEF5TARGETN=$(MISC)/$(DEF5NAME).def +.ENDIF + +.IF "$(DEF6NAME)"!="" +DEF6TARGETN=$(MISC)/$(DEF6NAME).def +.ENDIF + +.IF "$(DEF7NAME)"!="" +DEF7TARGETN=$(MISC)/$(DEF7NAME).def +.ENDIF + +.IF "$(DEF8NAME)"!="" +DEF8TARGETN=$(MISC)/$(DEF8NAME).def +.ENDIF + +.IF "$(DEF9NAME)"!="" +DEF9TARGETN=$(MISC)/$(DEF9NAME).def +.ENDIF + +# IZ65415 - catch obsolete macro. Can be removed later. +.IF "$(SDINAME)"!="" +.ERROR : ; @echo Forced error: SDINAME was used! Change your project to use SDIxNAME instead! +NO_SDINAME_allowed +.ENDIF + +.IF "$(SDI1NAME)"!="" +.DIRCACHE=no +SDI1TARGET=$(MISC)/$(SDI1NAME).don +.ENDIF + +.IF "$(SDI2NAME)"!="" +.DIRCACHE=no +SDI2TARGET=$(MISC)/$(SDI2NAME).don +.ENDIF + +.IF "$(SDI3NAME)"!="" +.DIRCACHE=no +SDI3TARGET=$(MISC)/$(SDI3NAME).don +.ENDIF + +.IF "$(SDI4NAME)"!="" +.DIRCACHE=no +SDI4TARGET=$(MISC)/$(SDI4NAME).don +.ENDIF + +.IF "$(SDI5NAME)"!="" +.DIRCACHE=no +SDI5TARGET=$(MISC)/$(SDI5NAME).don +.ENDIF + +.IF "$(XMLPROPERTIES)"!="" +XMLPROPERTIESN:=$(foreach,i,$(XMLPROPERTIES) $(MISC)/$(TARGET)_$(i:s/.xrb/.done/)) +.ENDIF # "$(XMLPROPERTIES)"!="" + +.IF "$(UNIXTEXT)"!="" +.IF "$(GUI)"=="UNX" +CONVERTUNIXTEXT:=$(UNIXTEXT) +.ENDIF # "$(GUI)"=="UNX" +.ENDIF # "$(UNIXTEXT)"!="" + +.IF "$(EXTUPDATEINFO_NAME)"!="" +EXTUPDATEINFO_DEST:=$(MISC)/$(EXTUPDATEINFO_NAME) +EXTUPDATEINFO_SOURCE*=description.xml +.ENDIF # "$(EXTUPDATEINFO_NAME)"!="" + +.IF "$(JAVACLASSFILES:s/DEFINED//)"!="" || "$(javauno)"!="" +.IF "$(L10N_framework)"=="" +TARGETDPJ=$(MISC)/$(TARGET).dpj +.ENDIF # "$(L10N_framework)"=="" +.ENDIF + +.IF "$(make_srs_deps)"=="" +.IF "$(SRCFILES)" != "" || "$(SRC1FILES)" != "" || "$(SRC2FILES)" != "" +DPRTARGET= $(MISC)/$(TARGET).dpr +.ENDIF +.ENDIF + +.IF "$(make_zip_deps)"=="" +.IF "$(ZIP1TARGET)" != "" || "$(ZIP2TARGET)" != "" || "$(ZIP3TARGET)" != "" +DPZTARGET= $(MISC)/$(TARGET).dpz +.ENDIF # "$(ZIP1TARGET)" != "" || "$(ZIP2TARGET)" != "" || "$(ZIP3TARGET)" != "" +.ENDIF # "$(make_zip_deps)"=="" + +.IF "$(SOLAR_JAVA)"!="" +ALL_JAVA_TARGETS= \ + $(GENJAVAFILES) \ + $(JAVACLASSFILES) $(JAVA1CLASSFILES) \ + $(JAVA2CLASSFILES) $(JAVA3CLASSFILES) $(JAVA4CLASSFILES)\ + $(JAVA5CLASSFILES) $(JAVA6CLASSFILES) $(JAVA7CLASSFILES)\ + $(JAVA8CLASSFILES) $(JAVA9CLASSFILES) $(JAVA10CLASSFILES)\ + $(JAVA11CLASSFILES) \ + $(JAVATARGET) \ + $(TARGETDPJ) +.ENDIF # "$(SOLAR_JAVA)"!="" +# ------- +# - DEF - +# ------- + +# bei MAKE...DIR die gleiche Reihenfolge wie in settings.mak einhalten! + +.IF "$(lintit)"=="" +.IF "$(L10N_framework)"!="" +ALLTAR: \ + "$(SOLARVERSION)/$(INPATH)/inc/$(UPD)minor.mk" \ + $(SUBDIRS) \ + $(DPRTARGET) \ + $(DPZTARGET) \ + $(ZIPALL) \ + $(SDITARGET) $(SDI1TARGET) $(SDI2TARGET) \ + $(SDI3TARGET) $(SDI4TARGET) $(SDI5TARGET) \ + $(XMLPROPERTIESN) \ + $(RCTARGET) \ + $(SCP_PRODUCT_TYPE) \ + $(ALLPARFILES) \ + $(SCP1TARGETN) \ + $(SCP2TARGETN) \ + $(SCP3TARGETN) \ + $(SCP4TARGETN) \ + $(SCP5TARGETN) \ + $(SCP6TARGETN) \ + $(SCP7TARGETN) \ + $(SCP8TARGETN) \ + $(SCP9TARGETN) \ + $(SRC1TARGET) \ + $(SRC2TARGET) \ + $(SRC3TARGET) \ + $(SRC4TARGET) $(SRC5TARGET) $(SRC6TARGET) \ + $(SRC7TARGET) $(SRC8TARGET) $(SRC9TARGET) \ + $(SRC10TARGET) $(SRC11TARGET) $(SRC12TARGET) \ + $(SRC13TARGET) $(SRC14TARGET) $(SRC15TARGET) \ + $(SRC16TARGET) \ + $(RSC_MULTI1) \ + $(RSC_MULTI2) \ + $(RSC_MULTI3) \ + $(RSC_MULTI4) \ + $(RSC_MULTI5) \ + $(RSC_MULTI6) \ + $(RSC_MULTI7) \ + $(RSC_MULTI8) \ + $(RSC_MULTI9) \ + $(INDPRESLIB1TARGETN) \ + $(RESLIB1TARGETN) $(RESLIB2TARGETN) \ + $(RESLIB3TARGETN) $(RESLIB4TARGETN) \ + $(RESLIB5TARGETN) $(RESLIB6TARGETN) \ + $(RESLIB7TARGETN) $(RESLIB8TARGETN) \ + $(LOCALIZE_ME_DEST)\ + last_target + +.ELSE # "$(L10N_framework)"!="" + +ALLTAR: \ + "$(SOLARVERSION)/$(INPATH)/inc/$(UPD)minor.mk" \ + $(MAKEDEMODIR) $(MAKECOMPDIR) $(MAKEXLDIR) \ + $(COMPVERMK) \ + $(JAVAVERMK) \ + $(target_empty) \ + $(SUBDIRS) \ + $(ALLMOZ) \ + $(DELDEFS) \ + $(YACCTARGET) \ + $(UNOUCRTARGET) \ + $(UNOIDLDEPTARGETS) \ + $(DEPFILES) \ + $(DPRTARGET) \ + $(DPZTARGET) \ + $(ZIPALL) \ + $(SDITARGET) \ + $(LOCALDBTARGET) \ + $(LOCALDOCDBTARGET) \ + $(UNOIDLDBTARGET) \ + $(UNOIDLDBDOCTARGET) \ + $(COMP1RDBTARGETN) \ + $(COMP2RDBTARGETN) \ + $(COMP3RDBTARGETN) \ + $(COMP4RDBTARGETN) \ + $(COMP5RDBTARGETN) \ + $(COMP6RDBTARGETN) \ + $(COMP7RDBTARGETN) \ + $(COMP8RDBTARGETN) \ + $(COMP9RDBTARGETN) \ + $(IDL1TARGET) $(IDL2TARGET) $(IDL3TARGET) \ + $(IDL4TARGET) $(IDL5TARGET) \ + $(SDI1TARGET) $(SDI2TARGET) $(SDI3TARGET) \ + $(SDI4TARGET) $(SDI5TARGET) \ + $(HXXCOPYTARGET) \ + $(NOLIBOBJTARGET) \ + $(NOLIBSLOTARGET) \ + $(OTHERTARRGET) \ + $(XMLPROPERTIESN) \ + $(ALL_JAVA_TARGETS) \ + $(OBJTARGET) $(SLOTARGET) $(SMRSLOTARGET) \ + $($(SECOND_BUILD)SLOTARGET) \ + $($(SECOND_BUILD)OBJTARGET) \ + $(LIB1TARGET) $(LIB2TARGET) $(LIB3TARGET) \ + $(LIB4TARGET) $(LIB5TARGET) $(LIB6TARGET) \ + $(LIB7TARGET) $(LIB8TARGET) $(LIB9TARGET) \ + $(LIB1ARCHIV) $(LIB2ARCHIV) $(LIB3ARCHIV) \ + $(LIB4ARCHIV) $(LIB5ARCHIV) $(LIB6ARCHIV) \ + $(LIB7ARCHIV) $(LIB8ARCHIV) $(LIB9ARCHIV) \ + $(DEF1TARGETN) $(DEF2TARGETN) $(DEF3TARGETN) \ + $(DEF4TARGETN) $(DEF5TARGETN) $(DEF6TARGETN) \ + $(RCTARGET) \ + $(SHL1TARGETN) \ + $(SHL2TARGETN) \ + $(SHL3TARGETN) \ + $(SHL4TARGETN) \ + $(SHL5TARGETN) \ + $(SHL6TARGETN) \ + $(SHL7TARGETN) \ + $(SHL8TARGETN) \ + $(SHL9TARGETN) \ + $(SCP_PRODUCT_TYPE) \ + $(ALLPARFILES) \ + $(SCP1TARGETN) \ + $(SCP2TARGETN) \ + $(SCP3TARGETN) \ + $(SCP4TARGETN) \ + $(SCP5TARGETN) \ + $(SCP6TARGETN) \ + $(SCP7TARGETN) \ + $(SCP8TARGETN) \ + $(SCP9TARGETN) \ + $(APP1TARGETN) $(APP2TARGETN) $(APP3TARGETN) \ + $(APP4TARGETN) $(APP5TARGETN) $(APP6TARGETN) \ + $(APP7TARGETN) $(APP8TARGETN) $(APP9TARGETN) \ + $(JARTARGETN) \ + $(JARTARGETDEPN) \ + $(SRC1TARGET) \ + $(SRC2TARGET) \ + $(SRC3TARGET) \ + $(SRC4TARGET) $(SRC5TARGET) $(SRC6TARGET) \ + $(SRC7TARGET) $(SRC8TARGET) $(SRC9TARGET) \ + $(SRC10TARGET) $(SRC11TARGET) $(SRC12TARGET) \ + $(SRC13TARGET) $(SRC14TARGET) $(SRC15TARGET) \ + $(SRC16TARGET) \ + $(RSC_MULTI1) \ + $(RSC_MULTI2) \ + $(RSC_MULTI3) \ + $(RSC_MULTI4) \ + $(RSC_MULTI5) \ + $(RSC_MULTI6) \ + $(RSC_MULTI7) \ + $(RSC_MULTI8) \ + $(RSC_MULTI9) \ + $(INDPRESLIB1TARGETN) \ + $(RESLIB1TARGETN) $(RESLIB2TARGETN) \ + $(RESLIB3TARGETN) $(RESLIB4TARGETN) \ + $(RESLIB5TARGETN) $(RESLIB6TARGETN) \ + $(RESLIB7TARGETN) $(RESLIB8TARGETN) \ + $(RESLIB9TARGETN) \ + $(SIGNFORNETSCAPE) \ + $(SIGNFOREXPLORER) \ + $(SIGNFORJARSIGNER) \ + $(CONVERTUNIXTEXT) \ + $(LOCALIZE_ME_DEST)\ + $(EXTUPDATEINFO_DEST) \ + last_target + +.IF "$(BUILD_X64)"!="" +ALLTAR : \ + $(NOLIBOBJTARGET_X64) \ + $(NOLIBSLOTARGET_X64) \ + $(OBJTARGET_X64) $(SLOTARGET_X64) \ + $(LIB1TARGET_X64) $(LIB2TARGET_X64) \ + $(DEF1TARGETN_X64) $(DEF2TARGETN_X64) \ + $(SHL1TARGETN_X64) $(SHL2TARGETN_X64) +.ENDIF # "$(BUILD_X64)"!="" + +ALLTAR : "$(SOLARINCDIR)/$(UPD)minor.mk" + +.IF "$(EXCEPTIONSNOOPT_FLAG)"=="" +TARGETDEPS+=$(EXCEPTIONSNOOPTTARGET) +.ENDIF + +.IF "$(NOOPT_FLAG)"=="" +TARGETDEPS+=$(NOOPTTARGET) +.ENDIF + +#don't override .TARGETS when called with targets +.IF "$(MAKETARGETS)$(TNR)$(EXCEPTIONSNOOPT_FLAG)$(EXCEPTIONS_FLAG)$(NOOPT_FLAG)"=="" +.IF "$(TARGETDEPS)"!="" +#.TARGETS .SEQUENTIAL :- $(TARGETDEPS) ALLTAR +.INIT .SEQUENTIAL : $(TARGETDEPS) $(NULLPRQ) +.ENDIF +.ENDIF + +# -Gc breaks the dependency chain and causes indefinite nummbers of $(CPPUMAKER) +.IF "$(BOOTSTRAP_SERVICE)"!="TRUE" +CPPUMAKERFLAGS*=-L +.ENDIF # "$(BOOTSTRAP_SERVICE)"!="TRUE" + +.IF "$(UNOTYPES)" != "" +# makeing all in one +.DIRCACHE=no +.IF "$(OBJFILES)"!="" +$(OBJFILES) : $(UNOUCRTARGET) +.ENDIF # "$(OBJFILES)"!="" +.IF "$(SLOFILES)"!="" +$(SLOFILES) : $(UNOUCRTARGET) +.ENDIF # "$(SLOFILES)"!="" +.IF "$(DEPOBJFILES)"!="" +$(DEPOBJFILES) : $(UNOUCRTARGET) +.ENDIF # "$(SLOFILES)"!="" +.IF "$(NOOPTTARGET)"!="" +$(NOOPTTARGET) : $(UNOUCRTARGET) +.ENDIF # "$(SLOFILES)"!="" +.IF "$(NOOPTFILES)"!="" +$(NOOPTFILES) : $(UNOUCRTARGET) +.ENDIF # "$(SLOFILES)"!="" +.IF "$(EXCEPTIONSFILES)"!="" +$(EXCEPTIONSFILES) : $(UNOUCRTARGET) +.ENDIF # "$(SLOFILES)"!="" +.IF "$(EXCEPTIONSNOOPTTARGET)"!="" +$(EXCEPTIONSNOOPTTARGET) : $(UNOUCRTARGET) +.ENDIF # "$(SLOFILES)"!="" +.IF "$(EXCEPTIONSNOOPTFILES)"!="" +$(EXCEPTIONSNOOPTFILES) : $(UNOUCRTARGET) +.ENDIF # "$(SLOFILES)"!="" + +$(UNOUCRTARGET) : $(UNOUCRHEADER) + +# keep that one to rebuild single misses +$(UNOUCRHEADER): + @noop + +$(UNOUCRTARGET) : $(UNOUCRDEP) +.IF "$(XML2MK_FILES)"!="" + @@-$(RM) $(foreach,i,$(XML2MK_FILES) $(MISC)/$(i).mk) +.ENDIF # "$(XML2MK_FILES)"!="" + @@-$(MKDIRHIER) $(UNOUCROUT) + $(COMMAND_ECHO)$(CPPUMAKER) @$(mktmp $(CPPUMAKERFLAGS) -B$(UNOUCRBASE) -O$(UNOUCROUT) $(UNOTYPES:^"-T") $(UNOUCRRDB)) && $(TOUCH) $@ +.ENDIF # "$(UNOTYPES)" != "" + +.IF "$(COMP1RDBTARGETN)"!="" +$(COMP1RDBTARGETN) : $(COMPRDB) +.ENDIF # "$(COMP1RDBTARGETN)"!="" + +.IF "$(COMP2RDBTARGETN)"!="" +$(COMP2RDBTARGETN) : $(COMPRDB) +.ENDIF # "$(COMP2RDBTARGETN)"!="" + +.IF "$(COMP3RDBTARGETN)"!="" +$(COMP3RDBTARGETN) : $(COMPRDB) +.ENDIF # "$(COMP3RDBTARGETN)"!="" + +.IF "$(COMP4RDBTARGETN)"!="" +$(COMP4RDBTARGETN) : $(COMPRDB) +.ENDIF # "$(COMP4RDBTARGETN)"!="" + +.IF "$(COMP5RDBTARGETN)"!="" +$(COMP5RDBTARGETN) : $(COMPRDB) +.ENDIF # "$(COMP5RDBTARGETN)"!="" + +.IF "$(COMP6RDBTARGETN)"!="" +$(COMP6RDBTARGETN) : $(COMPRDB) +.ENDIF # "$(COMP6RDBTARGETN)"!="" + +.IF "$(COMP7RDBTARGETN)"!="" +$(COMP7RDBTARGETN) : $(COMPRDB) +.ENDIF # "$(COMP7RDBTARGETN)"!="" + +.IF "$(COMP8RDBTARGETN)"!="" +$(COMP8RDBTARGETN) : $(COMPRDB) +.ENDIF # "$(COMP8RDBTARGETN)"!="" + +.IF "$(COMP9RDBTARGETN)"!="" +$(COMP9RDBTARGETN) : $(COMPRDB) +.ENDIF # "$(COMP9RDBTARGETN)"!="" + +.ENDIF # "$(L10N_framework)"!="" +.ELSE # "$(lintit)"=="" + +ALLTAR: $(OBJFILES) $(SLOFILES) + +.ENDIF # "$(lintit)"=="" + +.IF "$(SDINAME)"!="" +$(OBJ)/$(CINTERNAME).obj : $(SDITARGET) +.ENDIF + +.IF "$(SDI1NAME)"!="" +$(OBJ)/$(CINTER1NAME).obj : $(SDI1TARGET) +.ENDIF + +.IF "$(SDI2NAME)"!="" +$(OBJ)/$(CINTER2NAME).obj : $(SDI2TARGET) +.ENDIF + +.IF "$(SDI3NAME)"!="" +$(OBJ)/$(CINTER3NAME).obj : $(SDI3TARGET) +.ENDIF + +.IF "$(SDI4NAME)"!="" +$(OBJ)/$(CINTER4NAME).obj : $(SDI4TARGET) +.ENDIF + +.IF "$(SDI5NAME)"!="" +$(OBJ)/$(CINTER5NAME).obj : $(SDI5TARGET) +.ENDIF + +.IF "$(SOLAR_JAVA)"!="" +.IF "$(GENJAVAFILES)"!="" +$(GENJAVAFILES) : $(RDB) +$(JAVATARGET) : $(GENJAVAFILES) +.ENDIF # "$(GENJAVAFILES)"!="" +.ENDIF # "$(SOLAR_JAVA)"!="" + +.IF "$(HXXCOPYFILES)" != "" +$(HXXCOPYTARGET): $(HXXCOPYFILES) + $(COMMAND_ECHO)$(COPY) $(COPYUPDATE) $(HXXCOPYFILES) $(INCCOM) $(CHECKCOPYURESULT) +.ENDIF + +.IF "$(UNIXTEXT)"!="" +$(UNIXTEXT) : $(UNIXTEXT:f) + @echo "Making: " $@ + @@-$(RM) -f $@ + @tr -d "\015" < $(@:f) > $@ + +.ENDIF # "$(UNIXTEXT)"!="" + +.IF "$(WITH_LANG)"!="" +.IF "$(LOCALIZESDF)"!="" + +# dummy target to keep the build happy if not even the .zip exists. localization tools deal with not existing +# localize.sdf themself +"$(LOCALIZESDF)%": + @echo $(LOCALIZESDF) + @@-$(MKDIRHIER) $(@:d) + $(TOUCH) $@ + +.IF "$(LOCALIZATION_FOUND)"=="" +.IF "$(LOCALSDFFILE)"!="" && "$(LOCALSDFFILE)"=="$(LOCALIZESDF)" +"$(LOCALIZESDF)" : $(SOLARCOMMONSDFDIR)/$(PRJNAME).zip + @@-$(MKDIRHIER) $(@:d) + @@-$(MKDIRHIER) $(COMMONMISC)/$(PRJNAME)_$(TARGET) + @-unzip -o -d $(COMMONMISC)/$(PRJNAME) $(SOLARCOMMONSDFDIR)/$(PRJNAME).zip $(subst,$(COMMONMISC)/$(PRJNAME)/, $@) + @@$(TOUCH) $@ +.ENDIF # "$(LOCALSDFFILE)"!="" +.ENDIF # "$(LOCALIZATION_FOUND)"=="" +.ENDIF # "$(LOCALIZESDF)"!="" +.ENDIF # "$(WITH_LANG)"!="" + +.IF "$(EXTUPDATEINFO_NAME)"!="" +$(EXTUPDATEINFO_DEST) : $(EXTUPDATEINFO_SOURCE) + $(PERL) $(SOLARENV)/bin/make_ext_update_info.pl --out $(EXTUPDATEINFO_DEST) $(foreach,i,$(EXTUPDATEINFO_URLS) --update-url "$i") $(EXTUPDATEINFO_SOURCE) +.ENDIF # "$(EXTUPDATEINFO_NAME)"!="" + +makedoc: + @@-mkdir $(OUT)/ucrdoc + $(COMMAND_ECHO)$(IDLC) $(VERBOSITY) @$(mktmp $(IDLCFLAGS) $(UNOIDLDEFS) $(UNOIDLINCEXTRA) $(UNOIDLINC) -C -O$(OUT)/ucrdoc/$(IDLPACKAGE) $(DEPIDLFILES:+"\n")) + +.IF "$(LOCALDBTARGET)"!="" +$(LOCALDBTARGET) : $(URDFILES) $(DEPIDLFILES) + $(COMMAND_ECHO)$(IDLC) $(VERBOSITY) @$(mktmp $(IDLCFLAGS) $(UNOIDLDEFS) $(UNOIDLINCEXTRA) $(UNOIDLINC) -O$(OUT)/ucr/$(IDLPACKAGE) $(all_outdated_idl)) + $(COMMAND_ECHO)-$(RM) $@ + $(COMMAND_ECHO)$(REGMERGE) $@ UCR @$(mktmp $(URDFILES)) +.ENDIF + +.IF "$(LOCALDOCDBTARGET)"!="" +$(LOCALDOCDBTARGET) : $(URDDOCFILES) $(DEPIDLFILES) + $(COMMAND_ECHO)$(IDLC) $(VERBOSITY) @$(mktmp $(IDLCFLAGS) $(UNOIDLDEFS) $(UNOIDLINCEXTRA) $(UNOIDLINC) -C -O$(OUT)/ucrdoc/$(IDLPACKAGE) $(all_outdated_idl)) + $(COMMAND_ECHO)-$(RM) $@ + $(COMMAND_ECHO)$(REGMERGE) $@ UCR @$(mktmp $(URDDOCFILES)) +.ENDIF + +.IF "$(UNOIDLDBTARGET)"!="" +$(UNOIDLDBTARGET) : $(UNOIDLDBFILES) $(UNOIDLDBREGS) + $(COMMAND_ECHO)-$(RM) $@ + $(COMMAND_ECHO)$(REGMERGE) $@ / @$(mktmp $(UNOIDLDBFILES) $(UNOIDLDBREGS)) +.IF "$(LOCALREGDB)"!="" + $(COMMAND_ECHO)$(REGMERGE) $(LOCALREGDB) / $@ +.ENDIF +.ENDIF # "$(UNOIDLDBTARGET)"!="" + +.IF "$(UNOIDLDBDOCTARGET)"!="" +$(UNOIDLDBDOCTARGET) : $(UNOIDLDBDOCFILES) $(UNOIDLDBDOCREGS) + $(COMMAND_ECHO)-$(RM) $@ + $(COMMAND_ECHO)$(REGMERGE) $@ / @$(mktmp $(UNOIDLDBDOCFILES) $(UNOIDLDBDOCREGS)) +.IF "$(LOCALREGDB)"!="" + $(COMMAND_ECHO)$(REGMERGE) $(LOCALREGDB) / $@ +.ENDIF +.ENDIF # "$(UNOIDLDBDOCTARGET)"!="" + +.IF "$(SCP_PRODUCT_TYPE)"!="" +$(SCP_PRODUCT_TYPE): + @@-$(MKDIRHIER) $(PAR)/$@ + @@-$(MKDIRHIER) $(BIN)/$@ + +.ENDIF # "$(PARFILES)"!="" + +"$(SOLARVERSION)/$(INPATH)/inc/minormkchanged.flg" : + $(TOUCH) $@ + +.IF "$(COMPVERMK)"!="" +.IF "$(UPDATER)"!="" +.IF "$(COMPATH:s!\!/!)"!="$(COMPATH_STORED)" +COMPVERMK_PHONY:=.PHONY +.ENDIF # "$(COMPATH:s!\!/!)"!="$(COMPATH_STORED)" +COMPVTMP:=$(mktmp iii) +"$(COMPVERMK)" $(COMPVERMK_PHONY): $(SOLARVERSION)/$(INPATH)/inc/minormkchanged.flg +.IF "$(CCNUMVER)"!="" + @echo COMNAME:=$(COMNAME) > $(COMPVTMP) + @echo COMID:=$(COMID) >> $(COMPVTMP) +.IF "$(COM)"=="GCC" + @echo SHORTSTDCPP3:=$(SHORTSTDCPP3) >> $(COMPVTMP) + @echo SHORTSTDC3:=$(SHORTSTDC3) >> $(COMPVTMP) +.ENDIF + @echo CCNUMVER:=$(CCNUMVER) >> $(COMPVTMP) + @echo CCVER:=$(CCVER:s/-/ /:1) >> $(COMPVTMP) + @echo CDEFS+=-DCPPU_ENV=$(COMNAME) >> $(COMPVTMP) + @echo COMPATH_STORED:=$(COMPATH:s!\!/!) >> $(COMPVTMP) + @@-$(RM) $(@)_$(COMPVTMP:b) + @$(TYPE) $(COMPVTMP) | tr -d "\015" > $(@)_$(COMPVTMP:b) + @$(IFEXIST) $@ $(THEN) $(RM:s/+//) $@ >& $(NULLDEV) $(FI) + @-$(RENAME) $(@)_$(COMPVTMP:b) $@ + @@-$(RM) $(@)_$(COMPVTMP:b) +.ELSE # "$(CCNUMVER)"!="" + @@-$(RM) $@ +.ENDIF # "$(CCNUMVER)"!="" + +.ENDIF # "$(COMPVERMK)"!="" +.ENDIF # "$(UPDATER)"!="" + +.IF "$(JAVAVERMK)"!="" +.IF "$(JAVALOCATION)"!="$(JAVA_HOME)" +"$(JAVAVERMK)" .PHONY : +.ELSE # "$(JAVALOCATION)"!="$(JAVA_HOME)" +"$(JAVAVERMK)" : $(SOLARVERSION)/$(INPATH)/inc/minormkchanged.flg +.ENDIF # "$(JAVALOCATION)"!="$(JAVA_HOME)" + @-$(RM) $@ + @echo JAVAVER:=$(JAVAVER) > $@ + @echo JAVANUMVER:=$(JAVANUMVER) >> $@ + @echo JAVALOCATION:=$(JAVA_HOME) >> $@ + +.ENDIF # "$(JAVAVERMK)"!="" + +# on recursive call there seems to be one blank in TARGETDEP +# which makes it not empty :-( +.IF "$(TARGETDEPS:s/ //)"!="" +$(TARGETDEPS) : $(LOCALIZE_ME_DEST) +.ENDIF # "$(TARGETDEPS)"!="" + +.IF "$(LOCALIZE_ME_DEST)"!="" + +.IF "$(WITH_LANG)"=="" +$(LOCALIZE_ME_DEST) : $(LOCALIZE_ME) + $(COMMAND_ECHO)-$(RM) $(INCCOM)/$(TARGET)_lastrun.mk + $(COMMAND_ECHO)-$(MKDIR) $(@:d) + $(COMMAND_ECHO)-$(RM) $@ + $(COMMAND_ECHO)$(COPY) $(@:b:+"_tmpl")$(@:e) $@ + +.ELSE # "$(WITH_LANG)"=="" +# LASTRUN_MERGED +.INCLUDE .IGNORE : $(INCCOM)/$(TARGET)_lastrun.mk +.IF "$(LASTRUN_MERGED)"=="TRUE" +$(LOCALIZE_ME_DEST) : $(LOCALIZE_ME) $(LOCALIZESDF) +.ELSE # "$(LASTRUN_MERGED)"=="TRUE" +$(LOCALIZE_ME_DEST) .PHONY : $(LOCALIZE_ME) $(LOCALIZESDF) + echo LASTRUN_MERGED:=TRUE > $(INCCOM)/$(TARGET)_lastrun.mk +.ENDIF # "$(LASTRUN_MERGED)"=="TRUE" + $(COMMAND_ECHO)-$(MKDIR) $(@:d) + $(COMMAND_ECHO)-$(RM) $@ + $(COMMAND_ECHO)$(TRANSEX) -p $(PRJNAME) -i $(@:b:+"_tmpl")$(@:e) -o $(@:d)/$(@:b:+"_tmpl")$(@:e).$(INPATH) -m $(LOCALIZESDF) -l all + $(COMMAND_ECHO)$(RENAME) $(@:d)$(@:b:+"_tmpl")$(@:e).$(INPATH) $@ + +.ENDIF # "$(WITH_LANG)"=="" +.ENDIF # "$(LOCALIZE_ME_DEST)"!="" + +.IF "$(XMLPROPERTIES)"!="" +.IF "$(L10N_framework)"!="" +XML_ISO_CODE*=-ISO99 $(L10N_framework) +.ENDIF +.IF "$(WITH_LANG)"!="" +$(MISC)/$(TARGET)_%.done : $(COMMONMISC)/$(TARGET)/%.xrb +.ELSE # "$(WITH_LANG)"!="" +$(MISC)/$(TARGET)_%.done : %.xrb +.ENDIF # "$(WITH_LANG)"!="" + @@-$(RM) $(MISC)/$(<:b).interm$(TARGET) + native2ascii -encoding UTF8 $< $(MISC)/$(<:b).interm$(TARGET) && $(XMLEX) -i $(MISC)/$(<:b).interm$(TARGET) -o $(CLASSDIR) $(XML_ISO_CODE) -g -d $@ + @@$(RM) $(MISC)/$(<:b).interm$(TARGET) +.ENDIF # "$(XMLPROPERTIES)"!="" + +.IF "$(SDI1TARGET)$(SDI2TARGET)$(SDI3TARGET)$(SDI4TARGET)$(SDI5TARGET)$(SDI6TARGET)$(SDI7TARGET)$(SDI8TARGET)$(SDI9TARGET)"!="" +.INCLUDE : _tg_sdi.mk +.ENDIF # "$(SDI1TARGET)$(SDI2TARGET)$(SDI3TARGET)$(SDI4TARGET)$(SDI5TARGET)$(SDI6TARGET)$(SDI7TARGET)$(SDI8TARGET)$(SDI9TARGET)"!="" + +.IF "$(DEF1NAME)$(DEF2NAME)$(DEF3NAME)$(DEF4NAME)$(DEF5NAME)$(DEF6NAME)$(DEF7NAME)$(DEF8NAME)$(DEF9NAME)"!="" +.INCLUDE : _tg_def.mk +.ENDIF + +# ------- +# - LIB - +# ------- + +.IF "$(OBJTARGET)$($(SECOND_BUILD)OBJTARGET)"!="" +.INCLUDE : tg_obj.mk +.ENDIF # "$(OBJTARGET)$($(SECOND_BUILD)OBJTARGET)"!="" + +# ------- +# - SLB - +# ------- + +.IF "$(SLOTARGET)$($(SECOND_BUILD)SLOTARGET)"!="" +.INCLUDE : tg_slo.mk +.ENDIF # "$(SLOTARGET)$($(SECOND_BUILD)SLOTARGET)"!="" + +# -------- +# - LIBS - +# -------- + +.IF "$(LIB1TARGET)$(LIB2TARGET)$(LIB3TARGET)$(LIB4TARGET)$(LIB5TARGET)$(LIB6TARGET)$(LIB7TARGET)$(LIB8TARGET)$(LIB9TARGET)" != "" +.INCLUDE : _tg_lib.mk +.ENDIF # "$(LIB1TARGET)$(LIB2TARGET)$(LIB3TARGET)$(LIB4TARGET)$(LIB5TARGET)$(LIB6TARGET)$(LIB7TARGET)$(LIB8TARGET)$(LIB9TARGET)" != "" + +# ------- +# - SRS - +# ------- + +.IF "$(SRS1NAME)$(SRS2NAME)$(SRS3NAME)$(SRS4NAME)$(SRS5NAME)$(SRS6NAME)$(SRS7NAME)$(SRS8NAME)$(SRS9NAME)"!="" +.INCLUDE : _tg_srs.mk +.ENDIF # "$(SRS1NAME)$(SRS2NAME)$(SRS3NAME)$(SRS4NAME)$(SRS5NAME)$(SRS6NAME)$(SRS7NAME)$(SRS8NAME)$(SRS9NAME)"!="" + +# ------- +# - RES - +# ------- + +.IF "$(RCTARGET)"!="" +.INCLUDE : tg_res.mk +.ENDIF # "$(RCTARGET)"!="" + +# ------- +# - SHL - +# ------- + +.IF "$(SHL1TARGETN)$(SHL2TARGETN)$(SHL3TARGETN)$(SHL4TARGETN)$(SHL5TARGETN)$(SHL6TARGETN)$(SHL7TARGETN)$(SHL8TARGETN)$(SHL9TARGETN)"!="" +.INCLUDE : _tg_shl.mk +.ENDIF # "$(SHL1TARGETN)$(SHL2TARGETN)$(SHL3TARGETN)$(SHL4TARGETN)$(SHL5TARGETN)$(SHL6TARGETN)$(SHL7TARGETN)$(SHL8TARGETN)$(SHL9TARGETN)"!="" + +.IF "$(USE_VERSIONH)"!="" +.INIT .SEQUENTIAL : $(USE_VERSIONH) $(NULLPRQ) +.ENDIF # "$(USE_VERSIONH)"!="" + +# ------- +# - APP - +# ------- + +.IF "$(APP1TARGETN)$(APP2TARGETN)$(APP3TARGETN)$(APP4TARGETN)$(APP5TARGETN)$(APP6TARGETN)$(APP7TARGETN)$(APP8TARGETN)$(APP9TARGETN)"!="" +.INCLUDE : _tg_app.mk +.ENDIF + +# ------- +# - SCP - +# ------- + +.IF "$(SCP1TARGETN)$(SCP2TARGETN)$(SCP3TARGETN)$(SCP4TARGETN)$(SCP5TARGETN)$(SCP6TARGETN)$(SCP7TARGETN)$(SCP8TARGETN)$(SCP9TARGETN)"!="" +.INCLUDE : _tg_scp.mk +.ENDIF + +# ------- +# - ZIP - +# ------- + +.IF "$(ZIP1TARGET)$(ZIP2TARGET)$(ZIP3TARGET)$(ZIP4TARGET)$(ZIP5TARGET)$(ZIP6TARGET)$(ZIP7TARGET)$(ZIP8TARGET)$(ZIP9TARGET)"!="" +.INCLUDE : _tg_zip.mk +.ENDIF + +# ------- +# - RESLIBTARGET - +# ------- + +.IF "$(RESLIB1TARGETN)$(RESLIB2TARGETN)$(RESLIB3TARGETN)$(RESLIB4TARGETN)$(RESLIB5TARGETN)$(RESLIB6TARGETN)$(RESLIB7TARGETN)$(RESLIB8TARGETN)$(RESLIB9TARGETN)"!="" +.INCLUDE : _tg_rslb.mk +.ENDIF + +# ------- +# - processing config - +# ------- + +.IF "$(XCSFILES)$(XCUFILES)"!="" +.INCLUDE : tg_config.mk +.ENDIF # "$(XCSFILES)$(XCUFILES)"!="" + + +# ------------------ +# - INCLUDE DEPEND - +# ------------------ + +# same block as in depend build +.IF "$(MAKEFILERC)"=="" +.IF "$(RCFILES)$(SLOFILES)$(OBJFILES)$(DEPOBJFILES)$(PARFILES)" != "" +.IF "$(DEPFILES)" != "" +.INCLUDE : $(DEPFILES) +.ENDIF # "$(DEPFILES)" != "" +.IF "$(nodep)"=="" +.IF "$(DEPCOLLECT_SLO)" != "" +.PHONY : $(DEPCOLLECT_SLO) +.INCLUDE .IGNORE : $(DEPCOLLECT_SLO) +.INCLUDE : $(DEPFILE_SLO) +.ENDIF # "$(DEPCOLLECT_SLO)" != "" +.IF "$(DEPCOLLECT_OBJ)" != "" +.PHONY : $(DEPCOLLECT_OBJ) +.INCLUDE .IGNORE : $(DEPCOLLECT_OBJ) +.INCLUDE : $(DEPFILE_OBJ) +.ENDIF # "$(DEPCOLLECT_OBJ)" != "" +.ENDIF # "$(nodep)"=="" +.ENDIF # "$(RCFILES)$(SLOFILES)$(OBJFILES)$(DEPOBJFILES)$(PARFILES)" != "" +.ELSE # MAKEFILERC +.ENDIF # MAKEFILERC + +.IF "$(make_srs_deps)"=="" +.IF "$(SRCFILES)" != "" || "$(SRC1FILES)" != "" || "$(SRC2FILES)" != "" +.IF "$(nodep)"=="" +.INCLUDE : $(MISC)/$(TARGET).dpr +.ENDIF # "$(nodep)"=="" +.ENDIF +.ENDIF + +.IF "$(make_zip_deps)"=="" +.IF "$(ZIP1TARGET)" != "" || "$(ZIP2TARGET)" != "" || "$(ZIP3TARGET)" != "" +.IF "$(nodep)"=="" +.INCLUDE : $(MISC)/$(TARGET).dpz +# introduce separation char +missing_zipdep_langs=$(alllangiso:^"+":+"+") +some_dummy_var:=$(foreach,i,$(zipdep_langs) $(assign missing_zipdep_langs:=$(strip $(subst,+$(i)+, $(missing_zipdep_langs))))) +.IF "$(missing_zipdep_langs)"!="" +ZIPDEPPHONY=.PHONY +.ENDIF # "$(missing_zipdep_langs)"!="" +.ENDIF # "$(nodep)"=="" +.ENDIF +.ENDIF + +last_target: + $(NULL) + +$(MISC)/$(TARGET)genjava.mk: $(IDLFILES) + +.IF "$(JAVACLASSFILES:s/DEFINED//)"!="" +.IF "$(L10N_framework)"=="" +.INCLUDE .IGNORE : $(MISC)/$(TARGET).dpj +$(TARGETDPJ) : $(JAVAFILES) $(JAVATARGET) +.ENDIF # "$(L10N_framework)"=="" +.ENDIF + +.IF "$(JARTARGETN)"!="" +.INCLUDE : tg_jar.mk +.ENDIF # "$(JARTARGETN)"!="" + +# ---------------------------------- +# - NOOPT - files ohne optimierung - +# ---------------------------------- + +.IF "$(NOOPTTARGET)" != "" +.IF "$(NOOPT_FLAG)" == "" + +$(NOOPTTARGET): +.IF "$(VERBOSE)" == "TRUE" + @echo --- NOOPTFILES --- +.ENDIF + @dmake $(MFLAGS) $(MAKEFILE) nopt=true $(NOOPTFILES) NOOPT_FLAG=TRUE $(CALLMACROS) +.IF "$(VERBOSE)" == "TRUE" + @echo --- NOOPTFILES OVER --- +.ENDIF + +$(NOOPTFILES): +.IF "$(VERBOSE)" == "TRUE" + @echo --- NOOPT --- +.ENDIF + @dmake $(MFLAGS) $(MAKEFILE) nopt=true NOOPT_FLAG=TRUE $(CALLMACROS) $@ +.IF "$(VERBOSE)" == "TRUE" + @echo --- NOOPT OVER --- +.ENDIF +.ENDIF +.ENDIF + + +# ---------------------------------- +# - EXCEPTIONSNOOPT - files with exceptions, without optimization - +# ---------------------------------- + +.IF "$(EXCEPTIONSNOOPTTARGET)" != "" +.IF "$(EXCEPTIONSNOOPT_FLAG)" == "" + +$(EXCEPTIONSNOOPTTARGET): +.IF "$(VERBOSE)" == "TRUE" + @echo --- EXCEPTIONSNOOPTFILES --- +.ENDIF + @dmake $(MFLAGS) $(MAKEFILE) ENABLE_EXCEPTIONS=true $(EXCEPTIONSNOOPTFILES) EXCEPTIONSNOOPT_FLAG=TRUE nopt=true $(CALLMACROS) +.IF "$(VERBOSE)" == "TRUE" + @echo --- EXCEPTIONSNOOPTFILES OVER --- +.ENDIF + +$(EXCEPTIONSNOOPTFILES): +.IF "$(VERBOSE)" == "TRUE" + @echo --- EXCEPTIONSNOOPT --- +.ENDIF + @dmake $(MFLAGS) $(MAKEFILE) ENABLE_EXCEPTIONS=true EXCEPTIONSNOOPT_FLAG=TRUE nopt=true $(CALLMACROS) $@ +.IF "$(VERBOSE)" == "TRUE" + @echo --- EXCEPTIONSNOOPT OVER --- +.ENDIF + + +.ENDIF +.ENDIF + +.IF "$(nodep)"=="" +# recreate dependency files that were removed manually or vanished otherwise... +forcedeps: $(DEPFILE_SLO) $(DEPFILE_OBJ) + @$(null,$(DEPS_MISSING) noop $(eq,$(sort $(DEPS_MISSING)),$(sort $(DEPS_MADE)) noop dmake depend=t $(MFLAGS) $(MAKEMACROS) ALLDEP)) + @noop $(foreach,i,$($(TARGET)_known_dpcc) $(assign DEPS_MADE:=$(subst,$i, $(DEPS_MADE)))) + @$(null,$(DEPS_MADE) noop $(null,$(DEPFILE_SLO) noop $(RM) $(DEPFILE_SLO))) + @$(null,$(DEPS_MADE) noop $(null,$(DEPFILE_OBJ) noop $(RM) $(DEPFILE_OBJ))) + +ALLTAR : forcedeps + +.ENDIF # "$(nodep)"=="" + +# ------------------------- +# - several kill targets - +# ------------------------- + +"$(TMP)/makedt.don": + @$(TOUCH) $(TMP)/makedt.don + +killbin: +.IF "$(GUI)"=="WNT" + @$(IFEXIST) $(BIN)/$(SHL1TARGET).dll $(THEN) $(RM:s/+//) $(BIN)/$(SHL1TARGET).dll $(FI) + @$(IFEXIST) $(BIN)/$(SHL2TARGET).dll $(THEN) $(RM:s/+//) $(BIN)/$(SHL2TARGET).dll $(FI) + @$(IFEXIST) $(BIN)/$(SHL3TARGET).dll $(THEN) $(RM:s/+//) $(BIN)/$(SHL3TARGET).dll $(FI) + @$(IFEXIST) $(BIN)/$(SHL4TARGET).dll $(THEN) $(RM:s/+//) $(BIN)/$(SHL4TARGET).dll $(FI) + @$(IFEXIST) $(BIN)/$(SHL5TARGET).dll $(THEN) $(RM:s/+//) $(BIN)/$(SHL5TARGET).dll $(FI) + @$(IFEXIST) $(BIN)/$(SHL6TARGET).dll $(THEN) $(RM:s/+//) $(BIN)/$(SHL6TARGET).dll $(FI) + @$(IFEXIST) $(BIN)/$(SHL7TARGET).dll $(THEN) $(RM:s/+//) $(BIN)/$(SHL7TARGET).dll $(FI) + @$(IFEXIST) $(BIN)/$(SHL8TARGET).dll $(THEN) $(RM:s/+//) $(BIN)/$(SHL8TARGET).dll $(FI) + @$(IFEXIST) $(BIN)/$(SHL9TARGET).dll $(THEN) $(RM:s/+//) $(BIN)/$(SHL9TARGET).dll $(FI) + @$(IFEXIST) $(BIN)/$(APP1TARGET)$(EXECPOST) $(THEN) $(RM:s/+//) $(BIN)/$(APP1TARGET)$(EXECPOST) $(FI) + @$(IFEXIST) $(BIN)/$(APP2TARGET)$(EXECPOST) $(THEN) $(RM:s/+//) $(BIN)/$(APP2TARGET)$(EXECPOST) $(FI) + @$(IFEXIST) $(BIN)/$(APP3TARGET)$(EXECPOST) $(THEN) $(RM:s/+//) $(BIN)/$(APP3TARGET)$(EXECPOST) $(FI) + @$(IFEXIST) $(BIN)/$(APP4TARGET)$(EXECPOST) $(THEN) $(RM:s/+//) $(BIN)/$(APP4TARGET)$(EXECPOST) $(FI) + @$(IFEXIST) $(BIN)/$(APP5TARGET)$(EXECPOST) $(THEN) $(RM:s/+//) $(BIN)/$(APP5TARGET)$(EXECPOST) $(FI) + @$(IFEXIST) $(BIN)/$(APP6TARGET)$(EXECPOST) $(THEN) $(RM:s/+//) $(BIN)/$(APP6TARGET)$(EXECPOST) $(FI) + @$(IFEXIST) $(BIN)/$(APP7TARGET)$(EXECPOST) $(THEN) $(RM:s/+//) $(BIN)/$(APP7TARGET)$(EXECPOST) $(FI) + @$(IFEXIST) $(BIN)/$(APP8TARGET)$(EXECPOST) $(THEN) $(RM:s/+//) $(BIN)/$(APP8TARGET)$(EXECPOST) $(FI) + @$(IFEXIST) $(BIN)/$(APP9TARGET)$(EXECPOST) $(THEN) $(RM:s/+//) $(BIN)/$(APP9TARGET)$(EXECPOST) $(FI) + +.ELSE # "$(GUI)"=="WNT" +.IF "$(SHL1TARGET)"!="" + @-$(RM) $(LB)/$(SHL1DLLPRE)$(SHL1TARGET)$(DLLPOST) +.ENDIF +.IF "$(SHL2TARGET)"!="" + @-$(RM) $(LB)/$(SHL2DLLPRE)$(SHL2TARGET)$(DLLPOST) +.ENDIF +.IF "$(SHL3TARGET)"!="" + @-$(RM) $(LB)/$(SHL3DLLPRE)$(SHL3TARGET)$(DLLPOST) +.ENDIF +.IF "$(SHL4TARGET)"!="" + @-$(RM) $(LB)/$(SHL4DLLPRE)$(SHL4TARGET)$(DLLPOST) +.ENDIF +.IF "$(SHL5TARGET)"!="" + @-$(RM) $(LB)/$(SHL5DLLPRE)$(SHL5TARGET)$(DLLPOST) +.ENDIF +.IF "$(SHL6TARGET)"!="" + @-$(RM) $(LB)/$(SHL6DLLPRE)$(SHL6TARGET)$(DLLPOST) +.ENDIF +.IF "$(SHL7TARGET)"!="" + @-$(RM) $(LB)/$(SHL7DLLPRE)$(SHL7TARGET)$(DLLPOST) +.ENDIF +.IF "$(SHL8TARGET)"!="" + @-$(RM) $(LB)/$(SHL8DLLPRE)$(SHL8TARGET)$(DLLPOST) +.ENDIF +.IF "$(SHL9TARGET)"!="" + @-$(RM) $(LB)/$(SHL9DLLPRE)$(SHL9TARGET)$(DLLPOST) +.ENDIF +.IF "$(APP1TARGET)"!="" + @-$(RM) $(BIN)/$(APP1TARGET)$(EXECPOST) +.ENDIF +.IF "$(APP2TARGET)"!="" + @-$(RM) $(BIN)/$(APP2TARGET)$(EXECPOST) +.ENDIF +.IF "$(APP3TARGET)"!="" + @-$(RM) $(BIN)/$(APP3TARGET)$(EXECPOST) +.ENDIF +.IF "$(APP4TARGET)"!="" + @-$(RM) $(BIN)/$(APP4TARGET)$(EXECPOST) +.ENDIF +.IF "$(APP5TARGET)"!="" + @-$(RM) $(BIN)/$(APP5TARGET)$(EXECPOST) +.ENDIF +.IF "$(APP6TARGET)"!="" + @-$(RM) $(BIN)/$(APP6TARGET)$(EXECPOST) +.ENDIF +.IF "$(APP7TARGET)"!="" + @-$(RM) $(BIN)/$(APP7TARGET)$(EXECPOST) +.ENDIF +.IF "$(APP8TARGET)"!="" + @-$(RM) $(BIN)/$(APP8TARGET)$(EXECPOST) +.ENDIF +.IF "$(APP9TARGET)"!="" + @-$(RM) $(BIN)/$(APP9TARGET)$(EXECPOST) +.ENDIF +.ENDIF # "$(GUI)"=="WNT" + +killobj: +.IF "$(SLOFILES)" != "" + -cd $(SLO) && $(TYPE:s/+//) $(mktmp $(SLOFILES:f)) | xargs -n 20 rm + -cd $(SLO) && $(TYPE:s/+//) $(mktmp $(SLOFILES:s/.obj/.o/:f)) | xargs -n 20 rm +.ENDIF +.IF "$(OBJFILES)" != "" + -cd $(OBJ) && $(TYPE:s/+//) $(mktmp $(OBJFILES:f)) | xargs -n 20 rm + -cd $(OBJ) && $(TYPE:s/+//) $(mktmp $(OBJFILES:s/.obj/.o/:f)) | xargs -n 20 rm +.ENDIF + +.IF "$(REAL_$(SECOND_BUILD)_SLOFILES)" != "" + -cd $(REAL_$(SECOND_BUILD)_SLO) && $(TYPE:s/+//) $(mktmp $(REAL_$(SECOND_BUILD)_SLOFILES:f)) | xargs -n 20 rm + -cd $(REAL_$(SECOND_BUILD)_SLO) && $(TYPE:s/+//) $(mktmp $(REAL_$(SECOND_BUILD)_SLOFILES:s/.obj/.o/:f)) | xargs -n 20 rm +.ENDIF +.IF "$(REAL_$(SECOND_BUILD)_OBJFILES)" != "" + -cd $(REAL_$(SECOND_BUILD)_OBJ) && $(TYPE:s/+//) $(mktmp $(REAL_$(SECOND_BUILD)_OBJFILES:f)) | xargs -n 20 rm + -cd $(REAL_$(SECOND_BUILD)_OBJ) && $(TYPE:s/+//) $(mktmp $(REAL_$(SECOND_BUILD)_OBJFILES:s/.obj/.o/:f)) | xargs -n 20 rm +.ENDIF +.IF "$(DEPOBJFILES)" != "" + -cd $(SLO) && $(TYPE:s/+//) $(mktmp $(DEPOBJFILES:f)) | xargs -n 20 rm + -cd $(SLO) && $(TYPE:s/+//) $(mktmp $(DEPOBJFILES:s/.obj/.o/:f)) | xargs -n 20 rm + -cd $(OBJ) && $(TYPE:s/+//) $(mktmp $(DEPOBJFILES:f)) | xargs -n 20 rm + -cd $(OBJ) && $(TYPE:s/+//) $(mktmp $(DEPOBJFILES:s/.obj/.o/:f)) | xargs -n 20 rm +.ENDIF + @echo objects weg! + +killsrs: +# doesn't work - fix me! +.IF "$(SRSFILES)" != "" + $(RM) $(SRSFILES) +.ENDIF + @echo srsfiles weg! + +killres: +.IF "$(RESLIB1TARGETN)$(RESLIB2TARGETN)$(RESLIB3TARGETN)$(RESLIB4TARGETN)$(RESLIB5TARGETN)$(RESLIB6TARGETN)$(RESLIB7TARGETN)$(RESLIB8TARGETN)$(RESLIB9TARGETN)"!="" + @(COMMAND_ECHO)$(RM) $(RESLIB1TARGETN) $(RESLIB2TARGETN) $(RESLIB3TARGETN) $(RESLIB4TARGETN) $(RESLIB5TARGETN) $(RESLIB6TARGETN) $(RESLIB7TARGETN) $(RESLIB8TARGETN) $(RESLIB9TARGETN) + @echo resource files removed! +.ELSE # "$(RESLIB1TARGETN)$(RESLIB2TARGETN)$(RESLIB3TARGETN)$(RESLIB4TARGETN)$(RESLIB5TARGETN)$(RESLIB6TARGETN)$(RESLIB7TARGETN)$(RESLIB8TARGETN)$(RESLIB9TARGETN)"!="" + @echo no resource files defined! +.ENDIF # "$(RESLIB1TARGETN)$(RESLIB2TARGETN)$(RESLIB3TARGETN)$(RESLIB4TARGETN)$(RESLIB5TARGETN)$(RESLIB6TARGETN)$(RESLIB7TARGETN)$(RESLIB8TARGETN)$(RESLIB9TARGETN)"!="" + +killdef: +.IF "$(DEFTARGETN)" != "" + @(COMMAND_ECHO)$(RM) $(DEFTARGETN) +.ENDIF + @echo deffiles weg! + +killlib: +.IF "$(LIB1TARGETN)$(LIB2TARGETN)$(LIB3TARGETN)$(LIB4TARGETN)$(LIB5TARGETN)$(LIB6TARGETN)$(LIB7TARGETN)$(LIB8TARGETN)$(LIB9TARGETN)"!="" + @(COMMAND_ECHO)$(RM) $(LIB1TARGETN) $(LIB2TARGETN) $(LIB3TARGETN) $(LIB4TARGETN) $(LIB5TARGETN) $(LIB6TARGETN) $(LIB7TARGETN) $(LIB8TARGETN) $(LIB9TARGETN) +.IF "$(LIB1ARCHIV)$(LIB2ARCHIV)$(LIB3ARCHIV)$(LIB4ARCHIV)$(LIB5ARCHIV)$(LIB6ARCHIV)$(LIB7ARCHIV)$(LIB8ARCHIV)$(LIB9ARCHIV)"!="" + @(COMMAND_ECHO)$(RM) $(LIB1ARCHIV) $(LIB2ARCHIV) $(LIB3ARCHIV) $(LIB4ARCHIV) $(LIB5ARCHIV) $(LIB6ARCHIV) $(LIB7ARCHIV) $(LIB8ARCHIV) $(LIB9ARCHIV) +.ENDIF # "$(LIB1ARCHIV)$(LIB2ARCHIV)$(LIB3ARCHIV)$(LIB4ARCHIV)$(LIB5ARCHIV)$(LIB6ARCHIV)$(LIB7ARCHIV)$(LIB8ARCHIV)$(LIB9ARCHIV)"!="" + @echo lib/archive files removed! +.ENDIF # "$(LIB1TARGETN)$(LIB2TARGETN)$(LIB3TARGETN)$(LIB4TARGETN)$(LIB5TARGETN)$(LIB6TARGETN)$(LIB7TARGETN)$(LIB8TARGETN)$(LIB9TARGETN)"!="" +.IF "$(SLOTARGET)$(OBJTARGET)"!="" + @(COMMAND_ECHO)$(RM) $(SLOTARGET) $(OBJTARGET) + @echo default lib files removed! +.ENDIF # "$(SLOTARGET)$(OBJTARGET)"!="" + @echo done! + +clean_misc : +.IF "$(MISC)"!="" + rm -rf $(MISC)/* + @echo misc is gone! +.ELSE # "$(MISC)"!="" + @echo can\'t be done! $$(MISC) not defined. +.ENDIF # "$(MISC)"!="" + +clean_all : +.IF "$(OUT)"!="" + test -f $(PRJ)/prj/build.lst && rm -rf $(OUT) + @echo local output tree is gone! +.ELSE # "$(OUT)"!="" + @echo can\'t be done! $$(OUT) not defined. +.ENDIF # "$(OUT)"!="" + + +SRCALLTARGET: \ + $(SDITARGET) $(SDI1TARGET) $(SDI2TARGET) \ + $(SDI3TARGET) $(SDI4TARGET) $(SDI5TARGET) \ + $(SRC1TARGET) \ + $(SRC2TARGET) \ + $(SRC3TARGET) $(RCTARGET) \ + $(SRC4TARGET) $(SRC5TARGET) $(SRC6TARGET) \ + $(SRC7TARGET) $(SRC8TARGET) $(SRC9TARGET) \ + $(SRC10TARGET) $(SRC11TARGET) $(SRC12TARGET) \ + $(SRC13TARGET) $(SRC14TARGET) $(SRC15TARGET) \ + $(SRC16TARGET) + +.IF "$(ZIP1TARGETN)$(ZIP2TARGETN)$(ZIP3TARGETN)$(ZIP4TARGETN)$(ZIP5TARGETN)$(ZIP6TARGETN)$(ZIP7TARGETN)$(ZIP8TARGETN)$(ZIP9TARGETN)"!="" +ZIPALLTARGET: \ + $(ZIP1TARGETN) \ + $(ZIP2TARGETN) \ + $(ZIP3TARGETN) \ + $(ZIP4TARGETN) \ + $(ZIP5TARGETN) \ + $(ZIP6TARGETN) \ + $(ZIP7TARGETN) \ + $(ZIP8TARGETN) \ + $(ZIP9TARGETN) +.ELSE +ZIPALLTARGET: +.IF "$(VERBOSE)" != "FALSE" + @echo --------------------------------------- +.ENDIF + @echo nothing to zip for activated languages! +.IF "$(VERBOSE)" != "FALSE" + @echo --------------------------------------- +.ENDIF +.ENDIF + + +#temporary workaround for non-existing delzip in extras +delzip: + @echo + @echo ERROR: ZIPnTARGETS need a file named "delzip" to exist beside their makefile.mk + @echo ERROR: Create an empty file named delzip and commit it + @echo ERROR: for details see #i78434# + force_dmake_to_error + +.IF "$(make_srs_deps)"=="" +$(MISC)/$(TARGET).dpr : $(SRCFILES) $(SRC1FILES) $(SRC2FILES) $(SRC3FILES) +.ENDIF + +.IF "$(make_zip_deps)"=="" +$(MISC)/$(TARGET).dpz $(ZIPDEPPHONY) : $(ZIP1TARGETN) $(ZIP2TARGETN) $(ZIP3TARGETN) $(ZIP4TARGETN) $(ZIP5TARGETN) $(ZIP6TARGETN) $(ZIP7TARGETN) $(ZIP8TARGETN) $(ZIP9TARGETN) +.ENDIF + +VERSIONTMP:=$(mktmp iii) +$(INCCOM)/%_version.h : $(SOLARVERSION)/$(INPATH)/inc/minormkchanged.flg + @echo $(EMQ)#define _BUILD $(EMQ)"$(BUILD)$(EMQ)" > $(VERSIONTMP) + @echo $(EMQ)#define _UPD $(EMQ)"$(UPD)$(EMQ)" >> $(VERSIONTMP) + @echo $(EMQ)#define _LAST_MINOR $(EMQ)"$(LAST_MINOR)$(EMQ)" >> $(VERSIONTMP) + @echo $(EMQ)#define _RSCREVISION $(EMQ)"$(USQ)$(RSCREVISION)$(USQ)$(EMQ)" >> $(VERSIONTMP) + @echo $(EMQ)#define _INPATH $(EMQ)"$(INPATH)$(EMQ)" >> $(VERSIONTMP) + @@-$(RM) $(@)_$(VERSIONTMP:b) + @$(TYPE) $(VERSIONTMP) > $(@)_$(VERSIONTMP:b) + @@-$(RM) $@ + @-$(RENAME) $(@)_$(VERSIONTMP:b) $@ + +.IF "$(MAKEFILERC)"=="" +warn_target_empty: + @echo '*' + @echo '* error $$(TARGET) is empty - this will cause problems' + @echo '*' + force_dmake_to_error +.ELSE +warn_target_empty: + @echo generated makefile.rc detected +.ENDIF + +.IF "$(UNOTYPES)" != "" +UNOUCRDEPxxx : $(UNOUCRDEP); +.ENDIF # "$(UNOTYPES)" != "" + + +##new hid.lst trigger with GEN_HID2=TRUE +#$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(BIN))/hid.lst .PHONY : +# @echo "Making: " $@ +# @echo $(WORK_STAMP).$(LAST_MINOR) 010101010101010 > $@.$(ROUT).tmp +# $(COMMAND_ECHO)$(TYPE) $(SOLARCOMMONBINDIR)/hid/*.hid | tr -d "\015" | $(SORT) -u >> $@.$(ROUT).tmp +# @$(IFEXIST) $@ $(THEN) $(RM:s/+//) $@ $(FI) +# @-$(RENAME) $@.$(ROUT).tmp $@ +# @-mkdir $(@:d)hid +# $(COMMAND_ECHO)$(PERL) $(SOLARENV)/bin/gen_userfeedback_VCL_names.pl $@ $(SOLARCOMMONBINDIR)/win $(subst,$(OUTPATH),$(COMMON_OUTDIR) $(BIN))/hid/userfeedback_VCL_names.csv.$(ROUT).tmp +# @$(IFEXIST) $@ $(THEN) $(RM:s/+//) $(subst,$(OUTPATH),$(COMMON_OUTDIR) $(BIN))/hid/userfeedback_VCL_names.csv $(FI) +# @-$(RENAME) $(subst,$(OUTPATH),$(COMMON_OUTDIR) $(BIN))/hid/userfeedback_VCL_names.csv.$(ROUT).tmp $(subst,$(OUTPATH),$(COMMON_OUTDIR) $(BIN))/hid/userfeedback_VCL_names.csv + + +.IF "$(SOLAR_JAVA)"!="" +.IF "$(JAVACLASSFILES:s/DEFINED//)$(javauno)"!="" +.INCLUDE : tg_java.mk +.ENDIF # "$(JAVACLASSFILES:s/DEFINED//)$(javauno)"!="" +.ENDIF # "$(SOLAR_JAVA)"!="" + +.INCLUDE : tg_merge.mk +.INCLUDE : tg_propmerge.mk +.INCLUDE : tg_xmerge.mk + +wordcount: + wc *.* >> $(TMP)/wc.lst + +testt: + @echo test + +.ELSE # "$(depend)" == "" + +# ---------- +# - DEPEND - +# ---------- + +ALLTAR : ALLDEP \ + $(SUBDIRS) + +# same block as in regular build +.IF "$(MAKEFILERC)"=="" +.IF "$(RCFILES)$(SLOFILES)$(OBJFILES)$(DEPOBJFILES)$(PARFILES)" != "" +.IF "$(DEPFILES)" != "" +.INCLUDE : $(DEPFILES) +.ENDIF # "$(DEPFILES)" != "" +.IF "$(nodep)"=="" +.IF "$(DEPCOLLECT_SLO)" != "" +.PHONY : $(DEPCOLLECT_SLO) +.INCLUDE .IGNORE : $(DEPCOLLECT_SLO) +.INCLUDE : $(DEPFILE_SLO) +.ENDIF # "$(DEPCOLLECT_SLO)" != "" +.IF "$(DEPCOLLECT_OBJ)" != "" +.PHONY : $(DEPCOLLECT_OBJ) +.INCLUDE .IGNORE : $(DEPCOLLECT_OBJ) +.INCLUDE : $(DEPFILE_OBJ) +.ENDIF # "$(DEPCOLLECT_OBJ)" != "" +.ENDIF # "$(nodep)"=="" +.ENDIF # "$(RCFILES)$(SLOFILES)$(OBJFILES)$(DEPOBJFILES)$(PARFILES)" != "" +.ELSE # MAKEFILERC +.ENDIF # MAKEFILERC + +.INCLUDE : tg_dep.mk + +.ENDIF # "$(depend)" == "" + +.IF "$(SUBDIRS)"!="" + +$(SUBDIRS) : $(SUBDIRSDEPS) + +.IF "$(mk_tmp)$(BSCLIENT)"!="" +$(SUBDIRS) .PHONY : + @echo ignoring SUBDIRS + +.ELSE # "$(mk_tmp)$(BSCLIENT)"!="" +#.IF "$(PRJNAME)"!="sw" +.IF "$(GUI)"!="UNX" +$(SUBDIRS) .PHONY : + @[ + cd $@ + cd + @$(MAKECMD) subdmake=true $(MFLAGS) $(CALLMACROS) + ] +.ELSE # "$(GUI)"!="UNX" +$(SUBDIRS) .PHONY : + cd $@; $(MAKECMD) subdmake=true $(MFLAGS) $(CALLMACROS) +.ENDIF # "$(GUI)"!="UNX" +#.ENDIF +.ENDIF # "$(mk_tmp)$(BSCLIENT)"!="" +.ENDIF # "$(SUBDIRS)"!="" + +# workaround for strange dmake bug: +# if the previous block was a rule or a target, "\#" isn't recognized +# as an escaped "#". if it was an assignment, escaping works... +some_unique_variable_name:=1 diff --git a/solenv/inc/templates/extension_tmpl.mk b/solenv/inc/templates/extension_tmpl.mk new file mode 100644 index 000000000000..b9ea7db7ee76 --- /dev/null +++ b/solenv/inc/templates/extension_tmpl.mk @@ -0,0 +1,153 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +############################################ +# +# sample makefile for extension packing +# +# NOTE: not all of this is required or useful +# for every specific case +# +############################################ + +PRJ=..$/.. + +PRJNAME=my_project +TARGET=some_unique_target + +# --- Settings ----------------------------------------------------- + +.INCLUDE: settings.mk +# it might be useful to have an extension wide include to set things +# like the EXTNAME variable (used for configuration processing) +# .INCLUDE : $(PRJ)$/source$/<extension name>$/<extension_name>.pmk + +# --- Files -------------------------------------------------------- + +# name for uniq directory +EXTENSIONNAME:=MyExtension +EXTENSION_ZIPNAME:=MyExtension + +.IF "$(ENABLE_MYEXTENSION)" != "YES" +@all: + @echo "$(EXTENSIONNAME) - extension disabled." +.ENDIF +.IF "$(SOLAR_JAVA)"=="" +@all: + @echo "$(EXTENSIONNAME) - extension requires java." +.ENDIF + + +# some other targets to be done + + + +# --- Extension packaging ------------------------------------------ + +# these variables are optional and defaulted to the current directory + +DESCRIPTION_SRC:=config$/description.xml +MANIFEST_SRC:=config$/manifest.xml +COMPONENT_CONFIGDIR:=config + +# ------------------------------------------------------------------ + +# optional: generated list of .xcu files contained in the extension +COMPONENT_MANIFEST_GENERIC:=TRUE +COMPONENT_MANIFEST_SEARCHDIR:=registry + + +# variables to trigger predifined targets +# just copy: +COMPONENT_FILES= \ + $(EXTENSIONDIR)$/xMyExtension$(EXECPOST) \ + $(EXTENSIONDIR)$/some_local.html + +# localized configuration files +COMPONENT_MERGED_XCU= \ + $(EXTENSIONDIR)$/registry$/data$/org$/openoffice$/Office$/Addons.xcu \ + $(EXTENSIONDIR)$/registry$/data$/org$/openoffice$/Office$/extension$/MyExtension.xcu + +# other configuration files +COMPONENT_XCU= \ + $(EXTENSIONDIR)$/registry$/data$/org$/openoffice$/Office$/Data.xcu + +# location of configurationfiles inside extension, +# "." for flat .xcu files +#COMPONENT_CONFIGDEST=. + +# native libraries +COMPONENT_LIBRARIES= \ + $(EXTENSIONDIR)$/$(SHL1TARGET)$(DLLPOST) + +# jar files +COMPONENT_JARFILES = \ + $(EXTENSIONDIR)$/MyExtension.jar + +# disable fetching default OOo license text +#CUSTOM_LICENSE=my_license.txt +# override default license destination +#PACKLICS= $(EXTENSIONDIR)$/registration$/$(CUSTOM_LICENSE) + +# ------------------------------- +# variables for own targets specific to this extension; no common +# target available... +# +CONVERTER_FILE= \ + $(EXTENSIONDIR)$/xMyExtension$(EXECPOST) \ + +COMPONENT_DIALOGS= \ + $(EXTENSIONDIR)$/basic$/Module1.xba \ + $(EXTENSIONDIR)$/basic$/TargetChooser.xdl \ + $(EXTENSIONDIR)$/basic$/dialog.xlb \ + $(EXTENSIONDIR)$/basic$/impress.png \ + $(EXTENSIONDIR)$/basic$/script.xlb \ + $(EXTENSIONDIR)$/basic$/writer.png + +# add own targets to packing dependencies (need to be done before +# packing the xtension +EXTENSION_PACKDEPS=$(CONVERTER_FILE) $(COMPONENT_DIALOGS) makefile.mk $(CUSTOM_LICENSE) + +# global settings for extension packing +.INCLUDE : extension_pre.mk +.INCLUDE : target.mk +# global targets for extension packing +.INCLUDE : extension_post.mk + +# own targets +$(CONVERTER_FILE) : $(SOLARBINDIR)$/$$(@:f) + @@-$(MKDIRHIER) $(@:d) + $(COPY) $< $@ + +$(COMPONENT_DIALOGS) : dialogs$/$$(@:f) + @@-$(MKDIRHIER) $(@:d) + $(COPY) $< $@ + +$(CUSTOM_LICENSE) : my_license.txt + @@-$(MKDIRHIER) $(@:d) + $(COPY) $< $@ + diff --git a/solenv/inc/tg_app.mk b/solenv/inc/tg_app.mk new file mode 100644 index 000000000000..c49ee04b33b3 --- /dev/null +++ b/solenv/inc/tg_app.mk @@ -0,0 +1,242 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +####################################################### +# instructions for linking +# unroll begin + +.IF "$(APP$(TNR)LINKTYPE)" != "" +#must be either STATIC or SHARED +APP$(TNR)LINKTYPEFLAG=$(APPLINK$(APP$(TNR)LINKTYPE)) +.ENDIF + +# decide how to link +.IF "$(APP$(TNR)CODETYPE)"=="C" +APP$(TNR)LINKER=$(LINKC) +APP$(TNR)STDLIB=$(subst,CPPRUNTIME, $(STDLIB)) +APP$(TNR)LINKFLAGS+=$(LINKCFLAGS) +.ELSE # "$(APP$(TNR)CODETYPE)"=="C" +APP$(TNR)LINKER=$(LINK) +APP$(TNR)STDLIB=$(subst,CPPRUNTIME,$(STDLIBCPP) $(STDLIB)) +APP$(TNR)LINKFLAGS+=$(LINKFLAGS) +.ENDIF # "$(APP$(TNR)CODETYPE)"=="C" + +APP$(TNR)RPATH*=OOO +LINKFLAGSRUNPATH_$(APP$(TNR)RPATH)*=/ERROR:/Bad_APP$(TNR)RPATH_value +.IF "$(OS)" != "MACOSX" +APP$(TNR)LINKFLAGS+=$(LINKFLAGSRUNPATH_$(APP$(TNR)RPATH)) +.ENDIF + +.IF "$(APP$(TNR)STACK)" != "" +.IF "$(LINKFLAGSTACK)" != "" +APP$(TNR)STACKN=$(LINKFLAGSTACK)$(APP$(TNR)STACK) +.ENDIF +.ELSE +APP$(TNR)STACKN= +.ENDIF + +.IF "$(APP$(TNR)NOSAL)"=="" +.IF "$(TARGETTYPE)" == "GUI" +APP$(TNR)OBJS+= $(STDOBJVCL) +.ENDIF +.ENDIF + +.IF "$(GUI)$(COM)" == "WNTGCC" +APP$(TNR)RESO= +.IF "$(APP$(TNR)LINKRES)" != "" || "$(APP$(TNR)RES)" != "" +APP$(TNR)RESO=$(MISC)/$(APP$(TNR)TARGET:b)_res.o +.ENDIF +.ENDIF + +.IF "$(GUI)" == "UNX" +APP$(TNR)DEPN+:=$(APP$(TNR)DEPNU) +USE_APP$(TNR)DEF= +.ENDIF + +.IF "$(APP$(TNR)TARGETN)"!="" + +.IF "$(APP$(TNR)PRODUCTNAME)"!="" +APP$(TNR)PRODUCTDEF+:=-DPRODUCT_NAME=\"$(APP$(TNR)PRODUCTNAME)\" +.ENDIF # "$(APP$(TNR)PRODUCTNAME)"!="" + +.IF "$(linkinc)"!="" +.IF "$(GUI)"=="WNT" +.IF "$(APP$(TNR)LIBS)"!="" +$(MISC)/$(APP$(TNR)TARGET)_linkinc.ls .PHONY: + @@-$(RM) $@ + sed -f $(SOLARENV)/bin/chrel.sed $(foreach,i,$(APP$(TNR)LIBS) $(i:s/.lib/.lin/)) >> $@ +.ENDIF #"$(APP$(TNR)LIBS)"!="" +.ENDIF + +LINKINCTARGETS+=$(MISC)/$(APP$(TNR)TARGETN:b)_linkinc.ls +$(APP$(TNR)TARGETN) : $(LINKINCTARGETS) +.ENDIF # "$(linkinc)"!="" + +# Allow for target specific LIBSALCPPRT override +APP$(TNR)LIBSALCPPRT*=$(LIBSALCPPRT) + +$(APP$(TNR)TARGETN): $(APP$(TNR)OBJS) $(APP$(TNR)LIBS) \ + $(APP$(TNR)RES) \ + $(APP$(TNR)ICON) $(APP$(TNR)DEPN) $(USE_APP$(TNR)DEF) + @echo "Making: " $(@:f) +.IF "$(GUI)"=="UNX" +.IF "$(OS)"=="MACOSX" + @-$(RM) $(MISC)/$(@:b).list + @-$(RM) $(MISC)/$(TARGET).$(@:b)_$(TNR).cmd + @-$(RM) $(MISC)/$(@:b).strip + @echo $(STDSLO) $(APP$(TNR)OBJS:s/.obj/.o/) \ + `cat /dev/null $(APP$(TNR)LIBS) | sed s\#$(ROUT)\#$(OUT)\#g` | tr -s " " "\n" > $(MISC)/$(@:b).list + @/bin/echo -n $(APP$(TNR)LINKER) $(APP$(TNR)LINKFLAGS) $(LINKFLAGSAPP) -L$(PRJ)/$(INPATH)/lib $(SOLARLIB) -o $@ \ + $(APP$(TNR)LINKTYPEFLAG) $(APP$(TNR)STDLIBS) $(APP$(TNR)STDLIB) $(STDLIB$(TNR)) -filelist $(MISC)/$(@:b).list > $(MISC)/$(TARGET).$(@:b)_$(TNR).cmd + @$(PERL) $(SOLARENV)/bin/macosx-dylib-link-list.pl \ + `cat $(MISC)/$(TARGET).$(@:b)_$(TNR).cmd` \ + >> $(MISC)/$(TARGET).$(@:b)_$(TNR).cmd + .IF "$(VERBOSE)" == "TRUE" + @cat $(MISC)/$(TARGET).$(@:b)_$(TNR).cmd + .ENDIF + @+source $(MISC)/$(TARGET).$(@:b)_$(TNR).cmd +# Need to strip __objcInit symbol to avoid duplicate symbols when loading +# libraries at runtime + @-nm $@ | grep -v ' U ' | $(AWK) '{ print $$NF }' | grep -F -x '__objcInit' > $(MISC)/$(@:b).strip + @strip -i -R $(MISC)/$(@:b).strip -X $@ + @$(PERL) $(SOLARENV)/bin/macosx-change-install-names.pl \ + app $(APP$(TNR)RPATH) $@ +.IF "$(TARGETTYPE)"=="GUI" + @echo "Making: " $(@:f).app + @macosx-create-bundle $@ +.ENDIF # "$(TARGETTYPE)"=="GUI" +.ELSE # "$(OS)"=="MACOSX" + @-$(RM) $(MISC)/$(TARGET).$(@:b)_$(TNR).cmd + @echo $(APP$(TNR)LINKER) $(APP$(TNR)LINKFLAGS) $(LINKFLAGSAPP) -L$(PRJ)/$(INPATH)/lib $(SOLARLIB) $(STDSLO) \ + $(APP$(TNR)OBJS:s/.obj/.o/) '\' > $(MISC)/$(TARGET).$(@:b)_$(TNR).cmd + @cat $(mktmp /dev/null $(APP$(TNR)LIBS)) | xargs -n 1 cat | sed s\#$(ROUT)\#$(OUT)\#g | sed 's#$$# \\#' >> $(MISC)/$(TARGET).$(@:b)_$(TNR).cmd + @echo $(APP$(TNR)LINKTYPEFLAG) $(APP$(TNR)LIBSALCPPRT) $(APP$(TNR)STDLIBS) $(APP$(TNR)STDLIB) $(STDLIB$(TNR)) -o $@ >> $(MISC)/$(TARGET).$(@:b)_$(TNR).cmd + .IF "$(VERBOSE)" == "TRUE" + @cat $(MISC)/$(TARGET).$(@:b)_$(TNR).cmd + .ENDIF + @+source $(MISC)/$(TARGET).$(@:b)_$(TNR).cmd + .IF "$(VERBOSE)" == "TRUE" + .ENDIF +.ENDIF # "$(OS)"=="MACOSX" +.ENDIF +.IF "$(GUI)" == "WNT" + @@-$(MKDIR) $(@:d:d) +.IF "$(APP$(TNR)LINKRES)" != "" + @@-$(RM) $(MISC)/$(APP$(TNR)LINKRES:b).rc +.IF "$(APP$(TNR)ICON)" != "" + @-echo 1 ICON $(EMQ)"$(APP$(TNR)ICON:s/\/\\/)$(EMQ)" >> $(MISC)/$(APP$(TNR)LINKRES:b).rc +.ENDIF # "$(APP$(TNR)ICON)" != "" +.IF "$(APP$(TNR)VERINFO)" != "" + @-echo $(EMQ)#define VERVARIANT $(BUILD) >> $(MISC)/$(APP$(TNR)LINKRES:b).rc + @-echo $(EMQ)#include $(EMQ)"$(APP$(TNR)VERINFO)$(EMQ)" >> $(MISC)/$(APP$(TNR)LINKRES:b).rc +.ENDIF # "$(APP$(TNR)VERINFO)" != "" +.IF "$(COM)" == "GCC" + $(COMMAND_ECHO)$(RC) -DWIN32 $(APP$(TNR)PRODUCTDEF) -I$(SOLARRESDIR) $(INCLUDE) $(RCLINKFLAGS) -o $(MISC)/$(APP$(TNR)LINKRES:b).res $(MISC)/$(APP$(TNR)LINKRES:b).rc +.ELSE + $(COMMAND_ECHO)$(RC) -DWIN32 $(APP$(TNR)PRODUCTDEF) -I$(SOLARRESDIR) $(INCLUDE) $(RCLINKFLAGS) $(MISC)/$(APP$(TNR)LINKRES:b).rc +.ENDIF +.ENDIF # "$(APP$(TNR)LINKRES)" != "" +.IF "$(COM)" == "GCC" +.IF "$(APP$(TNR)LINKRES)" != "" || "$(APP$(TNR)RES)" != "" + @cat $(APP$(TNR)LINKRES) $(subst,/res/,/res{$(subst,$(BIN), $(@:d))} $(APP$(TNR)RES)) > $(MISC)/$(@:b)_all.res + $(WINDRES) $(MISC)/$(@:b)_all.res $(APP$(TNR)RESO) +.ENDIF + @echo $(LINK) $(LINKFLAGS) $(LINKFLAGSAPP) $(MINGWSSTDOBJ) -L$(PRJ)/$(INPATH)/lib $(SOLARLIB) $(STDSLO) \ + $(APP$(TNR)BASEX) $(APP$(TNR)STACKN) -o $@ $(APP$(TNR)OBJS) \ + -Wl,-Map,$(MISC)/$(@:b).map $(STDOBJ) $(APP$(TNR)RESO) \ + `$(TYPE) /dev/null $(APP$(TNR)LIBS) | sed s#$(ROUT)#$(OUT)#g` \ + $(APP_LINKTYPE) $(APP$(TNR)LIBSALCPPRT) \ + -Wl,--start-group $(APP$(TNR)STDLIBS) -Wl,--end-group $(APP$(TNR)STDLIB) \ + $(STDLIB$(TNR)) $(MINGWSSTDENDOBJ) > $(MISC)/$(TARGET).$(@:b)_$(TNR).cmd +# need this comment line, else dmake somehow gets confused by the .IFs and .ENDIFs + .IF "$(VERBOSE)" == "TRUE" + @$(TYPE) $(MISC)/$(TARGET).$(@:b)_$(TNR).cmd + .ENDIF + @+source $(MISC)/$(TARGET).$(@:b)_$(TNR).cmd +.ELSE # "$(COM)" == "GCC" +.IF "$(linkinc)" == "" + $(COMMAND_ECHO)$(APP$(TNR)LINKER) @$(mktmp \ + $(APP$(TNR)LINKFLAGS) \ + $(LINKFLAGSAPP) $(APP$(TNR)BASEX) \ + $(APP$(TNR)STACKN) \ + -out:$@ \ + -map:$(MISC)/{$(subst,/,_ $(APP$(TNR)TARGET)).map} \ + $(STDOBJ) \ + $(APP$(TNR)LINKRES) \ + $(APP$(TNR)RES) \ + $(APP$(TNR)OBJS) \ + $(APP$(TNR)LIBS) \ + $(APP$(TNR)STDLIBS) \ + $(APP$(TNR)STDLIB) $(STDLIB$(TNR)) \ + ) + @-echo linking $@.manifest ... +.IF "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);1 $(FI) +.ELSE + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);1 $(FI) +.ENDIF # "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI) +.ELSE + $(COMMAND_ECHO)-$(RM) $(MISC)\$(APP$(TNR)TARGET).lnk + $(COMMAND_ECHO)-$(RM) $(MISC)\$(APP$(TNR)TARGET).lst + $(COMMAND_ECHO)-$(RM) $(MISC)\linkobj.lst + for %_i in ($(MISC)\*.obj) do type %_i >> $(MISC)\linkobj.lst + type $(mktmp,$(MISC)\$(APP$(TNR)TARGET).lst + $(APP$(TNR)LINKFLAGS) \ + $(LINKFLAGSAPP) $(APP$(TNR)BASEX) \ + $(APP$(TNR)STACKN) \ + -out:$@ \ + $(STDOBJ) \ + $(APP$(TNR)LINKRES) \ + $(APP$(TNR)RES) \ + $(APP$(TNR)OBJS) \ + $(APP$(TNR)LIBS) \ + $(APP$(TNR)STDLIBS) \ + $(APP$(TNR)STDLIB) $(STDLIB$(TNR))) + $(COMMAND_ECHO)$(SED)$(SED) -e 's/\(\.\.\\\)\{2,4\}/..\\/g' $(MISC)\$(APP$(TNR)TARGETN:b)_linkobj.lst >> $(MISC)\$(APP$(TNR)TARGET).lst + $(COMMAND_ECHO)$(SED)$(IFEXIST) $(MISC)/$(APP$(TNR)TARGET).lst $(THEN) type $(MISC)/$(APP$(TNR)TARGET).lst >> $(MISC)/$(APP$(TNR)TARGET).lnk $(FI) + $(COMMAND_ECHO)$(SED)$(APP$(TNR)LINKER) @$(MISC)\$(APP$(TNR)TARGET).lnk +.ENDIF # "$(linkinc)" == "" +.ENDIF # "$(COM)" == "GCC" +.IF "$(APP$(TNR)TARGET)" == "loader" + $(COMMAND_ECHO)$(PERL) loader.pl $@ + $(COMMAND_ECHO)$(TYPE) $(@) $(@:d)unloader.exe > $(@:d)_new.exe + $(COMMAND_ECHO)$(RM) $@ + $(COMMAND_ECHO)$(RENAME) $(@:d)_new.exe $(@:d)loader.exe +.ENDIF # "$(TARGET)" == "setup" + +.ENDIF # "$(GUI)" == "WNT" + +.ENDIF # "$(APP$(TNR)TARGETN)"!="" + + +# Instruction for linking +# unroll end +####################################################### + diff --git a/solenv/inc/tg_compv.mk b/solenv/inc/tg_compv.mk new file mode 100644 index 000000000000..2eb256d5f478 --- /dev/null +++ b/solenv/inc/tg_compv.mk @@ -0,0 +1,149 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +COMPVERMK:=$(SOLARINCDIR)/comp_ver.mk + +.INCLUDE .IGNORE : $(COMPVERMK) + +.IF "$(COMNAME)"=="" || "$(COMPATH:s!\!/!)"!="$(COMPATH_STORED)" +.IF "$(L10N_framework)"=="" + +COMNAME:= + +.IF "$(COM)"=="GCC" +CFLAGSVERSION=-dumpversion +CFLAGSVERSION_CMD=-dumpversion +CFLAGSNUMVERSION_CMD=-dumpversion $(PIPEERROR) $(AWK) -v num=true -f $(SOLARENV)/bin/getcompver.awk +#CFLAGSNUMVERSION_CMD=-dumpversion | 2>&1 $(AWK) -v num=true -f $(SOLARENV)/bin/getcompver.awk +.ENDIF + +.IF "$(COM)"=="MSC" +CFLAGSVERSION= +CFLAGSVERSION_CMD= $(PIPEERROR) $(AWK) -f $(SOLARENV)/bin/getcompver.awk +CFLAGSNUMVERSION_CMD= $(PIPEERROR) $(AWK) -v num=true -f $(SOLARENV)/bin/getcompver.awk +.ENDIF + +.IF "$(COM)"=="C55" || "$(COM)"=="C54" || "$(COM)"=="C52" || "$(COM)"=="C40" || "$(COM)"=="sunpro" +CFLAGSVERSION= -V +CFLAGSVERSION_CMD= -V $(PIPEERROR) $(AWK) -f $(SOLARENV)/bin/getcompver.awk +CFLAGSNUMVERSION_CMD= -V $(PIPEERROR) $(AWK) -v num=true -f $(SOLARENV)/bin/getcompver.awk +.ENDIF + +# that's the version known by the specific +# compiler +CCVER:=$(shell @-$(CXX) $(CFLAGSVERSION_CMD)) + +# and a computed integer for comparing +# each point seperated token blown up to 4 digits +CCNUMVER:=$(shell @-$(CXX) $(CFLAGSNUMVERSION_CMD)) + +.IF "$(COM)"=="MSC" +COMID=MSC +.IF "$(CPU)"=="I" +COMNAME=msci +.ELSE +COMNAME=mscx +.ENDIF +.ENDIF + +.IF "$(COM)"=="GCC" + +SHORTSTDCPP3:= +SHORTSTDC3:="1" + +.IF "$(CCNUMVER)">="000200910000" +COMID=GCC +COMNAME=gcc2 +.ENDIF + +.IF "$(CCNUMVER)">="000300000001" + +COMID=gcc3 +COMNAME=gcc3 + +.IF "$(CCNUMVER)">="000300000001" +SHORTSTDCPP3="3" +.ENDIF + +.IF "$(CCNUMVER)">="000300010000" +SHORTSTDCPP3="4" +.ENDIF + +.IF "$(CCNUMVER)">="000300020000" +SHORTSTDCPP3="5" +.ENDIF + +.IF "$(CCNUMVER)">="000300040000" +.IF "$(OS)$(CPU)" == "LINUX6" || "$(OS)$(CPU)" == "LINUXH" +#for gcc >= 3.4.0 on m68k-linux this is libgcc_s.so.2. +#for gcc >= 3.4.0 < 4.2.0 on hppa-linux this is libgcc_s.so.2. +SHORTSTDC3:="2" +.ENDIF +SHORTSTDCPP3="6" +.ENDIF + +.IF "$(CCNUMVER)">="000400020000" +.IF "$(OS)$(CPU)" == "LINUXH" +#for gcc >= 4.2.0 on hppa-linux this is libgcc_s.so.4. +SHORTSTDC3:="4" +.ENDIF +SHORTSTDCPP3="6" +.ENDIF + +.ENDIF +.ENDIF + +.IF "$(COM)"=="C55" || "$(COM)" == "C54" || "$(COM)"=="C52" || "$(COM)"=="C40" || "$(COM)"=="sunpro" +.IF "$(CCNUMVER)">="00050002" +COMID=C52 +COMNAME=sunpro5 +.ENDIF +.ENDIF + +.IF "$(COMNAME)"=="" + +# "EXCEPTIONSFILES" get compiled before this, but shouldn't +# appear in the first n modules. + +compiler_version_error: + @echo ++++++++++++++++++++++++++++++++++++ + @echo ERROR! + @echo Could not detect compiler version! + @echo Please extend tg_compv.mk in + @echo "solenv/inc". + @echo ++++++++++++++++++++++++++++++++++++ + @echo "$(CXX) $(CFLAGSVERSION)" returns + @$(CXX) $(CFLAGSVERSION) + @echo ++++++++++++++++++++++++++++++++++++ + force_dmake_to_error + +.ENDIF # "$(COMNAME)"=="" + +CDEFS+=-DCPPU_ENV=$(COMNAME) + +.ENDIF # "$(L10N_framework)"=="" +.ENDIF # "$(COMNAME)"=="" diff --git a/solenv/inc/tg_config.mk b/solenv/inc/tg_config.mk new file mode 100644 index 000000000000..bd3e7bbd9413 --- /dev/null +++ b/solenv/inc/tg_config.mk @@ -0,0 +1,199 @@ +#************************************************************************ +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +PACKAGEDIR*:=$(subst,.,/ $(PACKAGE)) +XSLTPACKAGEDIR*:=$(subst,.,/ $(PACKAGE)) +XCSROOTURL!:=$(ABSXCSROOT) +.IF $(GUI)==WNT +XCSROOTURL!:=file:///$(subst,\,/ $(XCSROOTURL)) +.ENDIF +SYSXSLDIR*:=$(XSLDIR)/ + +# +# --- XCS --- +# + +.IF "$(XCSFILES)"!="" +# remove unnecessary info from the component schemas +XCS_TRIM=$(PROCESSOUT)/registry/schema/$(PACKAGEDIR)/{$(XCSFILES)} + +# transform xcs format to properties format +# XCS_RESOURCES=$(foreach,i,$(XCSFILES) $(MISC)/registry/res/{$(alllangiso)}/$(PACKAGEDIR)/$(i:b).properties) + +ALLTAR: \ + $(XCS_TRIM) +.ENDIF # "$(XCSFILES)"!="" + +.IF "$(XCS_TRIM)" != "" +$(XCS_TRIM) : $(DTDDIR)/registry/component-schema.dtd \ + $(XSLDIR)/schema_val.xsl \ + $(XSLDIR)/sanity.xsl \ + $(XSLDIR)/schema_trim.xsl +.ENDIF + +$(PROCESSOUT)/registry/schema/$(PACKAGEDIR)/%.xcs : %.xcs + @echo "Making: " $(@:f) +.IF "$(VERBOSE)" != "FALSE" + @echo --- validating and stripping schema files +.ENDIF + @-$(MKDIRHIER) $(@:d) + $(COMMAND_ECHO)$(XSLTPROC) --nonet -o $(normpath $(subst,$(PATH_IN_MODULE), $(PWD))/$(subst,$(PRJ), $(@:d))$*.val) \ + --stringparam componentName $(PACKAGE).$* \ + $(SYSXSLDIR)schema_val.xsl $< + $(COMMAND_ECHO)$(XSLTPROC) --nonet -o $(normpath $(subst,$(PATH_IN_MODULE), $(PWD))/$(subst,$(PRJ), $(@:d))$*.san) \ + $(SYSXSLDIR)sanity.xsl $< + $(COMMAND_ECHO)$(XSLTPROC) --nonet -o $(normpath $(subst,$(PATH_IN_MODULE), $(PWD))/$(subst,$(PRJ), $@)) \ + $(SYSXSLDIR)schema_trim.xsl $< + @+-$(RM) $(@:d)$*.val > $(NULLDEV) + @+-$(RM) $(@:d)$*.san > $(NULLDEV) + +$(PROCESSOUT)/merge/$(PACKAGEDIR)/%.xcs : %.xcs +# just a copy for now - insert "cfgex" commandline when required + $(COMMAND_ECHO)-$(MKDIRHIER) $(@:d) + $(COMMAND_ECHO)$(COPY) $< $@ + +# Create properties files for localized <info> contents (Currently not built) +.IF "$(XCS_RESOURCES)" != "" +$(XCS_RESOURCES) : $(XSLDIR)/resource.xsl +.ENDIF + +$(PROCESSOUT)/registry/res/{$(alllangiso)}/$(PACKAGEDIR)/%.properties :| $(PROCESSOUT)/merge/$(PACKAGEDIR)/%.xcs + @echo "Making: " $(@:f) +.IF "$(VERBOSE)" != "FALSE" + @echo --- creating locale dependent resource bundles +.ENDIF + @-$(MKDIRHIER) $(@:d) + $(COMMAND_ECHO)$(XSLTPROC) --nonet -o $(normpath $(subst,$(PATH_IN_MODULE), $(PWD))/$(subst,$(PRJ), $@)) \ + --stringparam locale {$(subst,/$(PACKAGEDIR)/$(@:f), $(subst,$(PROCESSOUT)/registry/res/, $@))} \ + $(SYSXSLDIR)resource.xsl $< + +# +# --- XCU --- +# + +.IF "$(XCUFILES)"!="" +XCU_DEFAULT =$(PROCESSOUT)/registry/data/$(PACKAGEDIR)/{$(XCUFILES)} +XCU_MODULES =$(foreach,i,$(MODULEFILES) $(PROCESSOUT)/registry/spool/$(PACKAGEDIR)/$(i)) +XCU_LANG =$(foreach,i,$(LOCALIZEDFILES) $(PROCESSOUT)/registry/res/{$(alllangiso)}/$(PACKAGEDIR)/$(i)) +.ENDIF # "$(XCUFILES)"!="" + +.IF "$(XCU_DEFAULT)" != "" +$(XCU_DEFAULT) : $(DTDDIR)/registry/component-update.dtd \ + $(XSLDIR)/data_val.xsl \ + $(XSLDIR)/alllang.xsl +.ENDIF + +$(PROCESSOUT)/registry/data/$(PACKAGEDIR)/%.xcu : %.xcu + @echo "Making: " $(@:f) +.IF "$(VERBOSE)" != "FALSE" + @echo --- validating and creating a locale independent file +.ENDIF + @-$(MKDIRHIER) $(@:d) + $(COMMAND_ECHO)$(XSLTPROC) --nonet -o $(normpath $(subst,$(PATH_IN_MODULE), $(PWD))/$(subst,$(PRJ), $(@:d))$*.val) \ + --stringparam xcs $(XCSROOTURL)/registry/schema/$(XSLTPACKAGEDIR)/$*.xcs \ + --stringparam schemaRoot $(XCSROOTURL)/registry/schema \ + --path $(DTDDIR)/registry \ + $(SYSXSLDIR)data_val.xsl $< + $(COMMAND_ECHO)$(XSLTPROC) --nonet -o $(normpath $(subst,$(PATH_IN_MODULE), $(PWD))/$(subst,$(PRJ), $@)) \ + --stringparam xcs $(XCSROOTURL)/registry/schema/$(XSLTPACKAGEDIR)/$*.xcs \ + --stringparam schemaRoot $(XCSROOTURL)/registry/schema \ + --path $(DTDDIR)/registry \ + $(SYSXSLDIR)alllang.xsl $< + @+-$(RM) $(@:d)$*.val > $(NULLDEV) + +# --- localizations --- +.IF "$(WITH_LANG)"!="" +.IF "$(XCU_LANG)"!="" +$(XCU_LANG) : $(LOCALIZESDF) +.ENDIF # "$(XCU_LANG)"!="" + +$(PROCESSOUT)/merge/$(PACKAGEDIR)/%.xcu : %.xcu + @-$(MKDIRHIER) $(@:d) + $(COMMAND_ECHO)$(CFGEX) -p $(PRJNAME) -i $(@:f) -o $@ -m $(LOCALIZESDF) -l all + +.IF "$(XCU_LANG)" != "" +$(XCU_LANG) : $(XSLDIR)/alllang.xsl +.ENDIF + +$(PROCESSOUT)/registry/res/{$(alllangiso)}/$(PACKAGEDIR)/%.xcu :| $(PROCESSOUT)/merge/$(PACKAGEDIR)/%.xcu +.ELSE # "$(WITH_LANG)"!="" +$(PROCESSOUT)/registry/res/{$(alllangiso)}/$(PACKAGEDIR)/%.xcu :| %.xcu +.ENDIF # "$(WITH_LANG)"!="" + @echo "Making: " $(@:f) +.IF "$(VERBOSE)" != "FALSE" + @echo --- creating locale dependent entries +.ENDIF + @-$(MKDIRHIER) $(@:d) + $(COMMAND_ECHO)$(XSLTPROC) --nonet -o $(normpath $(subst,$(PATH_IN_MODULE), $(PWD))/$(subst,$(PRJ), $@)) \ + --stringparam xcs $(XCSROOTURL)/registry/schema/$(XSLTPACKAGEDIR)/$*.xcs \ + --stringparam schemaRoot $(XCSROOTURL)/registry/schema \ + --stringparam locale {$(subst,/$(PACKAGEDIR)/$(@:f), $(subst,$(PROCESSOUT)/registry/res/, $@))} \ + --path $(DTDDIR)/registry \ + $(SYSXSLDIR)alllang.xsl $< + +# --- languagepack tag modules --- +.IF "$(LANGUAGEPACKS)" != "" +$(LANGUAGEPACKS) : $(XSLDIR)/delcomment.sed +.ENDIF + + +$(PROCESSOUT)/registry/spool/Langpack-%.xcu : Langpack.xcu.tmpl +.IF "$(VERBOSE)" != "FALSE" + @echo --- creating a Langpack module for locale $* +.ENDIF + -$(MKDIRHIER) $(@:d) + $(COMMAND_ECHO)$(SED) -e "s/__LANGUAGE__/$*/" -f $(XSLDIR)/delcomment.sed $< > $@ + + +# --- modules --- +.IF "$(XCU_MODULES)" != "" +$(XCU_MODULES) : $(XSLDIR)/alllang.xsl +.ENDIF + + +$(PROCESSOUT)/registry/spool/$(PACKAGEDIR)/%.xcu :| $$(@:b:s/-/./:b).xcu + @echo "Making: " $(@:f) +.IF "$(VERBOSE)" != "FALSE" + @echo --- creating a module file +.ENDIF + @-$(MKDIRHIER) $(@:d) + $(COMMAND_ECHO)$(XSLTPROC) --nonet -o $(normpath $(subst,$(PATH_IN_MODULE), $(PWD))/$(subst,$(PRJ), $@)) \ + --stringparam xcs $(XCSROOTURL)/registry/schema/$(XSLTPACKAGEDIR)/$(<:b).xcs \ + --stringparam schemaRoot $(XCSROOTURL)/registry/schema \ + --stringparam module $(subst,$(<:b)-, $(*)) \ + $(SYSXSLDIR)alllang.xsl $< + +.IF "$(XCUFILES)"!="" +ALLTAR: \ + $(XCU_DEFAULT) \ + $(XCU_MODULES) \ + $(XCU_LANG) + +$(XCU_DEFAULT) : $$(@:d:s!$(PROCESSOUT)/registry/data/!$(ABSXCSROOT)/registry/schema/!)$$(@:f:s/.xcu/.xcs/) + +.ENDIF # "$(XCUFILES)"!="" + diff --git a/solenv/inc/tg_def.mk b/solenv/inc/tg_def.mk new file mode 100644 index 000000000000..0e677e681493 --- /dev/null +++ b/solenv/inc/tg_def.mk @@ -0,0 +1,201 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +####################################################### +# Anweisungen fuer das Linken +# unroll begin + +.IF "$(DEF$(TNR)TARGETN)"!="" + +#to make intuitiv naming work +.IF "$(DEF$(TNR)LIBNAME)"!="" +DEFLIB$(TNR)NAME*=$(DEF$(TNR)LIBNAME) +.ENDIF # "$(DEF$(TNR)LIBNAME)"!="" + +.IF "$(DEFLIB$(TNR)NAME)"!="" +DEF$(TNR)DEPN+=$(foreach,i,$(DEFLIB$(TNR)NAME) $(SLB)/$(i).lib) +.ENDIF + +.IF "$(SHL$(TNR)VERSIONMAP)"!="" +.IF "$(DEF$(TNR)EXPORTFILE)"=="" +.IF "$(GUI)"=="WNT" +DEF$(TNR)EXPORTFILE=$(MISC)/$(SHL$(TNR)VERSIONMAP:b)_$(SHL$(TNR)TARGET).dxp +.IF "$(COM)"=="GCC" +$(DEF$(TNR)EXPORTFILE) : $(SHL$(TNR)OBJS) $(SHL$(TNR)LIBS) +.ENDIF # .IF "$(COM)"=="GCC" + +$(DEF$(TNR)EXPORTFILE) : $(SHL$(TNR)VERSIONMAP) + $(COMMAND_ECHO)$(TYPE) $< | $(AWK) -f $(SOLARENV)/bin/getcsym.awk > $@ +.IF "$(COM)"=="GCC" + $(COMMAND_ECHO)-$(GREP) -v "\*\|?" $@ | $(SED) -e 's@#.*@@' > $@.exported-symbols + $(COMMAND_ECHO)-$(GREP) "\*\|?" $@ > $@.symbols-regexp +# Shared libraries will be build out of the *.obj files specified in SHL?OBJS and SHL?LIBS +# Extract RTTI symbols from all the objects that will be used to build a shared library + $(COMMAND_ECHO)$(NM) -gP $(SHL$(TNR)OBJS) \ + `$(TYPE) /dev/null $(foreach,j,$(SHL$(TNR)LIBS) $j) | $(SED) s\#$(ROUT)\#$(PRJ)$/$(ROUT)\#g` \ + | $(SOLARENV)/bin/addsym-mingw.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols +# overwrite the map file generate into the local output tree with the generated +# exported symbols list + $(COMMAND_ECHO)$(RENAME) $@.exported-symbols $@ +.ENDIF # .IF "$(COM)"=="GCC" + +.ENDIF # "$(GUI)"=="WNT" + +.ENDIF # "$(DEF$(TNR)EXPORTFILE)"=="" +.ENDIF # "$(SHL$(TNR)VERSIONMAP)"!="" + +.IF "$(GUI)"=="WNT" + +DEF$(TNR)FILTER=$(SOLARENV)/inc/dummy.flt + +RMHACK$(TNR):=$(RM) + +.IF "$(DEF$(TNR)CEXP)"!="" +EXPORT_ALL_SWITCH=-A $(DEF$(TNR)CEXP) +.ENDIF + +.IF "$(link_always)"=="" +$(DEF$(TNR)TARGETN) : \ + $(DEF$(TNR)DEPN) \ + $(DEF$(TNR)EXPORTFILE) +.ELSE # "$(link_always)"=="" +$(DEF$(TNR)TARGETN) .PHONY : +.ENDIF # "$(link_always)"=="" + $(COMMAND_ECHO)-$(RM) $@.tmpfile + @echo "Making: module definition file" $(@:f) + $(COMMAND_ECHO)echo LIBRARY $(EMQ)"$(SHL$(TNR)TARGETN:f)$(EMQ)" >$@.tmpfile +.IF "$(COM)"!="GCC" + $(COMMAND_ECHO)echo HEAPSIZE 0 >>$@.tmpfile +.ENDIF + $(COMMAND_ECHO)echo EXPORTS >>$@.tmpfile +.IF "$(VERSIONOBJ)"!="" +# getversioninfo fuer alle!! + $(COMMAND_ECHO)echo GetVersionInfo >>$@.tmpfile +.ENDIF +.IF "$(DEFLIB$(TNR)NAME)"!="" +.IF "$(COM)"=="GCC" + $(COMMAND_ECHO)-$(RM) $(MISC)/$(SHL$(TNR)TARGET).exp + $(COMMAND_ECHO)$(DLLTOOL) --output-def $(MISC)/$(SHL$(TNR)TARGET).exp --export-all-symbols \ + `$(TYPE) $(foreach,i,$(DEFLIB$(TNR)NAME) $(SLB)/$(i).lib) | sed s#$(ROUT)#$(PRJ)/$(ROUT)#g` + $(COMMAND_ECHO)tail --lines +3 $(MISC)/$(SHL$(TNR)TARGET).exp | sed '/^;/d' >>$@.tmpfile + $(COMMAND_ECHO)-$(RM) $(MISC)/$(SHL$(TNR)TARGET).exp +.ELSE +.IF "$(SHL$(TNR)USE_EXPORTS)"=="" + $(COMMAND_ECHO)-$(RMHACK$(TNR)) $(MISC)/$(SHL$(TNR)TARGET).exp + $(COMMAND_ECHO)$(LIBMGR) -EXTRACT:/ /OUT:$(MISC)/$(SHL$(TNR)TARGET).exp $(SLB)/$(DEFLIB$(TNR)NAME).lib + $(COMMAND_ECHO)$(LDUMP2) -N $(EXPORT_ALL_SWITCH) -F $(MISC)/$(SHL$(TNR)TARGET).flt $(MISC)/$(SHL$(TNR)TARGET).exp >>$@.tmpfile + $(COMMAND_ECHO)$(RMHACK$(TNR)) $(MISC)/$(SHL$(TNR)TARGET).exp +.ELSE # "$(SHL$(TNR)USE_EXPORTS)"=="" + $(COMMAND_ECHO)$(DUMPBIN) -DIRECTIVES $(foreach,i,$(DEFLIB$(TNR)NAME) $(SLB)/$(i).lib) | $(GREP) EXPORT: > $(MISC)/$(SHL$(TNR)TARGET).direct + $(COMMAND_ECHO)$(LDUMP2) -N -D $(EXPORT_ALL_SWITCH) -F $(DEF$(TNR)FILTER) $(MISC)/$(SHL$(TNR)TARGET).direct >>$@.tmpfile +.ENDIF # "$(SHL$(TNR)USE_EXPORTS)"=="" +.ENDIF +.ENDIF # "$(DEFLIB$(TNR)NAME)"!="" +.IF "$(DEF$(TNR)EXPORT1)"!="" + $(COMMAND_ECHO)echo $(DEF$(TNR)EXPORT1) >>$@.tmpfile +.ENDIF +.IF "$(DEF$(TNR)EXPORT2)"!="" + $(COMMAND_ECHO)echo $(DEF$(TNR)EXPORT2) >>$@.tmpfile +.ENDIF +.IF "$(DEF$(TNR)EXPORT3)"!="" + $(COMMAND_ECHO)echo $(DEF$(TNR)EXPORT3) >>$@.tmpfile +.ENDIF +.IF "$(DEF$(TNR)EXPORT4)"!="" + $(COMMAND_ECHO)echo $(DEF$(TNR)EXPORT4) >>$@.tmpfile +.ENDIF +.IF "$(DEF$(TNR)EXPORT5)"!="" + $(COMMAND_ECHO)echo $(DEF$(TNR)EXPORT5) >>$@.tmpfile +.ENDIF +.IF "$(DEF$(TNR)EXPORT6)"!="" + $(COMMAND_ECHO)echo $(DEF$(TNR)EXPORT6) >>$@.tmpfile +.ENDIF +.IF "$(DEF$(TNR)EXPORT7)"!="" + $(COMMAND_ECHO)echo $(DEF$(TNR)EXPORT7) >>$@.tmpfile +.ENDIF +.IF "$(DEF$(TNR)EXPORT8)"!="" + $(COMMAND_ECHO)echo $(DEF$(TNR)EXPORT8) >>$@.tmpfile +.ENDIF +.IF "$(DEF$(TNR)EXPORT9)"!="" + $(COMMAND_ECHO)echo $(DEF$(TNR)EXPORT9) >>$@.tmpfile +.ENDIF +.IF "$(DEF$(TNR)EXPORT10)"!="" + $(COMMAND_ECHO)echo $(DEF$(TNR)EXPORT10) >>$@.tmpfile +.ENDIF +.IF "$(DEF$(TNR)EXPORT11)"!="" + $(COMMAND_ECHO)echo $(DEF$(TNR)EXPORT11) >>$@.tmpfile +.ENDIF +.IF "$(DEF$(TNR)EXPORT12)"!="" + $(COMMAND_ECHO)echo $(DEF$(TNR)EXPORT12) >>$@.tmpfile +.ENDIF +.IF "$(DEF$(TNR)EXPORT13)"!="" + $(COMMAND_ECHO)echo $(DEF$(TNR)EXPORT13) >>$@.tmpfile +.ENDIF +.IF "$(DEF$(TNR)EXPORT14)"!="" + $(COMMAND_ECHO)echo $(DEF$(TNR)EXPORT14) >>$@.tmpfile +.ENDIF +.IF "$(DEF$(TNR)EXPORT15)"!="" + $(COMMAND_ECHO)echo $(DEF$(TNR)EXPORT15) >>$@.tmpfile +.ENDIF +.IF "$(DEF$(TNR)EXPORT16)"!="" + $(COMMAND_ECHO)echo $(DEF$(TNR)EXPORT16) >>$@.tmpfile +.ENDIF +.IF "$(DEF$(TNR)EXPORT17)"!="" + $(COMMAND_ECHO)echo $(DEF$(TNR)EXPORT17) >>$@.tmpfile +.ENDIF +.IF "$(DEF$(TNR)EXPORT18)"!="" + $(COMMAND_ECHO)echo $(DEF$(TNR)EXPORT18) >>$@.tmpfile +.ENDIF +.IF "$(DEF$(TNR)EXPORT19)"!="" + $(COMMAND_ECHO)echo $(DEF$(TNR)EXPORT19) >>$@.tmpfile +.ENDIF +.IF "$(DEF$(TNR)EXPORT20)"!="" + $(COMMAND_ECHO)echo $(DEF$(TNR)EXPORT20) >>$@.tmpfile +.ENDIF +.IF "$(DEF$(TNR)EXPORTFILE)"!="" +.IF "$(COM)"=="GCC" + $(COMMAND_ECHO)$(TYPE) $(DEF$(TNR)EXPORTFILE) | sed -e s:PRIVATE:: >> $@.tmpfile +.ELSE + $(COMMAND_ECHO)$(TYPE) $(DEF$(TNR)EXPORTFILE) >> $@.tmpfile +.ENDIF +.ENDIF + $(COMMAND_ECHO)-$(RM) $@ + $(COMMAND_ECHO)$(RENAME) $@.tmpfile $@ +.ENDIF # "$(GUI)"=="WNT" + +.IF "$(GUI)"=="UNX" +$(DEF$(TNR)TARGETN): \ + $(DEF$(TNR)DEPN) \ + $(DEF$(TNR)EXPORTFILE) + $(COMMAND_ECHO)echo just a dummy for UNIX > $@ +.ENDIF +.ENDIF # "$(DEF$(TNR)TARGETN)"!="" + + +# Anweisungen fuer das Linken +# unroll end +####################################################### + diff --git a/solenv/inc/tg_dep.mk b/solenv/inc/tg_dep.mk new file mode 100644 index 000000000000..37517e2f14b8 --- /dev/null +++ b/solenv/inc/tg_dep.mk @@ -0,0 +1,96 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +.IF "$(SLOFILES)$(OBJFILES)$(DEPOBJFILES)$(SRCFILES)$(SRC1FILES)$(SRC2FILES)$(SRC3FILES)$(RCFILES)$(HDBDEPNTARGET)$(IDLFILES)$(PARFILES)$(ZIP1TARGET)$(ZIP2TARGET)$(ZIP3TARGET)$(ZIP4TARGET)$(ZIP5TARGET)$(ZIP6TARGET)$(ZIP7TARGET)$(ZIP8TARGET)$(ZIP9TARGET)$(COMP1TYPELIST)$(COMP2TYPELIST)$(COMP3TYPELIST)$(COMP4TYPELIST)$(COMP5TYPELIST)$(COMP6TYPELIST)$(COMP7TYPELIST)$(COMP8TYPELIST)$(COMP9TYPELIST)"!="" +ALLDEP .PHONY: + @-$(IFEXIST) $(SRS)/$(TARGET).*.dpr $(THEN) $(RM:s/+//) $(SRS)/$(TARGET).*.dpr >& $(NULLDEV) $(FI) + @@-$(RM) $(MISC)/$(TARGET).dpr + @@-$(RM) $(MISC)/$(TARGET).*.dprr + @@-$(RM) $(MISC)/$(TARGET).dpj + @@-$(RM) $(MISC)/$(TARGET).dpz + @@-$(RM) $(MISC)/$(COMP1TYPELIST).mk $(MISC)/$(COMP2TYPELIST).mk $(MISC)/$(COMP3TYPELIST).mk $(MISC)/$(COMP4TYPELIST).mk $(MISC)/$(COMP5TYPELIST).mk $(MISC)/$(COMP6TYPELIST).mk $(MISC)/$(COMP7TYPELIST).mk $(MISC)/$(COMP8TYPELIST).mk $(MISC)/$(COMP9TYPELIST).mk +.IF "$(nodep)"=="" +.IF "$(DEPFILE_SLO)"!="" + @@-$(RM) $(DEPFILE_SLO) + $(foreach,i,$(all_local_slo) $(shell @$(MAKEDEPEND) @$(mktmp -f - -p$(SLO) $(MKDEPFLAGS) $(CDEFS) $(CDEFSSLO) $(CDEFSMT) $i ) > $(MISC)/s_$(i:b).dpcc )) + $(foreach,i,$(all_misc_slo) $(shell @$(MAKEDEPEND) @$(mktmp -f - -p$(SLO) $(MKDEPFLAGS) $(CDEFS) $(CDEFSSLO) $(CDEFSMT) $i ) > $(MISC)/s_$(i:b).dpcc )) +.ENDIF # "$(DEPFILE_SLO)"!="" +.IF "$(DEPFILE_OBJ)"!="" + @@-$(RM) $(DEPFILE_OBJ) + $(foreach,i,$(all_local_obj) $(shell @$(MAKEDEPEND) @$(mktmp -f - -p$(OBJ) $(MKDEPFLAGS) $(CDEFS) $(CDEFSOBJ) $(CDEFSMT) $i ) > $(MISC)/o_$(i:b).dpcc )) + $(foreach,i,$(all_misc_obj) $(shell @$(MAKEDEPEND) @$(mktmp -f - -p$(OBJ) $(MKDEPFLAGS) $(CDEFS) $(CDEFSOBJ) $(CDEFSMT) $i ) > $(MISC)/o_$(i:b).dpcc )) +.ENDIF # "$(DEPFILE_OBJ)"!="" +.ENDIF # "$(nodep)"=="" +.IF "$(DEPFILES)" != "" + echo xxx$(DEPFILES)xxx + @@-$(RM) $(DEPFILES) +.ENDIF # "$(DEPFILES)" != "" + + +ALLDPC: \ + $(DEPFILES) \ + $(RCFILES) \ + $(IDLFILES) \ + $(HDBDEPNTARGET) +.IF "$(nodep)"!="" + @echo NOT-Making: Depend-Lists + @echo ttt: ppp > $(MISC)/$(TARGET).dpc +.ELSE + @echo Making : Dependencies +.IF "$(CFILES)$(CXXFILES)"!="" +.IF "$(SLOFILES)$(OBJFILES)$(DEPOBJFILES)"=="" + @echo ++++++++++++++++++++++++++++++++++++++++++++++++ + @echo something is wrong!! + @echo source files but no obj + @echo ++++++++++++++++++++++++++++++++++++++++++++++++ + force_dmake_to_error +.ENDIF +.ENDIF +.IF "$(HDBDEPNTARGET)$(OBJFILES)$(SLOFILES)$(DEPOBJFILES)$(RCFILES)$(PARFILES)"!="" + @$(IFEXIST) $(MISC)/$(TARGET).dpj $(THEN) $(RM:s/+//) $(MISC)/$(TARGET).dpj >& $(NULLDEV) $(FI) + @$(IFEXIST) $(MISC)/genjava.mk $(THEN) $(RM:s/+//) $(MISC)/genjava.mk >& $(NULLDEV) $(FI) + $(TOUCH) $(MISC)/$(TARGET).dpc +.IF "$($(SECOND_BUILD)_SLOFILES)"!="" + @$(TYPE) $(mktmp $(foreach,i,$($(SECOND_BUILD)_SLOFILES) $(i:d:^"\n")$(SECOND_BUILD)_$(i:f) : $i )) >> $(MISC)/$(TARGET).dpc +.ENDIF +.IF "$($(SECOND_BUILD)_OBJFILES)"!="" + @$(TYPE) $(mktmp $(foreach,i,$($(SECOND_BUILD)_OBJFILES) $(i:d:^"\n")$(SECOND_BUILD)_$(i:f) : $(i:d:s/obj/slo/)$(i:b).obj )) >> $(MISC)/$(TARGET).dpc +.ENDIF +.ELSE # "$(HDBDEPNTARGET)$(OBJFILES)$(SLOFILES)$(DEPOBJFILES)$(RCFILES)"!="" + @echo ttt: ppp > $(MISC)/$(TARGET).dpc +.ENDIF # "$(HDBDEPNTARGET)$(OBJFILES)$(SLOFILES)$(DEPOBJFILES)$(RCFILES)"!="" +.ENDIF # "$(nodep)"!="" +.ELSE # anything requiring dependencies + +ALLDPC: + @echo $(EMQ)# > $(MISC)/$(TARGET).dpc + +ALLDEP: + @echo nothing to do here... + +.ENDIF + diff --git a/solenv/inc/tg_ext.mk b/solenv/inc/tg_ext.mk new file mode 100644 index 000000000000..a4217779094b --- /dev/null +++ b/solenv/inc/tg_ext.mk @@ -0,0 +1,355 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +.EXPORT : CC CXX + +# setup INCLUDE variable for use by VC++ +.IF "$(GUI)$(COM)"=="WNTMSC" +INCLUDE!:=. $(SOLARINC) +INCLUDE!:=$(INCLUDE:s/ -I/;/) +.EXPORT : INCLUDE +.ENDIF # "$(GUI)$(COM)"=="WNTMSC" + +.IF "$(OS)"=="MACOSX" +LDFLAGS!:=$(EXTRA_LINKFLAGS) $(LDFLAGS) +.EXPORT : LDFLAGS +.ENDIF + +.IF "$(GUI_FOR_BUILD)"=="WNT" +PATH!:=.:$(SOLARBINDIR:^"/cygdrive/":s/://):$(PATH) +.ELSE # "$(GUI)"=="WNT" +PATH!:=.$(PATH_SEPERATOR)$(SOLARBINDIR)$(PATH_SEPERATOR)$(PATH) +.ENDIF # "$(GUI)"=="WNT" +.EXPORT : PATH + +#override +PACKAGE_DIR=$(MISC)/build +ABS_PACKAGE_DIR:=$(MAKEDIR)/$(MISC)/build + +#MUST match with PACKAGE_DIR +BACK_PATH=../../../ +#MUST match with reference (currently MISC) +MBACK_PATH=../../ +.IF "$(TARFILE_IS_FLAT)" != "" +fake_root_dir=/$(TARFILE_NAME) +#MUST match fake_root_dir in directory levels +fake_back=../ +.ENDIF "$(TARFILE_IS_FLAT)" != "" + +TARFILE_LOCATION*=$(BACK_PATH)$(fake_back)download +TARFILE_LOCATION2=$(eq,$(BACK_PATH)$(fake_back)download,$(TARFILE_LOCATION) $(PRJ)/download $(TARFILE_LOCATION)) + +P_CONFIGURE_DIR=$(PACKAGE_DIR)/$(TARFILE_ROOTDIR)/$(CONFIGURE_DIR) +P_BUILD_DIR=$(PACKAGE_DIR)/$(TARFILE_ROOTDIR)/$(BUILD_DIR) +P_INSTALL_DIR=$(PACKAGE_DIR)/$(TARFILE_ROOTDIR)/$(BUILD_DIR) +P_INSTALL_TARGET_DIR=$(MISC)/install + +.IF "$(PATCH_FILES)"=="none" || "$(PATCH_FILES)"=="" +NEW_PATCH_FILE_NAME:=$(TARFILE_NAME) +.ELSE # "$(PATCH_FILES)"=="none" || "$(PATCH_FILES)"=="" +NEW_PATCH_FILE_NAME:=$(TARFILE_NAME)-newpatch-rename_me.patch +PATCH_FILE_DEP:=$(PRJ)/$(PATH_IN_MODULE)/{$(PATCH_FILES)} +.ENDIF # "$(PATCH_FILES)"=="none" || "$(PATCH_FILES)"=="" + +unzip_quiet_switch:=-qq +.IF "$(VERBOSE)"=="TRUE" +tar_verbose_switch=v +unzip_quiet_switch:= +.ENDIF # "$(VERBOSE)"=="TRUE" + +.IF "$(ADDITIONAL_FILES)"!="" +P_ADDITIONAL_FILES=$(foreach,i,$(ADDITIONAL_FILES) $(MISC)/$(TARFILE_ROOTDIR)/$i) +T_ADDITIONAL_FILES=$(foreach,i,$(ADDITIONAL_FILES) $(PACKAGE_DIR)/$(TARFILE_ROOTDIR)/$i) +.ENDIF # "$(ADDITIONAL_FILES)"!="" + +EXTRPATH*=OOO + +.IF "$(L10N_framework)"=="" + +ALLTAR : \ + $(PACKAGE_DIR)/$(UNTAR_FLAG_FILE) \ + $(PACKAGE_DIR)/$(BUILD_FLAG_FILE) \ + $(PACKAGE_DIR)/$(INSTALL_FLAG_FILE) \ + $(PACKAGE_DIR)/$(CONFIGURE_FLAG_FILE) \ + $(PACKAGE_DIR)/$(ADD_FILES_FLAG_FILE) \ + $(PACKAGE_DIR)/$(PATCH_FLAG_FILE) \ + $(PACKAGE_DIR)/$(PREDELIVER_FLAG_FILE) + +clean: + $(COMMAND_ECHO)cd $(P_BUILD_DIR) && $(BUILD_ACTION) $(BUILD_FLAGS) clean + $(COMMAND_ECHO)$(RM) $(PACKAGE_DIR)/$(BUILD_FLAG_FILE) + +$(MISC)/%.unpack : $(TARFILE_LOCATION2)/%.tar.bz2 + @-$(RM) $@ +.IF "$(GUI)"=="UNX" + @noop $(assign UNPACKCMD := sh -c "bzip2 -cd $(TARFILE_LOCATION)/$(TARFILE_MD5)-$(TARFILE_NAME).tar.bz2 $(TARFILE_FILTER) | $(GNUTAR) --no-same-owner -x$(tar_verbose_switch)f - ") +.ELSE # "$(GUI)"=="UNX" + @noop $(assign UNPACKCMD := bzip2 -cd $(TARFILE_LOCATION)/$(TARFILE_MD5)-$(TARFILE_NAME).tar.bz2 $(TARFILE_FILTER) | $(GNUTAR) --no-same-owner -x$(tar_verbose_switch)f - ) +.ENDIF # "$(GUI)"=="UNX" + @$(TYPE) $(mktmp $(UNPACKCMD)) > $@.$(INPATH) + @$(RENAME) $@.$(INPATH) $@ + +$(MISC)/%.unpack : $(TARFILE_LOCATION2)/%.tar.Z + @-$(RM) $@ +.IF "$(GUI)"=="UNX" + @noop $(assign UNPACKCMD := sh -c "uncompress -c $(TARFILE_LOCATION)/$(TARFILE_MD5)-$(TARFILE_NAME).tar.Z | $(GNUTAR) --no-same-owner -x$(tar_verbose_switch)f - ") +.ELSE # "$(GUI)"=="UNX" + @noop $(assign UNPACKCMD := uncompress -c $(TARFILE_LOCATION)/$(TARFILE_MD5)-$(TARFILE_NAME).tar.Z | $(GNUTAR) --no-same-owner -x$(tar_verbose_switch)f - ) +.ENDIF # "$(GUI)"=="UNX" + @$(TYPE) $(mktmp $(UNPACKCMD)) > $@.$(INPATH) + @$(RENAME) $@.$(INPATH) $@ + +$(MISC)/%.unpack : $(TARFILE_LOCATION2)/%.tar.gz + @-$(RM) $@ + @noop $(assign UNPACKCMD := gzip -d -c $(subst,\,/ $(TARFILE_LOCATION)/$(TARFILE_MD5)-$(TARFILE_NAME).tar.gz) $(TARFILE_FILTER) | $(GNUTAR) --no-same-owner -x$(tar_verbose_switch)f - ) + @$(TYPE) $(mktmp $(UNPACKCMD)) > $@.$(INPATH) + @$(RENAME) $@.$(INPATH) $@ + +$(MISC)/%.unpack : $(TARFILE_LOCATION2)/%.tgz + @-$(RM) $@ + @noop $(assign UNPACKCMD := gzip -d -c $(subst,\,/ $(TARFILE_LOCATION)/$(TARFILE_MD5)-$(TARFILE_NAME).tgz) $(TARFILE_FILTER) | $(GNUTAR) --no-same-owner -x$(tar_verbose_switch)f - ) + @$(TYPE) $(mktmp $(UNPACKCMD)) > $@.$(INPATH) + @$(RENAME) $@.$(INPATH) $@ + +$(MISC)/%.unpack : $(TARFILE_LOCATION2)/%.tar + @-$(RM) $@ + @noop $(assign UNPACKCMD := $(GNUTAR) --no-same-owner -x$(tar_verbose_switch)f $(TARFILE_LOCATION)/$(TARFILE_MD5)-$(TARFILE_NAME).tar) + @$(TYPE) $(mktmp $(UNPACKCMD)) > $@.$(INPATH) + @$(RENAME) $@.$(INPATH) $@ + +$(MISC)/%.unpack : $(TARFILE_LOCATION2)/%.zip + @-$(RM) $@ + @noop $(assign UNPACKCMD := unzip $(unzip_quiet_switch) -o $(TARFILE_LOCATION)/$(TARFILE_MD5)-$(TARFILE_NAME).zip) + @$(TYPE) $(mktmp $(UNPACKCMD)) > $@.$(INPATH) + @$(RENAME) $@.$(INPATH) $@ + +$(MISC)/%.unpack : $(TARFILE_LOCATION2)/%.oxt + @-$(RM) $@ + @noop $(assign UNPACKCMD := unzip $(unzip_quiet_switch) -o $(TARFILE_LOCATION)/$(TARFILE_MD5)-$(TARFILE_NAME).oxt) + @$(TYPE) $(mktmp $(UNPACKCMD)) > $@.$(INPATH) + @$(RENAME) $@.$(INPATH) $@ + +$(MISC)/%.unpack : $(TARFILE_LOCATION2)/%.jar + @-$(RM) $@ +.IF "$(OS)"=="SOLARIS" + @noop $(assign UNPACKCMD := jar xf $(TARFILE_LOCATION)/$(TARFILE_MD5)-$(TARFILE_NAME).jar) +.ELSE # "$(OS)"=="SOLARIS" + @noop $(assign UNPACKCMD := unzip $(unzip_quiet_switch) -o $(TARFILE_LOCATION)/$(TARFILE_MD5)-$(TARFILE_NAME).jar) +.ENDIF # "$(OS)"=="SOLARIS" + @$(TYPE) $(mktmp $(UNPACKCMD)) > $@.$(INPATH) + @$(RENAME) $@.$(INPATH) $@ + +#do unpack +$(PACKAGE_DIR)/$(UNTAR_FLAG_FILE) : $(PRJ)/$(ROUT)/misc/$(TARFILE_MD5)-$(TARFILE_NAME).unpack $(PATCH_FILE_DEP) + $(IFEXIST) $(PACKAGE_DIR)/$(TARFILE_ROOTDIR).exists $(THEN) $(RENAME:s/+//) $(PACKAGE_DIR)/$(TARFILE_ROOTDIR) $(PACKAGE_DIR)/$(TARFILE_ROOTDIR)_removeme $(FI) + $(COMMAND_ECHO)-rm -rf $(PACKAGE_DIR)/$(TARFILE_ROOTDIR)_removeme + @-$(MKDIRHIER) $(PACKAGE_DIR)$(fake_root_dir) + @$(TOUCH) $(PACKAGE_DIR)/$(TARFILE_ROOTDIR).exists # $(IFEXIST) only works with files + $(COMMAND_ECHO)cd $(PACKAGE_DIR)$(fake_root_dir) && ( $(shell @$(TYPE) $(PRJ)/$(ROUT)/misc/$(TARFILE_MD5)-$(TARFILE_NAME).unpack)) && $(TOUCH) $(UNTAR_FLAG_FILE) + @echo make writeable... + @-cd $(PACKAGE_DIR) && chmod -R +rw $(TARFILE_ROOTDIR) && $(TOUCH) $(UNTAR_FLAG_FILE) + @-cd $(PACKAGE_DIR) && find $(TARFILE_ROOTDIR) -type d -print0 | xargs -0 chmod a+x + +#add new files to patch +$(PACKAGE_DIR)/$(ADD_FILES_FLAG_FILE) : $(PACKAGE_DIR)/$(UNTAR_FLAG_FILE) $(T_ADDITIONAL_FILES:+".dummy") +.IF "$(GUI)"=="WNT" + @$(TOUCH) $@ +.ELSE # "$(GUI)"=="WNT" + @$(TOUCH) $@ +.ENDIF # "$(GUI)"=="WNT" + +#patch +$(PACKAGE_DIR)/$(PATCH_FLAG_FILE) : $(PACKAGE_DIR)/$(ADD_FILES_FLAG_FILE) +.IF "$(PATCH_FILES)"=="none" || "$(PATCH_FILES)"=="" + @echo no patch needed... + $(COMMAND_ECHO)$(TOUCH) $@ +.ELSE # "$(PATCH_FILES)"=="none" || "$(PATCH_FILES)"=="" +.IF "$(GUI)"=="WNT" + $(COMMAND_ECHO)cd $(PACKAGE_DIR) && $(TYPE:s/+//) $(BACK_PATH)$(PATH_IN_MODULE)/{$(PATCH_FILES)} | tr -d "\015" | patch $(PATCHFLAGS) -p2 && $(TOUCH) $(PATCH_FLAG_FILE) +.ELSE # "$(GUI)"=="WNT" +.IF "$(BSCLIENT)"=="TRUE" + $(COMMAND_ECHO)cd $(PACKAGE_DIR) && $(TYPE) $(BACK_PATH)$(PATH_IN_MODULE)/{$(PATCH_FILES)} | $(GNUPATCH) -f $(PATCHFLAGS) -p2 && $(TOUCH) $(PATCH_FLAG_FILE) +.ELSE # "$(BSCLIENT)"!="" + $(COMMAND_ECHO)cd $(PACKAGE_DIR) && $(TYPE) $(BACK_PATH)$(PATH_IN_MODULE)/{$(PATCH_FILES)} | $(GNUPATCH) $(PATCHFLAGS) -p2 && $(TOUCH) $(PATCH_FLAG_FILE) +.ENDIF # "$(BSCLIENT)"!="" +.ENDIF # "$(GUI)"=="WNT" +.ENDIF # "$(PATCH_FILES)"=="none" || "$(PATCH_FILES)"=="" +.IF "$(T_ADDITIONAL_FILES)"!="" +.IF "$(GUI_FOR_BUILD)"=="WNT" +# Native W32 tools generate only filedates with even seconds, cygwin also with odd seconds + $(DELAY) 2 +.ENDIF # "$(GUI)"=="WNT" + $(COMMAND_ECHO)$(TOUCH) $(PACKAGE_DIR)/$(PATCH_FLAG_FILE) +.ENDIF # "$(T_ADDITIONAL_FILES)"!="" + +.IF "$(CONVERTFILES)"!="" +$(MISC)/$(TARGET)_convert_unx_flag : $(PACKAGE_DIR)/$(UNTAR_FLAG_FILE) + $(COMMAND_ECHO)$(CONVERT) unix $(foreach,i,$(CONVERTFILES) $(PACKAGE_DIR)/$(TARFILE_ROOTDIR)/$i) && $(TOUCH) $(MISC)/$(TARGET)_convert_unx_flag + +$(PACKAGE_DIR)/$(PATCH_FLAG_FILE) : $(MISC)/$(TARGET)_convert_unx_flag + +$(MISC)/$(TARGET)_convert_dos_flag : $(PACKAGE_DIR)/$(PATCH_FLAG_FILE) + $(COMMAND_ECHO)$(CONVERT) dos $(foreach,i,$(CONVERTFILES) $(PACKAGE_DIR)/$(TARFILE_ROOTDIR)/$i) && $(TOUCH) $(MISC)/$(TARGET)_convert_dos_flag + +$(PACKAGE_DIR)/$(CONFIGURE_FLAG_FILE) : $(MISC)/$(TARGET)_convert_dos_flag + +patch : $(MISC)/$(TARGET)_convert_dos_flag + +.ENDIF # "$(CONVERTFILES)"!="" + +$(PACKAGE_DIR)/$(CONFIGURE_FLAG_FILE) : $(PACKAGE_DIR)/$(PATCH_FLAG_FILE) + @@-$(RM) $@ +.IF "$(CONFIGURE_ACTION)" == "none" || "$(CONFIGURE_ACTION)"=="" + $(COMMAND_ECHO)$(TOUCH) $(PACKAGE_DIR)/$(CONFIGURE_FLAG_FILE) +.ELSE # "$(CONFIGURE_ACTION)"=="none" || "$(CONFIGURE_ACTION)"=="" + $(COMMAND_ECHO)-$(MKDIR) $(P_CONFIGURE_DIR) + $(COMMAND_ECHO)cd $(P_CONFIGURE_DIR) && $(CONFIGURE_ACTION) $(CONFIGURE_FLAGS) && $(TOUCH) $(CONFIGURE_FLAG_FILE) + $(COMMAND_ECHO)mv $(P_CONFIGURE_DIR)/$(CONFIGURE_FLAG_FILE) $(PACKAGE_DIR)/$(CONFIGURE_FLAG_FILE) +.ENDIF # "$(CONFIGURE_ACTION)"=="none" || "$(CONFIGURE_ACTION)"=="" + + +$(PACKAGE_DIR)/$(BUILD_FLAG_FILE) : $(PACKAGE_DIR)/$(CONFIGURE_FLAG_FILE) + @@-$(RM) $@ +.IF "$(eq,x$(BUILD_ACTION:s/none//)x,xx true false)"=="true" + $(COMMAND_ECHO)$(TOUCH) $(PACKAGE_DIR)/$(BUILD_FLAG_FILE) +.ELSE # "$(eq,x$(BUILD_ACTION:s/none//)x,xx true false)"=="true" + $(COMMAND_ECHO)-$(MKDIR) $(P_BUILD_DIR) + $(COMMAND_ECHO)cd $(P_BUILD_DIR) && $(BUILD_ACTION) $(BUILD_FLAGS) && $(TOUCH) $(ABS_PACKAGE_DIR)/$(BUILD_FLAG_FILE) +.ENDIF # "$(eq,x$(BUILD_ACTION:s/none//)x,xx true false)"=="true" + +$(PACKAGE_DIR)/$(INSTALL_FLAG_FILE) : $(PACKAGE_DIR)/$(BUILD_FLAG_FILE) + @@-$(RM) $@ +.IF "$(INSTALL_ACTION)"=="none" || "$(INSTALL_ACTION)"=="" + $(COMMAND_ECHO)$(TOUCH) $(PACKAGE_DIR)/$(INSTALL_FLAG_FILE) +.ELSE # "$(INSTALL_ACTION)"=="none" || "$(INSTALL_ACTION)"=="" + $(COMMAND_ECHO)-$(MKDIR) $(P_INSTALL_DIR) + $(COMMAND_ECHO)-$(MKDIR) $(P_INSTALL_TARGET_DIR) + $(COMMAND_ECHO)cd $(P_INSTALL_DIR) && $(INSTALL_ACTION) $(INSTALL_FLAGS) && $(TOUCH) $(INSTALL_FLAG_FILE) + $(COMMAND_ECHO)mv $(P_INSTALL_DIR)/$(INSTALL_FLAG_FILE) $(PACKAGE_DIR)/$(INSTALL_FLAG_FILE) +.ENDIF # "$(INSTALL_ACTION)"=="none" || "$(INSTALL_ACTION)"=="" + +$(PACKAGE_DIR)/$(PREDELIVER_FLAG_FILE) : $(PACKAGE_DIR)/$(INSTALL_FLAG_FILE) +.IF "$(OUT2LIB)"!="" + $(COMMAND_ECHO)$(COPY) $(foreach,i,$(OUT2LIB) $(PACKAGE_DIR)/$(TARFILE_ROOTDIR)/$i) $(LB) +.IF "$(OS)"=="MACOSX" + $(COMMAND_ECHO)$(PERL) $(SOLARENV)/bin/macosx-change-install-names.pl extshl \ + $(EXTRPATH) \ + $(shell ls $(foreach,j,$(OUT2LIB) $(LB)/$(j:f)) | \ + (grep -v '\.a$$' || test $$? = 1)) +.ENDIF +.ENDIF # "$(OUT2LIB)"!="" +.IF "$(OUT2INC)"!="" +.IF "$(OUT2INC_SUBDIR)"!="" + $(COMMAND_ECHO)-$(MKDIRHIER) $(INCCOM)/$(OUT2INC_SUBDIR) + $(COMMAND_ECHO)$(COPY) $(foreach,i,$(OUT2INC) $(PACKAGE_DIR)/$(TARFILE_ROOTDIR)/$i) $(INCCOM)/$(OUT2INC_SUBDIR) +.ELSE # "$(OUT2INC_SUBDIR)"!="" + $(COMMAND_ECHO)$(COPY) $(foreach,i,$(OUT2INC) $(PACKAGE_DIR)/$(TARFILE_ROOTDIR)/$i) $(INCCOM) +.ENDIF # "$(OUT2INC_SUBDIR)"!="" +.ENDIF # "$(OUT2INC)"!="" +.IF "$(OUTDIR2INC)"!="" + $(COMMAND_ECHO)$(COPY) $(DEREFERENCE) $(COPYRECURSE) $(foreach,i,$(OUTDIR2INC) $(PACKAGE_DIR)/$(TARFILE_ROOTDIR)/$i) $(INCCOM) +.ENDIF # "$(OUTDIR2INC)"!="" +.IF "$(OUT2BIN)"!="" + $(COMMAND_ECHO)$(COPY) $(foreach,i,$(OUT2BIN) $(PACKAGE_DIR)/$(TARFILE_ROOTDIR)/$i) $(BIN) +.IF "$(GUI)$(COM)$(COMEX)"=="WNTMSC12" + @noop $(foreach,j,$(foreach,k,$(OUT2BIN) \ + $(shell -ls -1 $(PACKAGE_DIR)/$(TARFILE_ROOTDIR)/$k | $(GREP) .dll)) \ + $(shell @$(IFEXIST) $(j).manifest $(THEN) mt.exe \ + -manifest $(j).manifest -outputresource:$(BIN)/$(j:f)$(EMQ);2 $(FI))) +.ENDIF # "$(GUI)$(COM)$(COMEX)"=="WNTMSC12" +.ENDIF # "$(OUT2BIN)"!="" +.IF "$(OUT2CLASS)"!="" + $(COMMAND_ECHO)$(COPY) $(foreach,i,$(OUT2CLASS) $(PACKAGE_DIR)/$(TARFILE_ROOTDIR)/$i) $(CLASSDIR) +.ENDIF # "$(OUT2BIN)"!="" + $(COMMAND_ECHO)$(TOUCH) $(PACKAGE_DIR)/$(PREDELIVER_FLAG_FILE) + +$(MISC)/$(TARFILE_ROOTDIR).done : $(MISC)/$(TARFILE_MD5)-$(TARFILE_NAME).unpack $(PATCH_FILES) + @-mv $(MISC)/$(TARFILE_ROOTDIR) $(MISC)/$(TARFILE_ROOTDIR).old + @-rm -rf $(MISC)/$(TARFILE_ROOTDIR).old + @-$(MKDIRHIER) $(MISC)$(fake_root_dir) + $(COMMAND_ECHO)cd $(MISC)$(fake_root_dir) && $(subst,$(BACK_PATH),$(MBACK_PATH) $(shell @$(TYPE) $(PRJ)/$(ROUT)/misc/$(TARFILE_MD5)-$(TARFILE_NAME).unpack)) +.IF "$(P_ADDITIONAL_FILES)"!="" + noop $(foreach,i,$(P_ADDITIONAL_FILES) $(shell echo dummy > $i)) +.ENDIF "$(P_ADDITIONAL_FILES)"!="" +.IF "$(PATCH_FILES)"!="none" && "$(PATCH_FILES)"!="" +.IF "$(CONVERTFILES)"!="" + $(CONVERT) unix $(foreach,i,$(CONVERTFILES) $(MISC)/$(TARFILE_ROOTDIR)/$i) +.ENDIF # "$(CONVERTFILES)"!="" +.IF "$(GUI)"=="WNT" +# hack to make 4nt version 4,01 work and still get propper +# errorcodes for versions < 3,00 +#.IF "$(my4ver:s/.//:s/,//)" >= "300" +# $(COMMAND_ECHO)cd $(MISC) && ( $(TYPE:s/+//) $(BACK_PATH)$(PATH_IN_MODULE)/{$(PATCH_FILES)} | tr -d "\015" | patch $(PATCHFLAGS) -p2 ) +#.ELSE # "$(my4ver:s/.//:s/,//)" >= "300" + $(COMMAND_ECHO)cd $(MISC) && $(TYPE:s/+//) $(MBACK_PATH)$(PATH_IN_MODULE)/{$(PATCH_FILES)} | tr -d "\015" | patch $(PATCHFLAGS) -p2 +#.ENDIF # "$(my4ver:s/.//:s/,//)" >= "300" +.ELSE # "$(GUI)"=="WNT" +.IF "$(BSCLIENT)"=="TRUE" + $(COMMAND_ECHO)cd $(MISC) && $(TYPE) $(MBACK_PATH)$(PATH_IN_MODULE)/{$(PATCH_FILES)} | $(GNUPATCH) -f $(PATCHFLAGS) -p2 +.ELSE # "$(BSCLIENT)"!="" + $(COMMAND_ECHO)cd $(MISC) && $(TYPE) $(MBACK_PATH)$(PATH_IN_MODULE)/{$(PATCH_FILES)} | $(GNUPATCH) $(PATCHFLAGS) -p2 +.ENDIF # "$(BSCLIENT)"!="" +.ENDIF # "$(GUI)"=="WNT" +.IF "$(CONVERTFILES)"!="" + $(COMMAND_ECHO)$(CONVERT) dos $(foreach,i,$(CONVERTFILES) $(MISC)/$(TARFILE_ROOTDIR)/$i) +.ENDIF # "$(CONVERTFILES)"!="" +.ENDIF # "$(PATCH_FILES)"!="none" && "$(PATCH_FILES)"!=" +.IF "$(GUI)"=="UNX" + $(COMMAND_ECHO)$(TOUCH) $@ +.ENDIF # "$(GUI)"=="UNX" + +.IF "$(T_ADDITIONAL_FILES)"!="" +$(T_ADDITIONAL_FILES:+".dummy") : $(PACKAGE_DIR)/$(UNTAR_FLAG_FILE) + @-$(MKDIRHIER) $(@:d) + $(COMMAND_ECHO)-echo dummy > $@ + $(COMMAND_ECHO)-$(TOUCH) $@ + $(COMMAND_ECHO)-echo dummy > $(@:d)$(@:b) + $(COMMAND_ECHO)-$(TOUCH) $(@:d)$(@:b) +.ENDIF "$(T_ADDITIONAL_FILES)"!="" + +create_patch : $(MISC)/$(TARFILE_ROOTDIR).done $(PACKAGE_DIR)/$(PATCH_FLAG_FILE) + @@-$(MKDIRHIER) $(PRJ)/$(NEW_PATCH_FILE_NAME:d) + @@-$(RM) $(MISC)/$(NEW_PATCH_FILE_NAME:f).tmp + @@-$(RM) $(PRJ)/$(PATH_IN_MODULE)/$(NEW_PATCH_FILE_NAME).bak +#ignore returncode of 1 (indicates differences...) +# hard coded again to get the same directory level as before. quite ugly... + $(COMMAND_ECHO)-cd $(PRJ)/$(ROUT) && diff -ru misc/$(TARFILE_ROOTDIR) misc/build/$(TARFILE_ROOTDIR) | $(PERL) $(SOLARENV)/bin/cleandiff.pl | tr -d "\015" > misc/$(NEW_PATCH_FILE_NAME:f).tmp + $(COMMAND_ECHO)-mv $(PRJ)/$(PATH_IN_MODULE)/$(NEW_PATCH_FILE_NAME) $(PRJ)/$(PATH_IN_MODULE)/$(NEW_PATCH_FILE_NAME).bak + $(COMMAND_ECHO)-$(TOUCH) $(PRJ)/$(PATH_IN_MODULE)/$(NEW_PATCH_FILE_NAME).bak + $(COMMAND_ECHO)$(PERL) $(SOLARENV)/bin/patch_sanitizer.pl $(PRJ)/$(PATH_IN_MODULE)/$(NEW_PATCH_FILE_NAME).bak $(MISC)/$(NEW_PATCH_FILE_NAME:f).tmp $(PRJ)/$(PATH_IN_MODULE)/$(NEW_PATCH_FILE_NAME) + @@-$(RM) $(MISC)/$(NEW_PATCH_FILE_NAME:f).tmp $(PRJ)/$(PATH_IN_MODULE)/$(NEW_PATCH_FILE_NAME).bak + $(COMMAND_ECHO)$(MAKECMD) $(MAKEMACROS) patch + @echo still some problems with win32 generated patches... + @echo $(USQ)find your new changes in $(NEW_PATCH_FILE_NAME). don't forget to move/rename that patch and insert it in your makefiles PATCH_FILES to activate.$(USQ) + +create_clean : $(PACKAGE_DIR)/$(UNTAR_FLAG_FILE) + @echo done + +patch : $(PACKAGE_DIR)/$(PATCH_FLAG_FILE) + @echo done + +.ENDIF # "$(L10N_framework)"=="" diff --git a/solenv/inc/tg_help.mk b/solenv/inc/tg_help.mk new file mode 100644 index 000000000000..cce5b9ee62b2 --- /dev/null +++ b/solenv/inc/tg_help.mk @@ -0,0 +1,90 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +# to make it usable with special lang selection of +# helpcontent2 + +aux_alllangiso*:=$(alllangiso) + +SHELL_PACKAGE:=$(subst,/,$/ $(PACKAGE)) + +.IF "$(XHPDEST)"=="" +XHPDEST*:=$(COMMONMISC) +HELP_OUT:=$(COMMONMISC) +.ELSE # "$(XHPDEST)"=="" +HELP_OUT:=$(MISC) +.ENDIF # "$(XHPDEST)"=="" + +HLANGXHPFILES*:=$(foreach,i,$(XHPFILES) $(foreach,j,$(aux_alllangiso) $(XHPDEST)$/$j$/$(SHELL_PACKAGE)$/$(i:f))) + +ALLTAR : $(HELP_OUT)$/$(TARGET).done $(HELP_OUT)$/xhp_changed.flag optix + +$(HLANGXHPFILES) : $$(@:d)thisdir.created + +$(XHPDEST)$/{$(aux_alllangiso)}$/$(SHELL_PACKAGE)$/%.xhp :| %.xhp + @$(TOUCH) $@ +# internal dependencies not sufficient to trigger merge? +# @$(NULL) + + +$(HELP_OUT)$/$(TARGET).done : $(HLANGXHPFILES) +.IF "$(WITH_LANG)"!="" + $(AUGMENT_LIBRARY_PATH) $(HELPEX) -p $(PRJNAME) -r $(PRJ) -i @$(mktmp $(uniq $(foreach,i,$? $(!eq,$(i:f),$(i:f:s/.xhp//) $(i:f) $(XHPFILES))))) -x $(XHPDEST) -y $(SHELL_PACKAGE) -l all -lf $(aux_alllangiso:t",") -m $(LOCALIZESDF) && $(TOUCH) $@ +.ELSE # "$(WITH_LANG)"!="" + cp $(uniq $(foreach,i,$? $(!eq,$(i:f),$(i:f:s/.xhp//) $(i:f) $(XHPFILES)))) $(XHPDEST)$/en-US$/$(SHELL_PACKAGE) && $(TOUCH) $@ +.ENDIF # "$(WITH_LANG)"!="" +.IF "$(OS)"=="SOLARIS" + @$(ECHONL) " " +.ELSE # "$(OS)"=="SOLARIS" + @$(ECHONL) +.ENDIF # "$(OS)"=="SOLARIS" + +$(HELP_OUT)$/xhp_changed.flag : $(HLANGXHPFILES) + @$(TOUCH) $@ + +# urks - dmake mixes up operators and strings :-( +.IF "$(HLANGXHPFILES:s/defined/xxx/)"!="" + +.IF "$(HELPTRANSPHONY)"!="" +$(HELP_OUT)$/$(TARGET).done .PHONY : +.ELSE # "$(HELPTRANSPHONY)"!="" + +$(HELP_OUT)$/$(TARGET).done : makefile.mk +.IF "$(WITH_LANG)"!="" +$(HELP_OUT)$/$(TARGET).done : $(LOCALIZESDF) +.ENDIF # "$(WITH_LANG)"!="" +.ENDIF # "$(HELPTRANSPHONY)"!="" +.ENDIF # "$(HLANGXHPFILES)"!="" + +optix: $(HELP_OUT)$/$(TARGET).done + @echo done + +%.created : + @@-$(MKDIRHIER) $(@:d) + @$(TOUCH) $@ + + diff --git a/solenv/inc/tg_jar.mk b/solenv/inc/tg_jar.mk new file mode 100644 index 000000000000..df39ba65229f --- /dev/null +++ b/solenv/inc/tg_jar.mk @@ -0,0 +1,87 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + + +.IF "$(VERBOSE)"!="TRUE" +ZIP_VERBOSITY=-q +.ENDIF + +.IF "$(JARTARGETN)"!="" + +.IF "$(JARCOMPRESS)"=="" +JARCOMPRESS_FLAG=0 +.ENDIF + +$(JARTARGETN) : $(JARMANIFEST) $(JAVACLASSFILES) $(JAVATARGET) + +.IF "$(JARMANIFEST)"!="" + +.IF "$(CUSTOMMANIFESTFILE)"!="" + +CUSTOMMANIFESTFILEDEP:=$(MISC)/$(TARGET)_$(CUSTOMMANIFESTFILE:f) + +$(MISC)/$(TARGET)_$(CUSTOMMANIFESTFILE:f) : $(subst,/,/ $(DMAKE_WORK_DIR))/$(CUSTOMMANIFESTFILE) + $(COMMAND_ECHO)-$(RM) $@ + $(COMMAND_ECHO)$(COPY) $< $@ +.ENDIF # "$(CUSTOMMANIFESTFILE)"!="" + +$(JARMANIFEST) .PHONY : $(CUSTOMMANIFESTFILEDEP) + @@-$(MKDIRHIER) $(@:d) + @@-$(RM) $@ + $(COMMAND_ECHO)echo Manifest-Version: 1.0 > $@ +.IF "$(JARCLASSPATH)" != "" + $(COMMAND_ECHO)echo $(USQ)Class-Path: $(JARCLASSPATH)$(USQ) >> $@ +.ENDIF +# $(RSCREVISION) contains chars that must be quoted (for *NIX shells) + $(COMMAND_ECHO)echo $(USQ)Solar-Version: $(RSCREVISION)$(USQ) >> $@ +.IF "$(CUSTOMMANIFESTFILE)"!="" + $(COMMAND_ECHO)$(TYPE) $(MISC)/$(TARGET)_$(CUSTOMMANIFESTFILE:f) >> $@ +.ENDIF # "$(CUSTOMMANIFESTFILE)"!="" +.ENDIF # "$(JARMANIFEST)"!="" + +.IF "$(JARCLASSEXCLUDES)" == "" +ZIPJAR_EXCLUDE= +.ELSE # "$(JARCLASSEXCLUDES)" == "" +ZIPJAR_EXCLUDE=$(foreach,i,$(JARCLASSEXCLUDES) -x "$i") +# format: +# JARCLASSEXCLUDES=foo/* bar/* +.ENDIF # "$(JARCLASSEXCLUDES)" == "" + +# +# build jar +# +$(JARTARGETN) .PHONY : +# $(JARMANIFEST) +.IF "$(OS)$(CPU)"=="SOLARISS" + @-find . -type d -user $(USER) ! -perm -5 -print | xargs test "$$1" != "" && chmod +r $$1 +.ENDIF +.IF "$(JARMANIFEST)"!="" + $(COMMAND_ECHO)cd $(CLASSDIR)/$(TARGET) && zip $(ZIP_VERBOSITY) -u -rX ../$(@:f) $(subst,$(CLASSDIR)/$(TARGET)/, $(JARMANIFEST)) $(ZIPJAR_EXCLUDE) $(CHECKZIPRESULT) +.ENDIF # "$(JARMANIFEST)"!="" + $(COMMAND_ECHO)cd $(CLASSDIR) && zip $(ZIP_VERBOSITY) -u -rX $(@:f) $(subst,\,/ $(JARCLASSDIRS)) $(ZIPJAR_EXCLUDE) $(CHECKZIPRESULT) +.ENDIF + diff --git a/solenv/inc/tg_java.mk b/solenv/inc/tg_java.mk new file mode 100644 index 000000000000..054dcc5fbaff --- /dev/null +++ b/solenv/inc/tg_java.mk @@ -0,0 +1,81 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + + + +$(CLASSDIR)/com/sun/star/upd/$(VERSIONINFOFILE)_updversion.class .PHONY: $(MISC)/java/com/sun/star/upd/$(VERSIONINFOFILE)_updversion.java + +$(MISC)/java/com/sun/star/upd/$(VERSIONINFOFILE)_updversion.java .PHONY: + @echo "Making: " $(@:f) + @-$(MKDIRHIER) $(MISC)/java/com/sun/star/upd +.IF "$(GUI)"=="UNX" + @echo package com.sun.star.upd\; > $@ + @echo 'public class $(VERSIONINFOFILE)_updversion { public static String Version = "$(RSCREVISION)";}' >> $@ +.ELSE # "$(GUI)"=="UNX" + @echo package com.sun.star.upd; > $@ + @echo public class $(VERSIONINFOFILE)_updversion { public static String Version = "$(RSCREVISION)";} >> $@ +.ENDIF # "$(GUI)"=="UNX" + +.IF "$(JAVATARGET)"!="" +.IF "$(PACKAGE)"!="" +$(CLASSDIR)/$(PACKAGE)/%.class .NOINFER .IGNORE : %.java + $(COMMAND_ECHO)-$(RM) $(JAVATARGET) +.ELSE # "$(PACKAGE)"!="" +$(CLASSDIR)/%.class .NOINFER .IGNORE : %.java + $(COMMAND_ECHO)-$(RM) $(JAVATARGET) +.ENDIF # "$(PACKAGE)"!="" + +$(JAVATARGET) : $(JAVAFILES) $(JAVACLASSFILES) +.IF "$(JAVARESPONSE)"!="" + $(COMMAND_ECHO)$(JAVAC) @<< + $(JAVACPS) $(CLASSPATH) -d $(CLASSDIR) $(JAVAFLAGS) $(JAVAFILES) + <<keep +.ELSE # "$(JAVARESPONSE)"!="" +.IF "$(use_jdep)"!="" + $(COMMAND_ECHO)$(JAVAC) -depend $(JAVACPS) $(CLASSPATH) -d $(CLASSDIR) $(JAVAFLAGS) $(JAVAFILES) +.ELSE # "$(use_jdep)"!="" +.IF "$(javauno)"!="" +.IF "$(JAVAFILES:d)"=="" + $(COMMAND_ECHO)$(JAVAC) $(JAVACPS) $(CLASSPATH) -d $(CLASSDIR) $(JAVAFLAGS) $(JAVAFILES) +.ELSE # "$(JAVAFILES:d)"=="" + @@$(TOUCH) $(INPATH)_$(VCSID)_a_dummy.java + $(COMMAND_ECHO)$(JAVAC) $(JAVACPS) $(CLASSPATH) -d $(CLASSDIR) $(JAVAFLAGS) ./*.java $(uniq $(JAVAFILES:d:+"*.java")) + @@-$(RM) $(INPATH)_$(VCSID)_a_dummy.java +.ENDIF # "$(JAVAFILES:d)"=="" +.ELSE # "$(javauno)"!="" + $(COMMAND_ECHO)$(JAVAC) $(JAVACPS) "$(CLASSPATH)" -d $(CLASSDIR) $(JAVAFLAGS) @$(mktmp $(strip $(JAVAFILES))) +.ENDIF # "$(javauno)"!="" +.ENDIF # "$(use_jdep)"!="" +.ENDIF # "$(JAVARESPONSE)"!="" +.IF "$(UPDATER)"!="" +.IF "$(OS)$(CPU)"=="SOLARISS" + @@-find $(CLASSDIR) -type d -user $(USER) \! -perm -5 -print | xargs chmod a+r $$1 +.ENDIF +.ENDIF + @$(TOUCH) $@ + +.ENDIF # "$(JAVATARGET)"!="" diff --git a/solenv/inc/tg_javav.mk b/solenv/inc/tg_javav.mk new file mode 100644 index 000000000000..fe5f7fe17e81 --- /dev/null +++ b/solenv/inc/tg_javav.mk @@ -0,0 +1,53 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +JAVAVERMK:=$(INCCOM)/java_ver.mk + +.INCLUDE .IGNORE : $(JAVAVERMK) + +.IF "$(JAVAVER)"=="" || "$(JAVALOCATION)"!="$(JAVA_HOME)" +.IF "$(L10N_framework)"=="" + +.IF "$(SOLAR_JAVA)"!="" +JFLAGSVERSION=-version +JFLAGSVERSION_CMD=-version $(PIPEERROR) $(AWK) -f $(SOLARENV)/bin/getcompver.awk +JFLAGSNUMVERSION_CMD=-version $(PIPEERROR) $(AWK) -v num=true -f $(SOLARENV)/bin/getcompver.awk + +# that's the version known by the specific +# java version +JAVAVER:=$(shell @-$(JAVA_HOME)/bin/java $(JFLAGSVERSION_CMD)) + +# and a computed integer for comparing +# each point seperated token blown up to 4 digits +JAVANUMVER:=$(shell @-$(JAVA_HOME)/bin/java $(JFLAGSNUMVERSION_CMD)) + +.ELSE # "$(SOLAR_JAVA)"!="" +JAVAVER=0.0.0 +JAVANUMVER=000000000000 +.ENDIF # "$(SOLAR_JAVA)"!="" +.ENDIF # "$(L10N_framework)"=="" +.ENDIF # "$(JAVAVER)"=="" || "$(JAVALOCATION)"!="$(JAVA_HOME)" diff --git a/solenv/inc/tg_lib.mk b/solenv/inc/tg_lib.mk new file mode 100644 index 000000000000..a93d6ad5602c --- /dev/null +++ b/solenv/inc/tg_lib.mk @@ -0,0 +1,117 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +####################################################### +# Anweisungen fuer das Linken +# unroll begin + +.IF "$(LIB$(TNR)TARGET)" != "" +.IF "$(LIB$(TNR)ARCHIV)" != "" + +$(LIB$(TNR)ARCHIV) : $(LIB$(TNR)TARGET) + @echo "Making: " $(@:f) + @@-$(RM) $@ +.IF "$(GUI)"=="UNX" + @-$(RM) $(MISC)/$(LIB$(TNR)ARCHIV:b).cmd + @echo $(LIBMGR) $(LIB$(TNR)FLAGS) $(LIBFLAGS) $(LIB$(TNR)ARCHIV) `cat $(LIB$(TNR)TARGET) | sed s\#'^'$(ROUT)\#$(PRJ)/$(ROUT)\#g` > $(MISC)/$(LIB$(TNR)ARCHIV:b).cmd +.IF "$(OS)$(COM)"=="NETBSDGCC" + @echo ranlib $(LIB$(TNR)ARCHIV) >> $(MISC)/$(LIB$(TNR)ARCHIV:b).cmd +.ENDIF +.IF "$(OS)" == "MACOSX" + @echo ranlib $(LIB$(TNR)ARCHIV) >> $(MISC)/$(LIB$(TNR)ARCHIV:b).cmd +.ENDIF +.IF "$(VERBOSE)" == "TRUE" + @cat $(MISC)/$(LIB$(TNR)ARCHIV:b).cmd +.ENDIF + @+source $(MISC)/$(LIB$(TNR)ARCHIV:b).cmd +.ELSE # "$(GUI)"=="UNX" +.IF "$(GUI)$(COM)"=="WNTGCC" + @+-$(RM) $(MISC)/$(LIB$(TNR)ARCHIV:b).cmd + @+echo $(LIBMGR) $(LIB$(TNR)FLAGS) $(LIBFLAGS) $(LIB$(TNR)ARCHIV) `cat $(LIB$(TNR)TARGET) | sed s#'^'$(ROUT)#$(PRJ)/$(ROUT)#g` > $(MISC)/$(LIB$(TNR)ARCHIV:b).cmd + @+echo $(RANLIB) $(LIB$(TNR)ARCHIV) >> $(MISC)/$(LIB$(TNR)ARCHIV:b).cmd +.IF "$(VERBOSE)" == "TRUE" + @cat $(MISC)/$(LIB$(TNR)ARCHIV:b).cmd +.ENDIF + @+source $(MISC)/$(LIB$(TNR)ARCHIV:b).cmd +.ELSE + @echo just a dummy > $@ +.ENDIF # "$(GUI)$(COM)"=="WNTGCC" +.ENDIF # "$(GUI)"=="UNX" + +.ENDIF # "$(LIB$(TNR)ARCHIV)" != "" + +$(LIB$(TNR)TARGET) : $(LIB$(TNR)FILES) \ + $(LIB$(TNR)OBJFILES) \ + $(LIB$(TNR)DEPN) +.IF "$(VERBOSE)" == "TRUE" + @echo ------------------------------ + @echo using: $(LIB$(TNR)FILES) + @echo using: $(LIB$(TNR)TARGET) + @echo ------------------------------ +.ENDIF + @echo "Making: " $(@:f) + @@-$(RM) $@ +.IF "$(GUI)"=="UNX" + @echo $(LIB$(TNR)OBJFILES:s/.obj/.o/) | sed "s#$(PRJ:s/./\./)/$(ROUT)#$(ROUT)#g" | xargs -n 1 > $@ + @cat /dev/null $(LIB$(TNR)FILES:s/.obj/.o/) | xargs -n 1 >> $@ + @$(RM) $(@:d)$(@:b).dump +.IF "$(OS)"=="MACOSX" + @-nm `cat $(LIB$(TNR)TARGET) | sed s\#'^'$(ROUT)\#$(PRJ)/$(ROUT)\#g` > $(@:d)$(@:b).dump +.ELSE + @nm `cat $(LIB$(TNR)TARGET) | sed s\#'^'$(ROUT)\#$(PRJ)/$(ROUT)\#g` > $(@:d)$(@:b).dump +.ENDIF + +.ELSE # "$(GUI)"=="UNX" +.IF "$(GUI)"=="WNT" +.IF "$(COM)"=="GCC" + +$(ECHONL) $(LIB$(TNR)OBJFILES) | sed "s#$(PRJ:s/././)/$(ROUT)#$(ROUT)#g" | xargs -n1 > $@ + @+cat /dev/null $(LIB$(TNR)FILES) | xargs -n1 >> $@ +.ELSE + $(COMMAND_ECHO)$(LIBMGR) $(LIBFLAGS) /OUT:$@ @$(mktmp $(LIB$(TNR)FILES) $(LIB$(TNR)OBJFILES)) + @-$(RM) $(@:s/.lib/.lin/) +.IF "$(LIB$(TNR)OBJFILES)"!="" + @$(TYPE) $(mktmp $(LIB$(TNR)OBJFILES)) > $(null,$(LIB$(TNR)OBJFILES) $(NULLDEV) $(@:s/.lib/.lin/)) +.ENDIF # "$(LIB$(TNR)OBJFILES)"!="" +.IF "$(LIB$(TNR)FILES)"!="" + @-$(TYPE) $(foreach,i,$(LIB$(TNR)FILES) $(i:s/.lib/.lin/)) >> $(@:s/.lib/.lin/) +.ENDIF # "$(LIB$(TNR)FILES)"!="" + @$(ECHONL) +.ENDIF # "$(LIB$(TNR)FILES)"!="" +.ELSE # "$(GUI)"=="WNT" + @-$(RM) $@ + .IF "$(VERBOSE)" == "TRUE" + @echo $(LIBMGR) r $@ $(LIB$(TNR)OBJFILES) + .ENDIF + $(COMMAND_ECHO)$(LIBMGR) r $@ $(LIB$(TNR)OBJFILES) $(LIB$(TNR)FILES) bla.lib +.ENDIF # "$(GUI)"=="WNT" +.ENDIF # "$(GUI)"=="UNX" +.ENDIF # "$(LIB$(TNR)TARGET)" != "" + +# Anweisungen fuer das LIBTARGETs +# unroll end +####################################################### + diff --git a/solenv/inc/tg_merge.mk b/solenv/inc/tg_merge.mk new file mode 100644 index 000000000000..19f44cb828af --- /dev/null +++ b/solenv/inc/tg_merge.mk @@ -0,0 +1,57 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +MKFILENAME:=tg_merge.mk + +# look for the according rules in "rules.mk" + +.IF "$(WITH_LANG)"!="" +.IF "$(ULFFILES)"!="" +$(foreach,i,$(ULFFILES) $(COMMONMISC)/$(TARGET)/$i) : $$(@:f) $(LOCALIZESDF) +.ENDIF + +# *.xrb merge +.IF "$(XMLPROPERTIES)"!="" +$(foreach,i,$(XMLPROPERTIES) $(COMMONMISC)/$(TARGET)/$i) : $$(@:f) $(LOCALIZESDF) +.ENDIF + +# *.xrm merge +.IF "$(READMEFILES)"!="" +$(foreach,i,$(READMEFILES) $(COMMONMISC)/$(TARGET)/$(i:b).xrm) : $$(@:f) $(LOCALIZESDF) +.ENDIF + +# *.xcu merge +.IF "$(LOCALIZEDFILES)"!="" +$(foreach,i,$(LOCALIZEDFILES) $(PROCESSOUT)/merge/{$(subst,.,/ $(PACKAGE))}/$(i:b).xcu) : $$(@:f) $(LOCALIZESDF) +.ENDIF +.ENDIF # "$(WITH_LANG)"!="" + +# dependencies from *.ulf to par-files +.IF "$(ULFPARFILES)"!="" +$(ULFPARFILES) : $(COMMONMISC)/$(TARGET)/$$(@:b).$(LANGFILEEXT) +.ENDIF # "$(ULFPARFILES)"!="" + diff --git a/solenv/inc/tg_moz.mk b/solenv/inc/tg_moz.mk new file mode 100644 index 000000000000..8c1c0dfa39d4 --- /dev/null +++ b/solenv/inc/tg_moz.mk @@ -0,0 +1,89 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + + +.IF "$(EXPORTS)"!="" +EXPORT_HEADER=export_mozilla_header +.ENDIF + +.IF "$(XPIDLSRCS)"!="" +XPIDL_TYPELIB_MODULE=$(MISC)/$(XPIDL_MODULE).xpt +XPIDLHDR:=$(XPIDLSRCS:s/.idl/.h/) +XPIDLXPT:=$(XPIDLSRCS:s/.idl/.xpt/) +EXTRA_MOZ_TARGET+= $(foreach,i,$(XPIDLHDR) $(INCCOM)/$i) +EXTRA_MOZ_TARGET+= $(foreach,i,$(XPIDLXPT) $(MISC)/$i) + +EXTRA_MOZ_TARGET+= $(XPIDL_TYPELIB_MODULE) +.ENDIF + +ALLMOZ:=$(EXTRA_MOZ_TARGET) $(DO_XPIDL) $(GEN_PRCPUCFG) $(EXPORT_HEADER) + +$(INCCOM)/%.h : %.idl + $(COMMAND_ECHO)$(COPY) $< $(INCCOM) + $(COMMAND_ECHO)$(XPIDL) -m header -w -I $(SOLARIDLDIR)/mozilla -I$(INCCOM) -I . -o $(INCCOM)/$* $< + +$(MISC)/%.xpt : %.idl + $(COMMAND_ECHO)$(XPIDL) -m typelib -w -I $(SOLARIDLDIR)/mozilla -I$(INCCOM) -I . -o $(MISC)/$* $< + +.INCLUDE : target.mk + +.IF "$(GUI)"=="WNT" +CPUCFG=_winnt.cfg +.ENDIF + +.IF "$(OS)"=="SOLARIS" +CPUCFG=_solaris32.cfg +.ENDIF + +.IF "$(OS)"=="LINUX" +CPUCFG=_linux.cfg +.ENDIF + +.IF "$(OS)"=="FREEBSD" +CPUCFG=_freebsd.cfg +.ENDIF + +.IF "$(OS)"=="NETBSD" +CPUCFG=_netbsd.cfg +.ENDIF + +.IF "$(GEN_PRCPUCFG)"!="" +$(GEN_PRCPUCFG): $(PRJ)/pr/include/md/$(CPUCFG) + @$(COPY) $(PRJ)/pr/include/md/$(CPUCFG) $@ +.ENDIF + +.IF "$(EXPORTS)"!="" +$(EXPORT_HEADER): + @$(COPY) $(EXPORTS) $(INCCOM) +.ENDIF + +.IF "$(XPIDLSRCS)"!="" +$(XPIDL_TYPELIB_MODULE): $(foreach,i,$(XPIDLXPT) $(MISC)/$i) + $(COMMAND_ECHO)$(XPIDL_LINK) $(MISC)/$(XPIDL_MODULE).xpt $^ + @-mkdir $(BIN)/components + @$(COPY) $@ $(BIN)/components +.ENDIF diff --git a/solenv/inc/tg_obj.mk b/solenv/inc/tg_obj.mk new file mode 100644 index 000000000000..73fae59d6762 --- /dev/null +++ b/solenv/inc/tg_obj.mk @@ -0,0 +1,75 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +MKFILENAME:=TG_OBJ.MK + +.IF "$(OBJTARGET)"!="" +$(OBJTARGET): $(OBJFILES) $(IDLOBJFILES) + @echo "Making: " $(@:f) + +.IF "$(GUI)"=="WNT" +.IF "$(COM)"=="GCC" + $(ECHONL) $(foreach,i,$(OBJFILES:f) $(ROBJ)/$(i)) > $@ +.ELSE # "$(COM)"=="GCC" +.IF "$(LIBTARGET)"!="NO" + @-$(TYPE) $(mktmp $(&:+"\n")) > $(@:s/.lib/.lin/) +.ENDIF # "$(LIBTARGET)"!="NO" + $(COMMAND_ECHO)$(LIBMGR) $(LIBFLAGS) /OUT:$@ @$(mktmp $(&:+"\n")) +.ENDIF # "$(COM)"=="GCC" +.ENDIF # "$(GUI)"=="WNT" +.IF "$(GUI)"=="UNX" + @echo $(foreach,i,$(OBJFILES:f) $(ROBJ)/$(i:s/.obj/.o/)) | xargs -n1 > $@ +.IF "$(OS)"=="MACOSX" + @-nm `cat $(OBJTARGET) | sed s\#'^'$(ROUT)\#$(PRJ)/$(ROUT)\#g` > $(@:d)$(@:b).dump +.ELSE + @nm `cat $(OBJTARGET) | sed s\#'^'$(ROUT)\#$(PRJ)/$(ROUT)\#g` > $(@:d)$(@:b).dump +.ENDIF +.ENDIF # "$(GUI)"=="UNX" +.ENDIF # "$(OBJTARGET)"!="" + + +.IF "$(SECOND_BUILD)"!="" +.IF "$($(SECOND_BUILD)OBJTARGET)"!="" +$($(SECOND_BUILD)OBJTARGET): $(REAL_$(SECOND_BUILD)_OBJFILES) + @echo "Making: " $(@:f) + +.IF "$(GUI)"=="WNT" +.IF "$(COM)"=="GCC" +# $(LIBMGR) $(LIBFLAGS) $@ $(OBJFILES) + $(ECHONL) $(foreach,i,$(REAL_$(SECOND_BUILD)_OBJFILES:f) $(ROBJ)/$(i)) > $@ +.ELSE +.IF "$(LIBTARGET)"!="NO" + @-$(TYPE) $(mktmp $(&:+"\n")) > $(@:s/.lib/.lin/) +.ENDIF # "$(LIBTARGET)"!="NO" + $(COMMAND_ECHO)$(LIBMGR) $(LIBFLAGS) /OUT:$@ @$(mktmp $(&:+"\n")) +.ENDIF +.ENDIF # "$(GUI)"=="WNT" +.IF "$(GUI)"=="UNX" + @echo $(foreach,i,$(REAL_$(SECOND_BUILD)_OBJFILES:f) $(ROBJ)/$(i:s/.obj/.o/)) | xargs -n1 >> $@ +.ENDIF # "$(GUI)"=="UNX" +.ENDIF # "$($(SECOND_BUILD)OBJTARGET)"!="" +.ENDIF # "$(SECOND_BUILD)"!="" diff --git a/solenv/inc/tg_propmerge.mk b/solenv/inc/tg_propmerge.mk new file mode 100755 index 000000000000..796bca982815 --- /dev/null +++ b/solenv/inc/tg_propmerge.mk @@ -0,0 +1,66 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +.IF "$(L10NPROPERTYFILES)"!="" +ALLTAR : $(MISC)/$(TARGET).pmerge.mk $(L10NPROPERTYFILES) + +$(MISC)/$(TARGET).pmerge.mk : $(L10NPROPERTYFILES) + +$(L10NPROPERTYFILES) : $(LOCALIZESDF) + +.INCLUDE .IGNORE : $(MISC)/$(TARGET).pmerge.mk + +.IF "$(alllangiso)"!="$(last_merge)" +MERGEPHONY:=.PHONY +.ENDIF # "$(alllangiso)" != "$(last_merge)" + +$(CLASSDIR)/$(PACKAGE)/%.properties $(MERGEPHONY) : %.properties + @@-$(MKDIRHIER) $(@:d) +.IF "$(WITH_LANG)"=="" + $(COMMAND_ECHO)$(COPY) $< $@ +.ELSE # "$(WITH_LANG)"=="" + @@-$(RM) $@ + $(COMMAND_ECHO)@noop $(assign PMERGELIST+:=$(<:f)) + $(COMMAND_ECHO)@noop $(assign PDESTDIR:=$(@:d)) +.ENDIF # "$(WITH_LANG)"=="" + +$(MISC)/$(TARGET).pmerge.mk : $(PMERGELIST) +.IF "$(WITH_LANG)"!="" +# jpropex command file requirements: +# - one file per line +# - no spaces +# - no empty lines +# $(uniq ...) to workaround $assign adding the value twice... + @noop $(assign PMERGEFILELIST:=$(uniq $(PMERGELIST))) + $(COMMAND_ECHO)$(SOLARBINDIR)/jpropex -p $(PRJNAME) -r $(PRJ) -o $(PDESTDIR) -i @$(mktmp $(PMERGEFILELIST:t"\n":s/ //)) -l all -lf $(alllangiso:s/ /,/) -m $(LOCALIZESDF) +.ENDIF # "$(WITH_LANG)"!="" + @-$(RM) $@ + $(COMMAND_ECHO)echo last_merge=$(alllangiso) > $@ + +.ENDIF # "$(L10NPROPERTYFILES)"!="" + + diff --git a/solenv/inc/tg_res.mk b/solenv/inc/tg_res.mk new file mode 100644 index 000000000000..2a99f61216a1 --- /dev/null +++ b/solenv/inc/tg_res.mk @@ -0,0 +1,42 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + + +.IF "$(RCTARGET)"!="" +$(RCTARGET): $(RCFILES) \ + $(RCDEPN) + @echo "Making: " $(@:f) +.IF "$(COM)"=="MSC" +.IF "$(MFC_INCLUDE)"!="" + $(COMMAND_ECHO)$(RC) $(INCLUDE) -I$(SOLARRESDIR) $(foreach,i,$(ATL_INCLUDE) -I$(i)) -I$(MFC_INCLUDE) $(RCLANGFLAGS_$(@:d:d:b)) $(RCFLAGSOUTRES)$@ $(RCFLAGS) +.ELSE + $(COMMAND_ECHO)$(RC) $(INCLUDE) -I$(SOLARRESDIR) $(foreach,i,$(ATL_INCLUDE) -I$(i)) $(RCLANGFLAGS_$(@:d:d:b)) $(RCFLAGSOUTRES)$@ $(RCFLAGS) +.ENDIF +.ELSE + $(COMMAND_ECHO)$(RC) $(INCLUDE) -I$(SOLARRESDIR) $(RCLANGFLAGS_$(@:d:d:b)) $(RCFLAGS) $@ +.ENDIF +.ENDIF diff --git a/solenv/inc/tg_rslb.mk b/solenv/inc/tg_rslb.mk new file mode 100644 index 000000000000..0b1659a28796 --- /dev/null +++ b/solenv/inc/tg_rslb.mk @@ -0,0 +1,92 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +####################################################### +# unroll begin + +.IF "$(RESLIB$(TNR)TARGETN)"!="" + +$(RSC_MULTI$(TNR)) : \ + $(RESLIB$(TNR)SRSFILES) \ + $(RESLIB$(TNR)TARGETN) \ + $(RESLIB$(TNR)BMPS) + @echo Compiling: $(@:f) +.IF "$(common_build_reslib)"!="" + $(COMMAND_ECHO)$(RSC) -presponse $(VERBOSITY) @$(mktmp \ + -r -p \ + $(foreach,i,$(alllangiso) -lg$i \ + $(null,$(rescharset_{$i}) $(default$(LANG_GUI)) $(rescharset_{$i})) \ + -fs={$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(BIN))/$(RESLIB$(TNR)NAME)$i.res} \ + $(foreach,j,$(subst,$(PRJ),$(SOLARDEFIMG)/$(PRJNAME) $(RESLIB$(TNR)IMAGES)) -lip={$j}/$i \ + -lip={$j} ) \ + -lip=$(SOLARDEFIMG)/res/$i -lip=$(SOLARDEFIMG)/res ) \ + -subMODULE=$(SOLARDEFIMG) \ + -subGLOBALRES=$(SOLARDEFIMG)/res \ + -oil={$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(BIN))} \ + -ft=$@ \ + $(RSC$(TNR)HEADER) $(RESLIB$(TNR)SRSFILES) \ + ) > $(NULLDEV) +.ELSE # "$(common_build_reslib)"!="" + $(COMMAND_ECHO)$(RSC) -presponse $(VERBOSITY) @$(mktmp \ + -r -p \ + $(foreach,i,$(alllangiso) -lg$i \ + $(null,$(rescharset_{$i}) $(default$(LANG_GUI)) $(rescharset_{$i})) \ + -fs={$(BIN)/$(RESLIB$(TNR)NAME)$i.res} \ + $(foreach,j,$(subst,$(PRJ),$(SOLARDEFIMG)/$(PRJNAME) $(RESLIB$(TNR)IMAGES)) -lip={$j}/$i \ + -lip={$j} ) \ + -lip=$(SOLARDEFIMG)/res/$i -lip=$(SOLARDEFIMG)/res ) \ + -subMODULE=$(SOLARDEFIMG) \ + -subGLOBALRES=$(SOLARDEFIMG)/res \ + -oil=$(BIN) \ + -ft=$@ \ + $(RSC$(TNR)HEADER) $(RESLIB$(TNR)SRSFILES) \ + ) > $(NULLDEV) +.ENDIF # "$(common_build_reslib)"!="" + +$(RESLIB$(TNR)TARGETN): \ + $(RESLIB$(TNR)SRSFILES) \ + $(RESLIB$(TNR)BMPS) + @echo "Making: " $(@:f) +.IF "$(GUI)"=="UNX" +.IF "$(common_build_reslib)"!="" + @@-$(RM) $(RSC_MULTI$(TNR)) +.ELSE # "$(common_build_reslib)"!="" + @@-$(RM) $(RSC_MULTI$(TNR)) +.ENDIF # "$(common_build_reslib)"!="" +.ELSE # "$(GUI)"=="UNX" +.IF "$(common_build_reslib)"!="" + @@-$(RM) $(RSC_MULTI$(TNR)) +.ELSE # "$(common_build_reslib)"!="" + @@-$(RM) $(RSC_MULTI$(TNR)) +.ENDIF # "$(common_build_reslib)"!="" +.ENDIF # "$(GUI)"=="UNX" +.ENDIF # "$(RESLIB$(TNR)TARGETN)"!="" + + +# unroll end +####################################################### + diff --git a/solenv/inc/tg_scp.mk b/solenv/inc/tg_scp.mk new file mode 100644 index 000000000000..0033dd9a76be --- /dev/null +++ b/solenv/inc/tg_scp.mk @@ -0,0 +1,50 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +####################################################### +# Anweisungen fuer das Linken +# unroll begin + +.IF "$(SCP$(TNR)TARGETN)"!="" + +# try to get missing parfiles +$(PAR)/%.par : $(SOLARPARDIR)/%.par + @@-$(MKDIRHIER) $(@:d:d) + $(COMMAND_ECHO)$(COPY) $< $@ + +LOCALSCP$(TNR)FILES+=$(foreach,i,$(SCP$(TNR)FILES) $(foreach,j,$(SCP$(TNR)LINK_PRODUCT_TYPE) $(PAR)/$j/$i )) + +$(SCP$(TNR)TARGETN): $(LOCALSCP$(TNR)FILES) + @echo "Making: " $(@:f) + @@-$(MKDIRHIER) $(BIN)/$(SCP$(TNR)LINK_PRODUCT_TYPE) + $(COMMAND_ECHO)$(SCPLINK) $(SCPLINKFLAGS) @@$(mktmp $(foreach,i,$(SCP$(TNR)FILES) $(subst,$(@:d:d:d), $(@:d:d))/$(i:+","))) -o $@ +.ENDIF + +# Anweisungen fuer das Linken +# unroll end +####################################################### + diff --git a/solenv/inc/tg_sdi.mk b/solenv/inc/tg_sdi.mk new file mode 100644 index 000000000000..66b8c89850b8 --- /dev/null +++ b/solenv/inc/tg_sdi.mk @@ -0,0 +1,50 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +####################################################### +# instructions for ??? +# unroll begin + +.IF "$(SDI$(TNR)TARGET)"!="" +$(SDI$(TNR)TARGET): $(SVSDI$(TNR)DEPEND) $(SDI$(TNR)NAME).sdi + @echo "Making: " $(@:f) + @-$(RM) $@ + $(COMMAND_ECHO)$(SVIDL) @$(mktmp \ + $(VERBOSITY) \ + -fs$(INCCOMX)/$(SDI$(TNR)NAME).hxx \ + -fd$(INCCOMX)/$(SDI$(TNR)NAME).ilb \ + -fm$(MISC)/$(SDI$(TNR)NAME).don \ + -fl$(MISC)/$(SDI$(TNR)NAME).lst \ + -fx$(SDI$(TNR)EXPORT).sdi \ + -fz$(MISC)/$(SDI$(TNR)NAME).sid \ + $(SDI$(TNR)NAME).sdi -I$(MISC) -I$(SVSDIINC) -I$(INC) $(INCLUDE)) +.ENDIF # "$(SDI$(TNR)TARGET)"!="" + +# Instruction for ??? +# unroll end +####################################################### + diff --git a/solenv/inc/tg_shl.mk b/solenv/inc/tg_shl.mk new file mode 100644 index 000000000000..d6bcbc82511b --- /dev/null +++ b/solenv/inc/tg_shl.mk @@ -0,0 +1,586 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +####################################################### +# targets for linking +# unroll begin + +.IF "$(SHL$(TNR)TARGETN)"!="" + +.IF "$(SHLLINKARCONLY)" != "" +SHL$(TNR)STDLIBS= +STDSHL= +.ELSE +SHL$(TNR)ARCHIVES= +.ENDIF + +# decide how to link +.IF "$(SHL$(TNR)CODETYPE)"=="C" +SHL$(TNR)LINKER=$(LINKC) +SHL$(TNR)STDSHL=$(subst,CPPRUNTIME, $(STDSHL)) +SHL$(TNR)LINKFLAGS+=$(LINKCFLAGS) +.ELSE # "$(SHL$(TNR)CODETYPE)"=="C" +SHL$(TNR)LINKER=$(LINK) +SHL$(TNR)STDSHL=$(subst,CPPRUNTIME,$(STDLIBCPP) $(STDSHL)) +SHL$(TNR)LINKFLAGS+=$(LINKFLAGS) +.ENDIF # "$(SHL$(TNR)CODETYPE)"=="C" + +SHL$(TNR)RPATH*=OOO +LINKFLAGSRUNPATH_$(SHL$(TNR)RPATH)*=/ERROR:/Bad_SHL$(TNR)RPATH_value +SHL$(TNR)LINKFLAGS+=$(LINKFLAGSRUNPATH_$(SHL$(TNR)RPATH)) + +.IF "$(SHL$(TNR)USE_EXPORTS)"=="" +SHL$(TNR)DEF*=$(MISC)/$(SHL$(TNR)TARGET).def +.ENDIF # "$(SHL$(TNR)USE_EXPORTS)"=="" + +EXTRALIBPATHS$(TNR)=$(EXTRALIBPATHS) +.IF "$(UPDATER)"=="YES" +.IF "$(SHL$(TNR)NOCHECK)"=="" +.IF "$(SOLAR_STLLIBPATH)"!="" +EXTRALIBPATHS$(TNR)+=-L$(SOLAR_STLLIBPATH) +.ENDIF +.ENDIF # "$(SHL$(TNR)NOCHECK)"!="" +.ENDIF +#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +#+++++++++++ version object ++++++++++++++++++++++++++++++++++++++++ +#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + +.IF "$(L10N_framework)"=="" +.IF "$(VERSIONOBJ)"!="" +SHL$(TNR)VERSIONOBJ:=$(VERSIONOBJ:d){$(subst,$(DLLPOSTFIX),_dflt $(SHL$(TNR)TARGET))}$(VERSIONOBJ:f) +USE_VERSIONH:=$(INCCOM)/$(SHL$(TNR)VERSIONOBJ:b).h +.IF "$(GUI)" == "UNX" +SHL$(TNR)VERSIONOBJDEP:=$(VERSIONOBJ:d){$(subst,$(DLLPOSTFIX),_dflt $(SHL$(TNR)TARGET))}$(VERSIONOBJ:f:s/.o/.obj/) +.ELSE # "$(GUI)" == "UNX" +SHL$(TNR)VERSIONOBJDEP:=$(VERSIONOBJ:d){$(subst,$(DLLPOSTFIX),_dflt $(SHL$(TNR)TARGET))}$(VERSIONOBJ:f) +.ENDIF # "$(GUI)" == "UNX" +$(MISC)/$(SHL$(TNR)VERSIONOBJ:b).c : $(SOLARENV)/src/version.c $(INCCOM)/$(SHL$(TNR)VERSIONOBJ:b).h +# $(COPY) $(SOLARENV)/src/version.c $@ + $(COMMAND_ECHO)$(TYPE) $(SOLARENV)/src/version.c | $(SED) s/_version.h/$(SHL$(TNR)VERSIONOBJ:b).h/ > $@ + +.INIT : $(SHL$(TNR)VERSIONOBJDEP) +.ENDIF # "$(VERSIONOBJ)"!="" +.ENDIF + +.IF "$(GUI)" != "UNX" +.IF "$(GUI)" == "WNT" +.IF "$(SHL$(TNR)IMPLIB)" == "" +SHL$(TNR)IMPLIB=i$(TARGET)_t$(TNR) +.ENDIF # "$(SHL$(TNR)IMPLIB)" == "" +.IF "$(COM)" != "GCC" +USE_$(TNR)IMPLIB=-implib:$(LB)/$(SHL$(TNR)IMPLIB).lib +SHL$(TNR)IMPLIBN=$(LB)/$(SHL$(TNR)IMPLIB).lib +.ELSE +USE_$(TNR)IMPLIB=-Wl,--out-implib=$(SHL$(TNR)IMPLIBN) +SHL$(TNR)IMPLIBN=$(LB)/lib$(SHL$(TNR)IMPLIB).dll.a +.ENDIF # "$(COM)" != "GCC" +ALLTAR : $(SHL$(TNR)IMPLIBN) + +.IF "$(USE_DEFFILE)"=="" +.IF "$(COM)" != "GCC" +USE_$(TNR)IMPLIB_DEPS=$(LB)/$(SHL$(TNR)IMPLIB).lib +.ENDIF +.ENDIF # "$(USE_DEFFILE)"=="" +.ENDIF # "$(GUI)" == "WNT" +USE_SHL$(TNR)DEF=$(SHL$(TNR)DEF) +.ELSE # "$(GUI)" != "UNX" +USE_SHL$(TNR)DEF= +SHL$(TNR)DEPN+:=$(SHL$(TNR)DEPNU) + +.IF "$(SHL$(TNR)VERSIONMAP)"=="" +# to activate vmaps remove "#" +USE_SHL$(TNR)VERSIONMAP=$(MISC)/$(SHL$(TNR)TARGET).vmap +.ENDIF # "$(SHL$(TNR)VERSIONMAP)"=="" + +.IF "$(USE_SHL$(TNR)VERSIONMAP)"!="" + +.IF "$(SHL$(TNR)FILTERFILE)"!="" +.IF "$(SHL$(TNR)VERSIONMAP)"!="" +#eine von beiden ist zuviel +USE_SHL$(TNR)VERSIONMAP=$(MISC)/$(SHL$(TNR)TARGET).vmap +$(USE_SHL$(TNR)VERSIONMAP) .PHONY: + @echo ----------------------------- + @echo you should only use versionmap OR exportfile + @echo ----------------------------- +# force_dmake_to_error + +.ENDIF # "$(SHL$(TNR)VERSIONMAP)"!="" + +.IF "$(OS)" != "AIX" +SHL$(TNR)VERSIONMAPPARA=$(LINKVERSIONMAPFLAG) $(USE_SHL$(TNR)VERSIONMAP) +.ENDIF + +$(USE_SHL$(TNR)VERSIONMAP): \ + $(SHL$(TNR)OBJS)\ + $(SHL$(TNR)LIBS)\ + $(SHL$(TNR)FILTERFILE) + @$(RM) $@.dump +.IF "$(SHL$(TNR)OBJS)"!="" +# dump remaining objects on the fly +.IF "$(OS)"=="MACOSX" + @-nm $(SHL$(TNR)OBJS:s/.obj/.o/) > $@.dump +.ELSE + @nm $(SHL$(TNR)OBJS:s/.obj/.o/) > $@.dump +.ENDIF +.ENDIF # "$(SHL$(TNR)OBJS)!"="" + @$(TYPE) /dev/null $(SHL$(TNR)LIBS:s/.lib/.dump/) >> $@.dump + $(COMMAND_ECHO) $(PERL) $(SOLARENV)/bin/mapgen.pl -d $@.dump -s $(SHL$(TNR)INTERFACE) -f $(SHL$(TNR)FILTERFILE) -m $@ + +.ELSE # "$(SHL$(TNR)FILTERFILE)"!="" +USE_SHL$(TNR)VERSIONMAP=$(MISC)/$(SHL$(TNR)TARGET).vmap +$(USE_SHL$(TNR)VERSIONMAP) : +.IF "$(VERBOSE)" == "TRUE" + @echo ----------------------------- + @echo SHL$(TNR)FILTERFILE not set! + @echo ----------------------------- + @$(TOUCH) $@ + @echo dummy file to keep the dependencies for later use. +.ELSE + @$(TOUCH) $@ +.ENDIF +# force_dmake_to_error +.ENDIF # "$(SHL$(TNR)FILTERFILE)"!="" +.ELSE # "$(USE_SHL$(TNR)VERSIONMAP)"!="" + +#and now for the plain non-generic way... +.IF "$(SHL$(TNR)VERSIONMAP)"!="" +USE_SHL$(TNR)VERSIONMAP=$(MISC)/$(SHL$(TNR)VERSIONMAP:b)_$(SHL$(TNR)TARGET)$(SHL$(TNR)VERSIONMAP:e) +.IF "$(OS)" != "AIX" +SHL$(TNR)VERSIONMAPPARA=$(LINKVERSIONMAPFLAG) $(USE_SHL$(TNR)VERSIONMAP) +.ENDIF + +.IF "$(OS)"=="MACOSX" +$(USE_SHL$(TNR)VERSIONMAP): $(SHL$(TNR)OBJS) $(SHL$(TNR)LIBS) +.ENDIF + +# .ERRREMOVE is needed as a recipe line like "$(AWK) ... > $@" would create $@ +# even if the $(AWK) part fails: +$(USE_SHL$(TNR)VERSIONMAP) .ERRREMOVE: $(SHL$(TNR)VERSIONMAP) + @@-$(RM) -f $@ +# The following files will only be generated and needed on Mac OS X as temporary files +# in order to generate exported symbols list out of Linux/Solaris map files +.IF "$(OS)"=="MACOSX" + @-$(RM) -f $@.symregexp >& $(NULLDEV) + @-$(RM) -f $@.expsymlist >& $(NULLDEV) +.ENDIF +# Its questionable if the following condition '.IF "$(COMID)"=="gcc3"' makes sense and what +# happens if somebody will change it in the future +.IF "$(COMID)"=="gcc3" + $(COMMAND_ECHO) tr -d "\015" < $(SHL$(TNR)VERSIONMAP) | $(AWK) -f $(SOLARENV)/bin/addsym.awk > $@ +.ELIF "$(COMNAME)"=="sunpro5" + $(COMMAND_ECHO) tr -d "\015" < $(SHL$(TNR)VERSIONMAP) | $(GREP) -v $(IGNORE_SYMBOLS) > $@ +.ELSE # "$(COMID)"=="gcc3" + $(COMMAND_ECHO) tr -d "\015" < $(SHL$(TNR)VERSIONMAP) > $@ +.ENDIF # "$(COMID)"=="gcc3" + @chmod a+w $@ +# Mac OS X post-processing generate an exported symbols list from the generated map file +# for details on exported symbols list see man ld on Mac OS X +.IF "$(OS)"=="MACOSX" + @-cat $@ | $(AWK) -f $(SOLARENV)/bin/unxmap-to-macosx-explist.awk | grep -v "\*\|?" > $@.exported-symbols + @-cat $@ | $(AWK) -f $(SOLARENV)/bin/unxmap-to-macosx-explist.awk | grep "\*\|?" > $@.symbols-regexp +# Shared libraries will be build out of the *.obj files specified in SHL?OBJS and SHL?LIBS +# Extract RTTI symbols from all the objects that will be used to build a shared library +.IF "$(SHL$(TNR)OBJS)"!="" + -echo $(foreach,i,$(SHL$(TNR)OBJS:s/.obj/.o/) $i) | xargs -n1 nm -gx | $(SOLARENV)/bin/addsym-macosx.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols +.ENDIF +.IF "$(SHL$(TNR)LIBS)"!="" + $(COMMAND_ECHO)-$(TYPE) $(foreach,j,$(SHL$(TNR)LIBS) $j) | $(SED) s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g | xargs -n1 nm -gx | $(SOLARENV)/bin/addsym-macosx.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols +.ENDIF +# overwrite the map file generate into the local output tree with the generated +# exported symbols list + cp $@.exported-symbols $@ +.ENDIF # .IF "$(OS)"=="MACOSX" +.ENDIF # "$(SHL$(TNR)VERSIONMAP)"!="" +.ENDIF # "$(USE_SHL$(TNR)VERSIONMAP)"!="" +.ENDIF # "$(GUI)" != "UNX" + +.IF "$(UNIXVERSIONNAMES)"!="" +.IF "$(OS)"!="MACOSX" && "$(OS)"!="IOS" && "$(OS)"!="AIX" +.IF "$(GUI)"=="UNX" +SHL$(TNR)SONAME=\"$(SONAME_SWITCH)$(SHL$(TNR)TARGETN:f)\" +.ENDIF # "$(GUI)"!="UNX" +.ENDIF # "$(OS)"!="MACOSX" +.ENDIF # "$(UNIXVERSIONNAMES)"!="" + +.IF "$(SHL$(TNR)RES)"!="" +SHL$(TNR)ALLRES+=$(SHL$(TNR)RES) +SHL$(TNR)LINKRES*=$(MISC)/$(SHL$(TNR)TARGET).res +SHL$(TNR)LINKRESO*=$(MISC)/$(SHL$(TNR)TARGET)_res.o +.ENDIF # "$(SHL$(TNR)RES)"!="" + +.IF "$(SHL$(TNR)DEFAULTRES)$(use_shl_versions)"!="" +SHL$(TNR)DEFAULTRES*=$(MISC)/$(SHL$(TNR)TARGET)_def.res +SHL$(TNR)ALLRES+=$(SHL$(TNR)DEFAULTRES) +SHL$(TNR)LINKRES*=$(MISC)/$(SHL$(TNR)TARGET).res +SHL$(TNR)LINKRESO*=$(MISC)/$(SHL$(TNR)TARGET)_res.o +.ENDIF # "$(SHL$(TNR)DEFAULTRES)$(use_shl_versions)"!="" + +#.IF "$(SHL$(TNR)TARGETN)"!="" + +.IF "$(linkinc)"!="" +.IF "$(GUI)"=="WNT" +.IF "$(SHL$(TNR)LIBS)"!="" +$(MISC)/$(SHL$(TNR)TARGET)_linkinc.ls .PHONY: + @@-$(RM) $@ + $(COMMAND_ECHO)$(SED) -f $(SOLARENV)/bin/chrel.sed $(foreach,i,$(SHL$(TNR)LIBS) $(i:s/.lib/.lin/)) >> $@ +.ENDIF # "$(SHL$(TNR)LIBS)"!="" +.ENDIF + +LINKINCTARGETS+=$(MISC)/$(SHL$(TNR)TARGETN:b)_linkinc.ls +$(SHL$(TNR)TARGETN) : $(LINKINCTARGETS) + +.ELSE +.IF "$(SHL$(TNR)USE_EXPORTS)"=="name" +.IF "$(GUI)"=="WNT" +.IF "$(COM)"!="GCC" +.IF "$(SHL$(TNR)LIBS)"!="" +SHL$(TNR)LINKLIST=$(MISC)/$(SHL$(TNR)TARGET)_link.lst +SHL$(TNR)LINKLISTPARAM=@$(SHL$(TNR)LINKLIST) +$(SHL$(TNR)LINKLIST) : $(SHL$(TNR)LIBS) + @@-$(RM) $@ + $(COMMAND_ECHO)$(SED) -f $(SOLARENV)/bin/chrel.sed $(foreach,i,$(SHL$(TNR)LIBS) $(i:s/.lib/.lin/)) >> $@ +.ENDIF # "$(SHL$(TNR)LIBS)"!="" +.ENDIF # "$(COM)"!="GCC" +.ENDIF +.ENDIF # "$(SHL$(TNR)USE_EXPORTS)"=="name" + +$(MISC)/%linkinc.ls: + @echo . > $@ +.ENDIF # "$(linkinc)"!="" + +.IF "$(COM)" == "GCC" && "$(SHL$(TNR)IMPLIBN)" != "" +$(SHL$(TNR)IMPLIBN) : $(SHL$(TNR)TARGETN) +.ENDIF + +$(SHL$(TNR)TARGETN) : \ + $(SHL$(TNR)OBJS)\ + $(SHL$(TNR)LIBS)\ + $(USE_$(TNR)IMPLIB_DEPS)\ + $(USE_SHL$(TNR)DEF)\ + $(USE_SHL$(TNR)VERSIONMAP)\ + $(SHL$(TNR)RES)\ + $(SHL$(TNR)DEPN) \ + $(SHL$(TNR)LINKLIST) + @echo "Making: " $(@:f) +.IF "$(GUI)" == "WNT" +.IF "$(SHL$(TNR)DEFAULTRES)"!="" + @@-$(RM) $(MISC)/$(SHL$(TNR)DEFAULTRES:b).rc +.IF "$(SHL$(TNR)ICON)" != "" + @echo 1 ICON $(SHL$(TNR)ICON) >> $(MISC)/$(SHL$(TNR)DEFAULTRES:b).rc +.ENDIF +.IF "$(use_shl_versions)" != "" +.IF "$(SHL$(TNR)ADD_VERINFO)"!="" + @echo $(EMQ)#include $(EMQ)"$(SHL$(TNR)ADD_VERINFO)$(EMQ)" >> $(MISC)/$(SHL$(TNR)DEFAULTRES:b).rc +.ELSE # "$(SHL$(TNR)ADD_VERINFO)"!="" + @echo $(EMQ)#define ADDITIONAL_VERINFO1 >> $(MISC)/$(SHL$(TNR)DEFAULTRES:b).rc + @echo $(EMQ)#define ADDITIONAL_VERINFO2 >> $(MISC)/$(SHL$(TNR)DEFAULTRES:b).rc + @echo $(EMQ)#define ADDITIONAL_VERINFO3 >> $(MISC)/$(SHL$(TNR)DEFAULTRES:b).rc +.ENDIF # "$(SHL$(TNR)ADD_VERINFO)"!="" + @echo $(EMQ)#define VERVARIANT $(BUILD) >> $(MISC)/$(SHL$(TNR)DEFAULTRES:b).rc + @echo $(EMQ)#define ORG_NAME $(SHL$(TNR)TARGET)$(DLLPOST) >> $(MISC)/$(SHL$(TNR)DEFAULTRES:b).rc + @echo $(EMQ)#define INTERNAL_NAME $(SHL$(TNR)TARGET:b) >> $(MISC)/$(SHL$(TNR)DEFAULTRES:b).rc + @echo $(EMQ)#include $(EMQ)"shlinfo.rc$(EMQ)" >> $(MISC)/$(SHL$(TNR)DEFAULTRES:b).rc +.ENDIF # "$(use_shl_versions)" != "" +.IF "$(RCFLAGSOUTRES)"!="" +# rc, takes separate flag naming output file, source .rc file last + $(COMMAND_ECHO)$(RC) -DWIN32 $(INCLUDE) $(RCLINKFLAGS) $(RCFLAGSOUTRES)$(SHL$(TNR)DEFAULTRES) $(MISC)/$(SHL$(TNR)DEFAULTRES:b).rc +.ELSE +# windres, just takes output file last + $(COMMAND_ECHO)$(RC) -DWIN32 $(INCLUDE) $(RCLINKFLAGS) $(MISC)/$(SHL$(TNR)DEFAULTRES:b).rc $(SHL$(TNR)DEFAULTRES) +.ENDIF +.ENDIF # "$(SHL$(TNR)DEFAULTRES)"!="" +.IF "$(SHL$(TNR)ALLRES)"!="" + $(COMMAND_ECHO)$(TYPE) $(SHL$(TNR)ALLRES) > $(SHL$(TNR)LINKRES) +.IF "$(COM)"=="GCC" + $(WINDRES) $(SHL$(TNR)LINKRES) $(SHL$(TNR)LINKRESO) +.ENDIF # "$(COM)"=="GCC" +.ENDIF # "$(SHL$(TNR)ALLRES)"!="" +.IF "$(COM)"=="GCC" +# GNU ld since 2.17 supports @cmdfile syntax +.IF "$(USE_DEFFILE)"!="" + $(COMMAND_ECHO)$(LINK) @$(mktmp $(strip \ + $(SHL$(TNR)LINKFLAGS) \ + $(LINKFLAGSSHL) \ + $(SOLARLIB) \ + $(MINGWSSTDOBJ) \ + -o $@ \ + -Wl,-Map,$(MISC)/$(@:b).map \ + $(SHL$(TNR)DEF) \ + $(USE_$(TNR)IMPLIB) \ + $(STDOBJ) \ + $(SHL$(TNR)VERSIONOBJ) $(SHL$(TNR)OBJS) \ + $(subst,$(ROUT),$(PRJ)/$(ROUT) $(shell cat /dev/null $(SHL$(TNR)LIBS))) \ + -Wl,--exclude-libs,ALL,--start-group $(SHL$(TNR)STDLIBS) -Wl,--end-group \ + $(SHL$(TNR)STDSHL) $(STDSHL$(TNR)) \ + $(SHL$(TNR)LINKRESO) \ + )) +.ELSE + @noop $(assign ALL$(TNR)OBJLIST:=$(STDOBJ) $(SHL$(TNR)OBJS) $(SHL$(TNR)LINKRESO) $(shell $(TYPE) /dev/null $(SHL$(TNR)LIBS) | $(SED) s?$(ROUT)?$(PRJ)/$(ROUT)?g)) +.IF "$(DEFLIB$(TNR)NAME)"!="" # do not have to include objs + @noop $(assign DEF$(TNR)OBJLIST:=$(shell $(TYPE) $(foreach,i,$(DEFLIB$(TNR)NAME) $(SLB)/$(i).lib) | sed s?$(ROUT)?$(PRJ)/$(ROUT)?g)) + @noop $(foreach,i,$(DEF$(TNR)OBJLIST) $(assign ALL$(TNR)OBJLIST:=$(ALL$(TNR)OBJLIST:s?$i??))) +.ENDIF # "$(DEFLIB$(TNR)NAME)"!="" + $(COMMAND_ECHO)$(LINK) @$(mktmp $(strip \ + $(SHL$(TNR)LINKFLAGS) \ + $(LINKFLAGSSHL) \ + $(SOLARLIB) \ + $(MINGWSSTDOBJ) \ + -o $@ \ + -Wl,-Map,$(MISC)/$(@:b).map \ + $(SHL$(TNR)DEF) \ + $(USE_$(TNR)IMPLIB) \ + $(STDOBJ) \ + $(SHL$(TNR)VERSIONOBJ) $(SHL$(TNR)OBJS) \ + $(subst,$(ROUT),$(PRJ)/$(ROUT) $(shell cat /dev/null $(SHL$(TNR)LIBS))) \ + -Wl,--exclude-libs,ALL,--start-group $(SHL$(TNR)STDLIBS) -Wl,--end-group \ + $(SHL$(TNR)STDSHL) $(STDSHL$(TNR)) \ + $(SHL$(TNR)LINKRESO) \ + )) +.ENDIF +.ELSE +.IF "$(linkinc)"=="" +.IF "$(SHL$(TNR)USE_EXPORTS)"!="name" +.IF "$(USE_DEFFILE)"!="" + $(COMMAND_ECHO)$(SHL$(TNR)LINKER) @$(mktmp \ + $(SHL$(TNR)LINKFLAGS) \ + $(LINKFLAGSSHL) \ + $(SHL$(TNR)STACK) $(SHL$(TNR)BASEX) \ + -out:$@ \ + -map:$(MISC)/$(@:b).map \ + -def:$(SHL$(TNR)DEF) \ + $(USE_$(TNR)IMPLIB) \ + $(STDOBJ) \ + $(SHL$(TNR)VERSIONOBJ) $(SHL$(TNR)OBJS) \ + $(SHL$(TNR)LIBS) \ + $(SHL$(TNR)STDLIBS) \ + $(SHL$(TNR)STDSHL) $(STDSHL$(TNR)) \ + $(SHL$(TNR)LINKRES) \ + ) +# double check if target was really written... still making sense? + @@$(LS) $@ + @echo linking $@.manifest ... +.IF "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI) +.ELSE + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI) +.ENDIF # "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI) +.ELSE # "$(USE_DEFFILE)"!="" + $(COMMAND_ECHO)$(SHL$(TNR)LINKER) @$(mktmp $(SHL$(TNR)LINKFLAGS) \ + $(LINKFLAGSSHL) $(SHL$(TNR)BASEX) \ + $(SHL$(TNR)STACK) -out:$(SHL$(TNR)TARGETN) \ + -map:$(MISC)/$(@:B).map \ + $(LB)/$(SHL$(TNR)IMPLIB).exp \ + $(STDOBJ) \ + $(SHL$(TNR)OBJS) $(SHL$(TNR)VERSIONOBJ) \ + $(SHL$(TNR)LIBS) \ + $(SHL$(TNR)STDLIBS) \ + $(SHL$(TNR)STDSHL) $(STDSHL$(TNR)) \ + $(SHL$(TNR)LINKRES) \ + ) +# double check if target was really written... still making sense? + @@$(LS) $@ + @echo linking $@.manifest ... +.IF "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI) +.ELSE + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI) +.ENDIF # "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI) +.ENDIF # "$(USE_DEFFILE)"!="" +.ELSE # "$(SHL$(TNR)USE_EXPORTS)"!="name" + $(COMMAND_ECHO)$(SHL$(TNR)LINKER) @$(mktmp $(SHL$(TNR)LINKFLAGS) \ + $(LINKFLAGSSHL) $(SHL$(TNR)BASEX) \ + $(SHL$(TNR)STACK) -out:$(SHL$(TNR)TARGETN) \ + -map:$(MISC)/$(@:B).map \ + $(USE_$(TNR)IMPLIB) \ + $(STDOBJ) \ + $(SHL$(TNR)OBJS) $(SHL$(TNR)VERSIONOBJ)) \ + $(SHL$(TNR)LINKLISTPARAM) \ + @$(mktmp $(SHL$(TNR)STDLIBS) \ + $(SHL$(TNR)STDSHL) $(STDSHL$(TNR)) \ + $(SHL$(TNR)LINKRES) \ + ) + @echo linking $@.manifest ... +.IF "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI) +.ELSE + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI) +.ENDIF # "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI) +.ENDIF # "$(SHL$(TNR)USE_EXPORTS)"!="name" +.ELSE # "$(linkinc)"=="" + $(COMMAND_ECHO)-$(RM) del $(MISC)/$(SHL$(TNR)TARGET).lnk + $(COMMAND_ECHO)-$(RM) $(MISC)/$(SHL$(TNR)TARGET).lst + $(COMMAND_ECHO)$(TYPE) $(mktmp \ + $(SHL$(TNR)LINKFLAGS) \ + $(LINKFLAGSSHL) $(SHL$(TNR)BASEX) \ + $(SHL$(TNR)STACK) $(MAPFILE) \ + -out:$@ \ + $(LB)/$(SHL$(TNR)IMPLIB).exp \ + $(STDOBJ) \ + $(SHL$(TNR)OBJS) \ + $(SHL$(TNR)STDLIBS) \ + $(SHL$(TNR)STDSHL) $(STDSHL$(TNR)) \ + $(SHL$(TNR)LINKRES) \ + ) >> $(MISC)/$(SHL$(TNR)TARGET).lnk + $(COMMAND_ECHO)$(TYPE) $(MISC)/$(SHL$(TNR)TARGETN:b)_linkinc.ls >> $(MISC)/$(SHL$(TNR)TARGET).lnk + $(COMMAND_ECHO)$(SHL$(TNR)LINKER) @$(MISC)/$(SHL$(TNR)TARGET).lnk + @echo linking $@.manifest ... +.IF "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI) +.ELSE + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI) +.ENDIF # "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI) +.ENDIF # "$(linkinc)"=="" +.ENDIF # "$(COM)"=="GCC" +.ENDIF # "$(GUI)" == "WNT" +.IF "$(GUI)"=="UNX" +.IF "$(OS)"=="MACOSX" + @-$(RM) $(MISC)/$(@:b).list + @-$(RM) $(MISC)/$(TARGET).$(@:b)_$(TNR).cmd + @echo $(STDSLO) $(SHL$(TNR)OBJS:s/.obj/.o/) \ + $(SHL$(TNR)VERSIONOBJ) \ + `cat /dev/null $(SHL$(TNR)LIBS) | sed s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g` | tr -s " " "\n" > $(MISC)/$(@:b).list + @/bin/echo -n $(SHL$(TNR)LINKER) $(SHL$(TNR)LINKFLAGS) $(SHL$(TNR)VERSIONMAPPARA) $(LINKFLAGSSHL) -L$(PRJ)/$(ROUT)/lib $(SOLARLIB) -o $@ \ + $(SHL$(TNR)STDLIBS) $(SHL$(TNR)ARCHIVES) $(SHL$(TNR)STDSHL) $(STDSHL$(TNR)) -filelist $(MISC)/$(@:b).list $(LINKOUTPUT_FILTER) > $(MISC)/$(TARGET).$(@:b)_$(TNR).cmd + @$(PERL) $(SOLARENV)/bin/macosx-dylib-link-list.pl \ + `cat $(MISC)/$(TARGET).$(@:b)_$(TNR).cmd` \ + >> $(MISC)/$(TARGET).$(@:b)_$(TNR).cmd + .IF "$(VERBOSE)" == "TRUE" + @cat $(MISC)/$(TARGET).$(@:b)_$(TNR).cmd + .ENDIF + @+source $(MISC)/$(TARGET).$(@:b)_$(TNR).cmd + @$(PERL) $(SOLARENV)/bin/macosx-change-install-names.pl \ + shl $(SHL$(TNR)RPATH) $@ +.IF "$(SHL$(TNR)CREATEJNILIB)"!="" + @echo "Making: " $(@:f).jnilib + @macosx-create-bundle $@ +.ENDIF # "$(SHL$(TNR)CREATEJNILIB)"!="" +.IF "$(UPDATER)"=="YES" +.IF "$(SHL$(TNR)NOCHECK)"=="" + $(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS$(TNR)) $(SHL$(TNR)TARGETN) +.ENDIF # "$(SHL$(TNR)NOCHECK)"!="" +.ENDIF +.ELIF "$(OS)"=="IOS" + $(COMMAND_ECHO)$(AR) $(LIB$(TNR)FLAGS) $(LIBFLAGS) $@ $(subst,.obj,.o $(SHL$(TNR)OBJS)) $(shell cat /dev/null $(LIB$(TNR)TARGET) $(SHL$(TNR)LIBS) | sed s\#'^'$(ROUT)\#$(PRJ)/$(ROUT)\#g) + $(COMMAND_ECHO)$(RANLIB) $@ +.ELSE # "$(OS)"=="MACOSX" + @-$(RM) $(MISC)/$(TARGET).$(@:b)_$(TNR).cmd + @echo $(SHL$(TNR)LINKER) $(SHL$(TNR)LINKFLAGS) $(SHL$(TNR)SONAME) $(LINKFLAGSSHL) $(SHL$(TNR)VERSIONMAPPARA) -L$(PRJ)/$(ROUT)/lib $(SOLARLIB) $(STDSLO) $(SHL$(TNR)OBJS:s/.obj/.o/) \ + $(SHL$(TNR)VERSIONOBJ) -o $@ \ + `cat /dev/null $(SHL$(TNR)LIBS) | tr -s " " "\n" | $(SED) s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g` \ + $(SHL$(TNR)STDLIBS) $(SHL$(TNR)ARCHIVES) $(SHL$(TNR)STDSHL) $(STDSHL$(TNR)) $(LINKOUTPUT_FILTER) > $(MISC)/$(TARGET).$(@:b)_$(TNR).cmd + .IF "$(VERBOSE)" == "TRUE" + @cat $(MISC)/$(TARGET).$(@:b)_$(TNR).cmd + .ENDIF + @+source $(MISC)/$(TARGET).$(@:b)_$(TNR).cmd +.IF "$(UPDATER)"=="YES" +.IF "$(SHL$(TNR)NOCHECK)"=="" + $(COMMAND_ECHO)-$(RM) $(SHL$(TNR)TARGETN:d)check_$(SHL$(TNR)TARGETN:f) + $(COMMAND_ECHO)$(RENAME) $(SHL$(TNR)TARGETN) $(SHL$(TNR)TARGETN:d)check_$(SHL$(TNR)TARGETN:f) +.IF "$(VERBOSE)"=="TRUE" + $(COMMAND_ECHO)$(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS$(TNR)) $(SHL$(TNR)TARGETN:d)check_$(SHL$(TNR)TARGETN:f) +.ELSE + $(COMMAND_ECHO)$(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS$(TNR)) -- -s $(SHL$(TNR)TARGETN:d)check_$(SHL$(TNR)TARGETN:f) +.ENDIF +.ENDIF # "$(SHL$(TNR)NOCHECK)"!="" +.ENDIF # "$(UPDATER)"=="YES" +.ENDIF # "$(OS)"=="MACOSX" +.IF "$(UNIXVERSIONNAMES)"!="" && "$(OS)"!="IOS" + $(COMMAND_ECHO)$(RM) $(LB)/$(SHL$(TNR)TARGETN:b) + $(COMMAND_ECHO)cd $(LB) && ln -s $(SHL$(TNR)TARGETN:f) $(SHL$(TNR)TARGETN:b) +.ENDIF # "$(UNIXVERSIONNAMES)"!="" +.IF "$(VERBOSE)" == "TRUE" + @ls -l $@ +.ENDIF +.ENDIF # "$(GUI)" == "UNX" + +.ENDIF # "$(SHL$(TNR)TARGETN)"!="" + +# unroll end +####################################################### + +#------------------------------------------------------------------------- + +####################################################### +# Anweisungen fuer das Linken +# unroll begin + +.IF "$(SHL$(TNR)IMPLIBN)" != "" + +.IF "$(UPDATER)"=="YES" +USELIB$(TNR)DEPN+=$(SHL$(TNR)LIBS) +.ELSE +.ENDIF + +.IF "$(USE_DEFFILE)"!="" +USE_SHL$(TNR)TARGET=$(SHL$(TNR)TARGETN) +.ENDIF + +.IF "$(GUI)$(COM)" != "WNTGCC" +.IF "$(GUI)" != "UNX" +$(SHL$(TNR)IMPLIBN): \ + $(SHL$(TNR)DEF) \ + $(USE_SHL$(TNR)TARGET) \ + $(USELIB$(TNR)DEPN) \ + $(USELIBDEPN) +.ELSE +$(SHL$(TNR)IMPLIBN): \ + $(SHL$(TNR)LIBS) +.ENDIF + @echo "Making: " $(@:f) +.IF "$(GUI)" == "WNT" +# bei use_deffile implib von linker erstellt +.IF "$(USE_DEFFILE)"=="" + $(IMPLIB) $(IMPLIBFLAGS) @$(mktmp -out:$(SHL$(TNR)IMPLIBN) \ + -def:$(SHL$(TNR)DEF) ) +.ELSE # "$(USE_DEFFILE)=="" + @echo build of $(SHL$(TNR)TARGETN) creates $@ + @$(TOUCH) $@ +.ENDIF # "$(USE_DEFFILE)=="" + +.ELSE + @echo no ImportLibs on Mac and *ix + @-$(RM) $@ + @$(TOUCH) $@ +.ENDIF +.ENDIF +.ENDIF + +# unroll end +####################################################### + diff --git a/solenv/inc/tg_slo.mk b/solenv/inc/tg_slo.mk new file mode 100644 index 000000000000..4195ffda1c1d --- /dev/null +++ b/solenv/inc/tg_slo.mk @@ -0,0 +1,84 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + + +MKFILENAME:=TG_SLO.MK + +.IF "$(SLOTARGET)"!="" +$(SLOTARGET): $(SLOFILES) $(IDLSLOFILES) +.IF "$(MDB)" != "" + @echo $(SLOTARGET) + @echo $(&:+"\n") +.ENDIF + @echo "Making: " $(@:f) +# @$(RM) $@ +.IF "$(GUI)"=="WNT" +.IF "$(COM)"=="GCC" + +$(ECHONL) $(foreach,i,$(SLOFILES:f) $(RSLO)/$(i)) | xargs -n1 > $@ +.ELSE +.IF "$(LIBTARGET)"!="NO" + @-$(TYPE) $(mktmp $(&:+"\n")) > $(@:s/.lib/.lin/) +.ENDIF # "$(LIBTARGET)"!="NO" + $(COMMAND_ECHO)$(LIBMGR) $(LIBFLAGS) /OUT:$@ @$(mktmp $(&:+"\n")) +.ENDIF # "$(COM)"=="GCC" +.ENDIF # "$(GUI)"=="WNT" + +.IF "$(GUI)"=="UNX" + @echo $(foreach,i,$(SLOFILES:f) $(RSLO)/$(i:s/.obj/.o/)) | xargs -n1 > $@ +.IF "$(OS)"=="MACOSX" + @-nm `cat $(SLOTARGET) | sed s\#'^'$(ROUT)\#$(PRJ)/$(ROUT)\#g` > $(@:d)$(@:b).dump +.ELSE + @nm `cat $(SLOTARGET) | sed s\#'^'$(ROUT)\#$(PRJ)/$(ROUT)\#g` > $(@:d)$(@:b).dump +.ENDIF +.ENDIF # "$(GUI)"=="UNX" +.ENDIF # "$(SLOTARGET)"!="" + +.IF "$(SECOND_BUILD)"!="" +.IF "$($(SECOND_BUILD)SLOTARGET)"!="" +$($(SECOND_BUILD)SLOTARGET): $(REAL_$(SECOND_BUILD)_SLOFILES) +.IF "$(MDB)" != "" + @echo $(REAL_$(SECOND_BUILD)SLOTARGET) + @echo $(&:+"\n") +.ENDIF + @echo "Making: " $(@:f) +.IF "$(GUI)"=="WNT" +.IF "$(COM)"=="GCC" + +$(ECHONL) $(foreach,i,$(REAL_$(SECOND_BUILD)_SLOFILES:f) $(RSLO)/$(i)) | xargs -n1 > $@ +.ELSE +.IF "$(LIBTARGET)"!="NO" + @-$(TYPE) $(mktmp $(&:+"\n")) > $(@:s/.lib/.lin/) +.ENDIF # "$(LIBTARGET)"!="NO" + $(COMMAND_ECHO)$(LIBMGR) $(LIBFLAGS) /OUT:$@ @$(mktmp $(&:+"\n")) + +.ENDIF # "$(COM)"=="GCC" +.ENDIF # "$(GUI)"=="WNT" + +.IF "$(GUI)"=="UNX" + @echo $(foreach,i,$(REAL_$(SECOND_BUILD)_SLOFILES:f) $(RSLO)/$(i:s/.obj/.o/)) | xargs -n1 > $@ +.ENDIF # "$(GUI)"=="UNX" +.ENDIF # "$($(SECOND_BUILD)SLOTARGET)"!="" +.ENDIF # "$(SECOND_BUILD)"!="" diff --git a/solenv/inc/tg_srs.mk b/solenv/inc/tg_srs.mk new file mode 100644 index 000000000000..a919069cd3cd --- /dev/null +++ b/solenv/inc/tg_srs.mk @@ -0,0 +1,73 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +####################################################### +# unroll begin + +.IF "$(SRS$(TNR)NAME)"!="" + +$(MISC)/$(TARGET).$(SRS$(TNR)NAME).dprr: $(LOCALIZE_ME_DEST) + +$(MISC)/$(TARGET).$(SRS$(TNR)NAME).dprr: $(SRC$(TNR)FILES) + @echo "Making: " $(@:f) + @@-$(RM) $(MISC)/$(TARGET).$(SRS$(TNR)NAME).dprr + $(COMMAND_ECHO)$(RSC) $(VERBOSITY) $(SRSDEFAULT) $(RSC_SRS_CHARSET) $(RSCFLAGS) -I$(RSCEXTINC) -I$(INCLOCPRJ) -I$(INCLOCAL) -I$(INC) -I$(INCCOM) $(RSCDEFS) $(RSCUPDVERDEF) -fp={$(SRS)/$(SRS$(TNR)NAME).srs} -fo=$@ -p=$(TARGET) $(SRC$(TNR)FILES) + +.IF "$(WITH_LANG)"!="" + +$(foreach,i,$(SRC$(TNR)FILES) $(COMMONMISC)/$(TARGET)/$i) : $$(@:f) $(LOCALIZESDF) + @echo "Making: " $(@:f) + $(COMMAND_ECHO)-$(MKDIR) $(@:d) + $(COMMAND_ECHO)-$(RM) $@ + $(COMMAND_ECHO)-$(MKDIRHIER) $(COMMONMISC)$/$(PRJNAME) + $(COMMAND_ECHO)$(WRAPCMD) $(TRANSEX) -p $(PRJNAME) -i $(@:f) -o $(@).$(INPATH) -m $(LOCALIZESDF) -l all + $(COMMAND_ECHO)$(RENAME) $@.$(INPATH) $@ + $(COMMAND_ECHO)-$(RM) $@.$(INPATH) + +$(SRS)/$(SRS$(TNR)NAME).srs: $(LOCALIZE_ME_DEST) + +$(SRS)/$(SRS$(TNR)NAME).srs: $(foreach,i,$(SRC$(TNR)FILES) $(COMMONMISC)/$(TARGET)/$i) +.ELSE # "$(WITH_LANG)"!="" +$(SRS)/$(SRS$(TNR)NAME).srs: $(SRC$(TNR)FILES) +.ENDIF # "$(WITH_LANG)"!="" + @echo "Making: " $(@:f) + $(COMMAND_ECHO)$(RSC) -presponse $(VERBOSITY) @$(mktmp \ + $(SRSDEFAULT) $(RSC_SRS_CHARSET) $(RSCFLAGS) -I$(RSCEXTINC) \ + $(INCLUDE) $(RSCDEFS) $(RSCUPDVERDEF) \ + -fp=$@.$(INPATH) \ + $< \ + ) + $(COMMAND_ECHO)-$(RM) $@ + $(COMMAND_ECHO)$(RENAME) $@.$(INPATH) $@ + $(COMMAND_ECHO)-$(RM) $@.$(INPATH) + +.ENDIF # "$(SRS$(TNR)NAME)"!="" + +# unroll end +####################################################### + + diff --git a/solenv/inc/tg_wntx64.mk b/solenv/inc/tg_wntx64.mk new file mode 100644 index 000000000000..05a3155fb97a --- /dev/null +++ b/solenv/inc/tg_wntx64.mk @@ -0,0 +1,509 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* +############################################################################################## +# Used when building 64-bit Windows code for the 64-bit Explorer shell extension +# in an otherwise 32-bit LibreOffice build. Don't confuse with +# building a completely 64-bit LibreOffice on Windows, which is unfinished +# and highly experimental work. +############################################################################################## + +.IF "$(BUILD_X64)"!="" + +.IF "$(SLOTARGET_X64)"!="" +$(SLOTARGET_X64): $(SLOFILES_X64) $(IDLSLOFILES_X64) +.IF "$(MDB)" != "" + @echo $(SLOTARGET_X64) + @echo $(&:+"\n") +.ENDIF + @echo ------------------------------ + @echo Making: $@ + @-$(MKDIRHIER) $(SLB_X64) +.IF "$(LIBTARGET)"!="NO" + @-$(TYPE) $(mktmp $(&:+"\n")) > $(@:s/.lib/.lin/) +.ENDIF # "$(LIBTARGET)"!="NO" + $(LIBMGR_X64) $(LIBFLAGS_X64) /OUT:$@ @$(mktmp $(&:+"\n")) +.ENDIF # "$(SLOTARGET_X64)"!="" + + +# decide how to link +.IF "$(SHL1CODETYPE)"=="C" +SHL1LINKFLAGS_X64+=$(LINKCFLAGS_X64) +.ELSE # "$(SHL1CODETYPE)"=="C" +SHL1LINKFLAGS_X64+=$(LINKFLAGS_X64) +.ENDIF # "$(SHL1CODETYPE)"=="C" + +.IF "$(SHL2CODETYPE)"=="C" +SHL2LINKFLAGS_X64+=$(LINKCFLAGS_X64) +.ELSE # "$(SHL2CODETYPE)"=="C" +SHL2LINKFLAGS_X64+=$(LINKFLAGS_X64) +.ENDIF # "$(SHL2CODETYPE)"=="C" + +.IF "$(SHL1IMPLIB_X64)" == "" +SHL1IMPLIB_X64=i$(TARGET)_t1 +.ENDIF # "$(SHL1IMPLIB_X64)" == "" +USE_1IMPLIB_X64=-implib:$(LB_X64)/$(SHL1IMPLIB_X64).lib +.IF "$(SHL1TARGET_X64)"!="" +SHL1IMPLIBN_X64=$(LB_X64)/$(SHL1IMPLIB_X64).lib +.ENDIF # "$(SLOFILES_X64)$(OBJFILES_X64)"!="" + +make_x64_dirs : + $(MKDIRHIER) $(BIN_X64) $(MISC_X64) $(LB_X64) $(SLB_X64) + + +.IF "$(LIBTARGET)" == "" +ALLTAR : $(SHL1IMPLIBN_X64) +.ENDIF "$(LIBTARGET)" == "" + +# ----------------------------- lib ------------------------------------------ +.IF "$(LIB1TARGET_X64)" != "" +$(LIB1TARGET_X64) : $(LIB1FILES_X64) \ + $(LIB1OBJFILES_X64) \ + $(LIB1DEPN_X64) + @echo using: $(LIB1FILES_X64) + @echo using: $(LIB1TARGET_X64) + @echo ------------------------------ + @echo Making: $@ + $(MKDIRHIER) $(SLB_X64) + @@-$(RM) $@ + $(LIBMGR_X64) $(LIBFLAGS_X64) /OUT:$@ @$(mktmp $(LIB1FILES_X64) $(LIB1OBJFILES_X64)) + @-$(RM) $(@:s/.lib/.lin/) +.IF "$(LIB1OBJFILES_X64)"!="" + @$(TYPE) $(mktmp $(LIB1OBJFILES_X64)) > $(null,$(LIB1OBJFILES_X64) $(NULLDEV) $(@:s/.lib/.lin/)) +.ENDIF # "$(LIB1OBJFILES_X64)"!="" +.IF "$(LIB1FILES_X64)"!="" + @-$(TYPE) $(foreach,i,$(LIB1FILES_X64) $(i:s/.lib/.lin/)) >> $(@:s/.lib/.lin/) +.ENDIF # "$(LIB1FILES_X64)"!="" + @$(ECHONL) +.ENDIF # "$(LIB1TARGET_X64)" != "" + +.IF "$(LIB2TARGET_X64)" != "" +$(LIB2TARGET_X64) : $(LIB2FILES_X64) \ + $(LIB2OBJFILES_X64) \ + $(LIB2DEPN_X64) + @echo using: $(LIB2FILES_X64) + @echo using: $(LIB2TARGET_X64) + @echo ------------------------------ + @echo Making: $@ + $(MKDIRHIER) $(SLB_X64) + @@-$(RM) $@ + $(LIBMGR_X64) $(LIBFLAGS_X64) /OUT:$@ @$(mktmp $(LIB2FILES_X64) $(LIB2OBJFILES_X64)) + @-$(RM) $(@:s/.lib/.lin/) +.IF "$(LIB2OBJFILES_X64)"!="" + @$(TYPE) $(mktmp $(LIB2OBJFILES_X64)) > $(null,$(LIB2OBJFILES_X64) $(NULLDEV) $(@:s/.lib/.lin/)) +.ENDIF # "$(LIB2OBJFILES_X64)"!="" +.IF "$(LIB2FILES_X64)"!="" + @-$(TYPE) $(foreach,i,$(LIB2FILES_X64) $(i:s/.lib/.lin/)) >> $(@:s/.lib/.lin/) +.ENDIF # "$(LIB2FILES_X64)"!="" + @$(ECHONL) +.ENDIF # "$(LIB2TARGET_X64)" != "" + +# -------------- def ---------------------- +.IF "$(DEF1TARGETN_X64)"!="" +$(DEF1TARGETN_X64) : \ + $(DEF1DEPN_X64) \ + $(DEF1EXPORTFILE_X64) + @-$(MKDIRHIER) $(MISC_X64) + @-$(RM) $@.tmpfile + @echo ------------------------------ + @echo Making Module-Definitionfile : $@ + @echo LIBRARY $(EMQ)"$(SHL1TARGETN:f)$(EMQ)" >$@.tmpfile + @echo HEAPSIZE 0 >>$@.tmpfile + @echo EXPORTS >>$@.tmpfile +# getversioninfo fuer alle!! + @echo GetVersionInfo >>$@.tmpfile +.IF "$(DEFLIB1NAME_X64)"!="" +.IF "$(SHL1USE_EXPORTS_X64)"=="" + @-$(EXPORT1_PROTECT) $(RMHACK1) $(MISC_X64)/$(SHL1TARGET_X64).exp + @$(EXPORT1_PROTECT) $(LIBMGR_X64) -EXTRACT:/ /OUT:$(MISC_X64)/$(SHL1TARGET_X64).exp $(SLB_X64)/$(DEFLIB1NAME_X64).lib + @$(EXPORT1_PROTECT) $(LDUMP2) -E 20 -F $(MISC_X64)/$(SHL1TARGET_X64).flt $(MISC_X64)/$(SHL1TARGET_X64).exp >>$@.tmpfile + $(EXPORT1_PROTECT) $(RMHACK1) $(MISC_X64)/$(SHL1TARGET_X64).exp +.ELSE # "$(SHL1USE_EXPORTS_X64)"=="" + @$(EXPORT1_PROTECT) $(DUMPBIN) -DIRECTIVES $(foreach,i,$(DEFLIB1NAME_X64) $(SLB_X64)/$(i).lib) | $(GREP) EXPORT: > $(MISC_X64)/$(SHL1TARGET_X64).direct +.IF "$(SHL1USE_EXPORTS_X64)"!="name" + @$(EXPORT1_PROTECT) $(LDUMP2) -D -E 20 -F $(DEF1FILTER_X64) $(MISC_X64)/$(SHL1TARGET_X64).direct >>$@.tmpfile +.ELSE # "$(SHL1USE_EXPORTS_X64)"!="name" + @$(EXPORT1_PROTECT) $(LDUMP2) -N -D -E 20 -F $(DEF1FILTER_X64) $(MISC_X64)/$(SHL1TARGET_X64).direct >>$@.tmpfile +.ENDIF # "$(SHL1USE_EXPORTS_X64)"!="name" +.ENDIF # "$(SHL1USE_EXPORTS)"=="" +.ENDIF # "$(DEFLIB1NAME)"!="" +.IF "$(DEF1EXPORT1_X64)"!="" + @echo $(DEF1EXPORT1_X64) >>$@.tmpfile +.ENDIF +.IF "$(DEF1EXPORTFILE_X64)"!="" + $(COMMAND_ECHO)$(TYPE) $(DEF1EXPORTFILE_X64) >> $@.tmpfile +.ENDIF + @-$(RM) $@ + @$(RENAME) $@.tmpfile $@ +.ENDIF # "$(DEF1TARGETN_X64)"!="" + +.IF "$(DEF2TARGETN_X64)"!="" +$(DEF2TARGETN_X64) : \ + $(DEF2DEPN_X64) \ + $(DEF2EXPORTFILE_X64) + @-$(MKDIRHIER) $(MISC_X64) + @-$(RM) $@.tmpfile + @echo Making Module-Definitionfile : $@ + @echo LIBRARY $(EMQ)"$(SHL2TARGETN:f)$(EMQ)" >$@.tmpfile + @echo HEAPSIZE 0 >>$@.tmpfile + @echo EXPORTS >>$@.tmpfile +# getversioninfo fuer alle!! + @echo GetVersionInfo >>$@.tmpfile +.IF "$(DEFLIB2NAME_X64)"!="" +.IF "$(SHL2USE_EXPORTS_X64)"=="" + @-$(EXPORT2_PROTECT) $(RMHACK1) $(MISC_X64)/$(SHL2TARGET_X64).exp + @$(EXPORT2_PROTECT) $(LIBMGR_X64) -EXTRACT:/ /OUT:$(MISC_X64)/$(SHL2TARGET_X64).exp $(SLB_X64)/$(DEFLIB2NAME_X64).lib + @$(EXPORT2_PROTECT) $(LDUMP2) -E 20 -F $(MISC_X64)/$(SHL2TARGET_X64).flt $(MISC_X64)/$(SHL2TARGET_X64).exp >>$@.tmpfile + $(EXPORT2_PROTECT) $(RMHACK1) $(MISC_X64)/$(SHL2TARGET_X64).exp +.ELSE # "$(SHL2USE_EXPORTS_X64)"=="" + @$(EXPORT2_PROTECT) $(DUMPBIN) -DIRECTIVES $(foreach,i,$(DEFLIB2NAME_X64) $(SLB_X64)/$(i).lib) | $(GREP) EXPORT: > $(MISC_X64)/$(SHL2TARGET_X64).direct +.IF "$(SHL2USE_EXPORTS_X64)"!="name" + @$(EXPORT2_PROTECT) $(LDUMP2) -D -E 20 -F $(DEF2FILTER_X64) $(MISC_X64)/$(SHL2TARGET_X64).direct >>$@.tmpfile +.ELSE # "$(SHL2USE_EXPORTS_X64)"!="name" + @$(EXPORT2_PROTECT) $(LDUMP2) -N -D -E 20 -F $(DEF2FILTER_X64) $(MISC_X64)/$(SHL2TARGET_X64).direct >>$@.tmpfile +.ENDIF # "$(SHL2USE_EXPORTS_X64)"!="name" +.ENDIF # "$(SHL2USE_EXPORTS)"=="" +.ENDIF # "$(DEFLIB1NAME)"!="" +.IF "$(DEF2EXPORT2_X64)"!="" + @echo $(DEF2EXPORT2_X64) >>$@.tmpfile +.ENDIF +.IF "$(DEF2EXPORTFILE_X64)"!="" + $(COMMAND_ECHO)$(TYPE) $(DEF2EXPORTFILE_X64) >> $@.tmpfile +.ENDIF + @-$(RM) $@ + @$(RENAME) $@.tmpfile $@ +.ENDIF # "$(DEF2TARGETN_X64)"!="" +#----------------------------------------------------------------------------- + +# -------------------------------- shl ----------------------------------------- + +.IF "$(SHL1TARGET_X64)"!="" +.IF "$(VERSIONOBJ_X64)"!="" +SHL1VERSIONOBJ_X64:=$(VERSIONOBJ_X64:d){$(subst,$(UPD)$(DLLPOSTFIX),_dflt $(SHL1TARGET_X64))}$(VERSIONOBJ_X64:f) +USE_VERSIONH_X64:=$(INCCOM)/$(SHL1VERSIONOBJ_X64:b).h +SHL1VERSIONOBJDEP_X64:=$(VERSIONOBJ_X64:d){$(subst,$(UPD)$(DLLPOSTFIX),_dflt $(SHL1TARGET_X64))}$(VERSIONOBJ_X64:f) +$(MISC_X64)/$(SHL1VERSIONOBJ_X64:b).c : make_x64_dirs $(SOLARENV)/src/version.c $(INCCOM)/$(SHL1VERSIONOBJ_X64:b).h + $(COMMAND_ECHO)$(TYPE) $(SOLARENV)/src/version.c | $(SED) s/_version.h/$(SHL1VERSIONOBJ_X64:b).h/ > $@ +.INIT : $(SHL1VERSIONOBJDEP_X64) +.ENDIF + +.IF "$(USE_DEFFILE_X64)"=="" +USE_1IMPLIB_DEPS_X64=$(LB_X64)/$(SHL1IMPLIB_X64).lib +.ENDIF # "$(USE_DEFFILE_X64)"=="" + +.IF "$(SHL1RES_X64)"!="" +SHL1ALLRES_X64+=$(SHL1RES_X64) +SHL1LINKRES_X64*=$(MISC_X64)/$(SHL1TARGET_X64).res +SHL1LINKRESO_X64*=$(MISC_X64)/$(SHL1TARGET_X64)_res.o +.ENDIF # "$(SHL1RES_X64)"!="" + +.IF "$(SHL1DEFAULTRES_X64)$(use_shl_versions)"!="" +SHL1DEFAULTRES_X64*=$(MISC_X64)/$(SHL1TARGET_X64)_def.res +SHL1ALLRES_X64+=$(SHL1DEFAULTRES_X64) +SHL1LINKRES_X64*=$(MISC_X64)/$(SHL1TARGET_X64).res +SHL1LINKRESO_X64*=$(MISC_X64)/$(SHL1TARGET_X64)_res.o +.ENDIF # "$(SHL1DEFAULTRES)$(use_shl_versions)"!="" +.ENDIF # "$(SHL1TARGET_X64)"=!"" + +.IF "$(SHL1TARGETN_X64)"!="" +$(SHL1TARGETN_X64) : \ + make_x64_dirs \ + $(SHL1OBJS_X64)\ + $(SHL1LIBS_X64)\ + $(USE_1IMPLIB_DEPS_X64)\ + $(USE_SHL1DEF_X64)\ + $(USE_SHL1VERSIONMAP_X64)\ + $(SHL1RES)\ + $(SHL1DEPN_X64) \ + $(SHL1LINKLIST_X64) + @echo Making: $(SHL1TARGETN_X64) +.IF "$(SHL1DEFAULTRES_X64)"!="" + @@-$(RM) $(MISC_X64)/$(SHL1DEFAULTRES_X64:b).rc +.IF "$(use_shl_versions)" != "" +.IF "$(SHL1ADD_VERINFO_X64)"!="" + @echo $(EMQ)#include $(EMQ)"$(SHL1ADD_VERINFO)$(EMQ)" >> $(MISC_X64)/$(SHL1DEFAULTRES_X64:b).rc +.ELSE # "$(SHL1ADD_VERINFO_X64)"!="" + @echo $(EMQ)#define ADDITIONAL_VERINFO1 >> $(MISC_X64)/$(SHL1DEFAULTRES_X64:b).rc + @echo $(EMQ)#define ADDITIONAL_VERINFO2 >> $(MISC_X64)/$(SHL1DEFAULTRES_X64:b).rc + @echo $(EMQ)#define ADDITIONAL_VERINFO3 >> $(MISC_X64)/$(SHL1DEFAULTRES_X64:b).rc +.ENDIF # "$(SHL1ADD_VERINFO_X64)"!="" + @echo $(EMQ)#define VERVARIANT $(BUILD) >> $(MISC_X64)/$(SHL1DEFAULTRES_X64:b).rc + @echo $(EMQ)#define ORG_NAME $(SHL1TARGET_X64)$(DLLPOST) >> $(MISC_X64)/$(SHL1DEFAULTRES_X64:b).rc + @echo $(EMQ)#define INTERNAL_NAME $(SHL1TARGET_X64:b) >> $(MISC_X64)/$(SHL1DEFAULTRES_X64:b).rc + @echo $(EMQ)#include $(EMQ)"shlinfo.rc$(EMQ)" >> $(MISC_X64)/$(SHL1DEFAULTRES_X64:b).rc +.ENDIF # "$(use_shl_versions)" != "" + $(COMMAND_ECHO)$(RC) -DWIN32 $(INCLUDE) $(RCLINKFLAGS_X64) $(MISC_X64)/$(SHL1DEFAULTRES_X64:b).rc +.ENDIF # "$(SHL1DEFAULTRES_X64)"!="" +.IF "$(SHL1ALLRES_X64)"!="" + $(COMMAND_ECHO)$(TYPE) $(SHL1ALLRES_X64) > $(SHL1LINKRES_X64) +.ENDIF # "$(SHL1ALLRES)"!="" +.IF "$(USE_DEFFILE_X64)"!="" + $(LINK_X64) @$(mktmp \ + $(SHL1LINKFLAGS_X64) \ + $(LINKFLAGSSHL_X64) \ + $(SHL1STACK_X64) $(SHL1BASEX_X64) \ + -out:$@ \ + -map:$(MISC_X64)/$(@:b).map \ + -def:$(SHL1DEF_X64) \ + $(USE_1IMPLIB_X64) \ + $(STDOBJ_X64) \ + $(SHL1VERSIONOBJ_X64) $(SHL1OBJS_X64) \ + $(SHL1LIBS_X64) \ + $(SHL1STDLIBS_X64) \ + $(SHL1STDSHL_X64) $(STDSHL1_X64) \ + $(SHL1LINKRES_X64) \ + ) $(LINKOUTPUTFILTER_X64) +# double check if target was really written... still making sense? + @@$(LS) $@ + @echo linking $@.manifest ... +.IF "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI) +.ELSE + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI) +.ENDIF # "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI) +.ELSE # "$(USE_DEFFILE)"!="" + $(LINK_X64) @$(mktmp $(SHL1LINKFLAGS_X64) \ + $(LINKFLAGSSHL_X64) $(SHL1BASEX_X64) \ + $(SHL1STACK_X64) -out:$(SHL1TARGETN_X64) \ + -map:$(MISC_X64)/$(@:B).map \ + $(LB_X64)/$(SHL1IMPLIB_X64).exp \ + $(STDOBJ_X64) \ + $(SHL1OBJS_X64) $(SHL1VERSIONOBJ_X64) \ + $(SHL1LIBS_X64) \ + $(SHL1STDLIBS_X64) \ + $(SHL1STDSHL_X64) $(STDSHL1_X64) \ + $(SHL1LINKRES_X64) \ + ) $(LINKOUTPUTFILTER_X64) +# double check if target was really written... still making sense? + @@$(LS) $@ + @echo linking $@.manifest ... +.IF "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI) +.ELSE + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI) +.ENDIF # "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI) +.ENDIF # "$(USE_DEFFILE)"!="" +# ------------------------------------------------------------------------------ +$(SHL1IMPLIBN_X64): \ + $(SHL1DEF_X64) \ + $(USE_SHL1TARGET_X64) \ + $(USELIB1DEPN_X64) \ + $(USELIBDEPN_X64) + @echo Making: $(SHL1IMPLIBN_X64) +# bei use_deffile implib von linker erstellt + @-$(MKDIRHIER) $(LB_X64) +.IF "$(USE_DEFFILE_X64)"=="" + $(IMPLIB_X64) $(IMPLIBFLAGS_X64) @$(mktmp -out:$(SHL1IMPLIBN_X64) \ + -def:$(SHL1DEF_X64) ) +.ELSE # "$(USE_DEFFILE_X64)=="" + @echo build of $(SHL1TARGETN_X64) creates $@ +.ENDIF # "$(USE_DEFFILE_X64)=="" + +.ENDIF # "$(SHL1TARGETN_X64)"!="" + +.IF "$(SHL2IMPLIB_X64)" == "" +SHL2IMPLIB_X64=i$(TARGET)_t2 +.ENDIF # "$(SHL2IMPLIB_X64)" == "" +.IF "$(COM)" != "GCC" +USE_2IMPLIB_X64=-implib:$(LB_X64)/$(SHL2IMPLIB_X64).lib +.ENDIF # "$(COM)" != "GCC" +.IF "$(SHL2TARGET_X64)"!="" +SHL2IMPLIBN_X64=$(LB_X64)/$(SHL2IMPLIB_X64).lib +.ENDIF # "$(SLOFILES_X64)$(OBJFILES_X64)"!="" + +.IF "$(LIBTARGET)" == "" +ALLTAR : $(SHL2IMPLIBN_X64) +.ENDIF # "$(LIBTARGET)" == "" + +.IF "$(SHL2TARGET_X64)"!="" +.IF "$(VERSIONOBJ_X64)"!="" +SHL2VERSIONOBJ_X64:=$(VERSIONOBJ_X64:d){$(subst,$(UPD)$(DLLPOSTFIX),_dflt $(SHL2TARGET_X64))}$(VERSIONOBJ_X64:f) +USE_VERSIONH_X64:=$(INCCOM)/$(SHL2VERSIONOBJ_X64:b).h +SHL2VERSIONOBJDEP_X64:=$(VERSIONOBJ_X64:d){$(subst,$(UPD)$(DLLPOSTFIX),_dflt $(SHL2TARGET_X64))}$(VERSIONOBJ_X64:f) +$(MISC_X64)/$(SHL2VERSIONOBJ_X64:b).c : make_x64_dirs $(SOLARENV)/src/version.c $(INCCOM)/$(SHL2VERSIONOBJ_X64:b).h + $(COMMAND_ECHO)$(TYPE) $(SOLARENV)/src/version.c | $(SED) s/_version.h/$(SHL2VERSIONOBJ_X64:b).h/ > $@ +.INIT : $(SHL2VERSIONOBJDEP_X64) +.ENDIF + +.IF "$(USE_DEFFILE_X64)"=="" +USE_2IMPLIB_DEPS_X64=$(LB_X64)/$(SHL2IMPLIB_X64).lib +.ENDIF # "$(USE_DEFFILE_X64)"=="" + +.IF "$(SHL2RES_X64)"!="" +SHL2ALLRES_X64+=$(SHL2RES_X64) +SHL2LINKRES_X64*=$(MISC_X64)/$(SHL2TARGET_X64).res +SHL2LINKRESO_X64*=$(MISC_X64)/$(SHL2TARGET_X64)_res.o +.ENDIF # "$(SHL2RES_X64)"!="" + +.IF "$(SHL2DEFAULTRES_X64)$(use_shl_versions)"!="" +SHL2DEFAULTRES_X64*=$(MISC_X64)/$(SHL2TARGET_X64)_def.res +SHL2ALLRES_X64+=$(SHL2DEFAULTRES_X64) +SHL2LINKRES_X64*=$(MISC_X64)/$(SHL2TARGET_X64).res +SHL2LINKRESO_X64*=$(MISC_X64)/$(SHL2TARGET_X64)_res.o +.ENDIF # "$(SHL2DEFAULTRES)$(use_shl_versions)"!="" +.ENDIF # "$(SHL2TARGET_X64)"=!"" + +.IF "$(SHL2TARGETN_X64)"!="" +$(SHL2TARGETN_X64) : \ + make_x64_dirs \ + $(SHL2OBJS_X64)\ + $(SHL2LIBS_X64)\ + $(USE_2IMPLIB_DEPS_X64)\ + $(USE_SHL2DEF_X64)\ + $(USE_SHL2VERSIONMAP_X64)\ + $(SHL2RES)\ + $(SHL2DEPN_X64) \ + $(SHL2LINKLIST_X64) + @echo Making: $(SHL2TARGETN_X64) +.IF "$(SHL2DEFAULTRES_X64)"!="" + @@-$(RM) $(MISC_X64)/$(SHL2DEFAULTRES_X64:b).rc +.IF "$(use_shl_versions)" != "" +.IF "$(SHL2ADD_VERINFO_X64)"!="" + @echo $(EMQ)#include $(EMQ)"$(SHL2ADD_VERINFO)$(EMQ)" >> $(MISC_X64)/$(SHL2DEFAULTRES_X64:b).rc +.ELSE # "$(SHL2ADD_VERINFO_X64)"!="" + @echo $(EMQ)#define ADDITIONAL_VERINFO1 >> $(MISC_X64)/$(SHL2DEFAULTRES_X64:b).rc + @echo $(EMQ)#define ADDITIONAL_VERINFO2 >> $(MISC_X64)/$(SHL2DEFAULTRES_X64:b).rc + @echo $(EMQ)#define ADDITIONAL_VERINFO3 >> $(MISC_X64)/$(SHL2DEFAULTRES_X64:b).rc +.ENDIF # "$(SHL1ADD_VERINFO_X64)"!="" + @echo $(EMQ)#define VERVARIANT $(BUILD) >> $(MISC_X64)/$(SHL2DEFAULTRES_X64:b).rc + @echo $(EMQ)#define ORG_NAME $(SHL2TARGET_X64)$(DLLPOST) >> $(MISC_X64)/$(SHL2DEFAULTRES_X64:b).rc + @echo $(EMQ)#define INTERNAL_NAME $(SHL1TARGET_X64:b) >> $(MISC_X64)/$(SHL2DEFAULTRES_X64:b).rc + @echo $(EMQ)#include $(EMQ)"shlinfo.rc$(EMQ)" >> $(MISC_X64)/$(SHL2DEFAULTRES_X64:b).rc +.ENDIF # "$(use_shl_versions)" != "" + $(COMMAND_ECHO)$(RC) -DWIN32 $(INCLUDE) $(RCLINKFLAGS_X64) $(MISC_X64)/$(SHL2DEFAULTRES_X64:b).rc +.ENDIF # "$(SHL2DEFAULTRES_X64)"!="" +.IF "$(SHL2ALLRES_X64)"!="" + $(COMMAND_ECHO)$(TYPE) $(SHL2ALLRES_X64) > $(SHL2LINKRES_X64) +.ENDIF # "$(SHL2ALLRES)"!="" +.IF "$(USE_DEFFILE_X64)"!="" + $(LINK_X64) @$(mktmp \ + $(SHL2LINKFLAGS_X64) \ + $(LINKFLAGSSHL_X64) \ + $(SHL2STACK_X64) $(SHL2BASEX_X64) \ + -out:$@ \ + -map:$(MISC_X64)/$(@:b).map \ + -def:$(SHL2DEF_X64) \ + $(USE_2IMPLIB_X64) \ + $(STDOBJ_X64) \ + $(SHL2VERSIONOBJ_X64) $(SHL2OBJS_X64) \ + $(SHL2LIBS_X64) \ + $(SHL2STDLIBS_X64) \ + $(SHL2STDSHL_X64) $(STDSHL2_X64) \ + $(SHL2LINKRES_X64) \ + ) $(LINKOUTPUTFILTER_X64) +# double check if target was really written... still making sense? + @@$(LS) $@ + @echo linking $@.manifest ... +.IF "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI) +.ELSE + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI) +.ENDIF # "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI) +.ELSE # "$(USE_DEFFILE)"!="" + $(LINK_X64) @$(mktmp $(SHL2LINKFLAGS_X64) \ + $(LINKFLAGSSHL_X64) $(SHL2BASEX_X64) \ + $(SHL2STACK_X64) -out:$(SHL2TARGETN_X64) \ + -map:$(MISC_X64)/$(@:B).map \ + $(LB_X64)/$(SHL2IMPLIB_X64).exp \ + $(STDOBJ_X64) \ + $(SHL2OBJS_X64) $(SHL2VERSIONOBJ_X64) \ + $(SHL2LIBS_X64) \ + $(SHL2STDLIBS_X64) \ + $(SHL2STDSHL_X64) $(STDSHL2_X64) \ + $(SHL2LINKRES_X64) \ + ) $(LINKOUTPUTFILTER_X64) +# double check if target was really written... still making sense? + @@$(LS) $@ + @echo linking $@.manifest ... +.IF "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI) +.ELSE + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI) +.ENDIF # "$(VISTA_MANIFEST)"!="" + $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI) + $(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI) +.ENDIF # "$(USE_DEFFILE)"!="" + +$(SHL2IMPLIBN_X64): \ + $(SHL2DEF_X64) \ + $(USE_SHL2TARGET_X64) \ + $(USELIB2DEPN_X64) \ + $(USELIBDEPN_X64) + @echo Making: $(SHL2IMPLIBN_X64) +# bei use_deffile implib von linker erstellt + @-$(MKDIRHIER) $(LB_X64) +.IF "$(USE_DEFFILE_X64)"=="" + $(IMPLIB_X64) $(IMPLIBFLAGS_X64) @$(mktmp -out:$(SHL2IMPLIBN_X64) \ + -def:$(SHL2DEF_X64) ) +.ELSE # "$(USE_DEFFILE_X64)=="" + @echo build of $(SHL2TARGETN_X64) creates $@ +.ENDIF # "$(USE_DEFFILE_X64)=="" + +.ENDIF # "$(SHL2TARGETN_X64)"!="" + + +$(SLO_X64)/%.obj : %.cpp + @echo ------------------------------ + @echo Making: $@ + @@-$(RM) $@ >& $(NULLDEV) + -$(MKDIRHIER) $(@:d) + @-$(MKDIRHIER) $(MISC_X64) + $(CAPTURE_COMMAND) $(CXX_X64) $(USE_CFLAGS_X64) $(INCLUDE_X64) $(CFLAGSCXX_X64) $(CFLAGSSLO_X64) $(USE_CDEFS_X64) $(CDEFSSLO_X64) $(CDEFSMT_X64) $(!eq,$(EXCEPTIONSFILES),$(subst,$@, $(EXCEPTIONSFILES)) $(LOCAL_EXCEPTIONS_FLAGS) $(GLOBAL_EXCEPTIONS_FLAGS)) $(CFLAGSAPPEND) $(CFLAGSOUTOBJ)$(SLO_X64)/$*.obj $(CFLAGSINCXX)$(PWD)/$*.cpp $(CAPTURE_OUTPUT) + +$(SLO_X64)/%.obj : %.cxx + @echo Making: $@ + @@-$(RM) $@ >& $(NULLDEV) + $(COMMAND_ECHO)$(MKDIRHIER) $(@:d) + $(COMMAND_ECHO)-$(MKDIRHIER) $(MISC_X64) + $(COMMAND_ECHO)$(CAPTURE_COMMAND) $(CXX_X64) $(USE_CFLAGS_X64) $(INCLUDE_X64) $(CFLAGSCXX_X64) $(CFLAGSSLO_X64) $(USE_CDEFS_X64) $(CDEFSSLO_X64) $(CDEFSMT_X64) $(!eq,$(EXCEPTIONSFILES),$(subst,$@, $(EXCEPTIONSFILES)) $(LOCAL_EXCEPTIONS_FLAGS) $(GLOBAL_EXCEPTIONS_FLAGS)) $(CFLAGSAPPEND) $(CFLAGSOUTOBJ)$(SLO_X64)/$*.obj $(CFLAGSINCXX)$(PWD)/$*.cxx $(CAPTURE_OUTPUT) + +$(SLO_X64)/%.obj : $(MISC)/%.c + @echo Making: $@ + $(COMMAND_ECHO)$(MKDIRHIER) $(@:d) + $(COMMAND_ECHO)$(MKDIRHIER) $(MISC_X64) + @@-$(RM) $@ + @$(TYPE) $(mktmp $(CC_X64) $(USE_CFLAGS_X64) $(INCLUDE_C) $(CFLAGSCC_X64) $(CFLAGSSLO_X64) $(USE_CDEFS_X64) $(CDEFSSLO_X64) $(CFLAGSAPPEND_X64) $(CFLAGSOUTOBJ)$(SLO_X64)/$*.obj $(MISC)/$*.c ) + @$(ECHONL) + $(COMMAND_ECHO)$(CC_X64) @$(mktmp $(USE_CFLAGS_X64) $(INCLUDE_C) $(CFLAGSCC_X64) $(CFLAGSSLO_X64) $(USE_CDEFS_X64) $(CDEFSSLO_X64) $(CFLAGSAPPEND_X64) $(CFLAGSOUTOBJ)$(SLO_X64)/$*.obj $(MISC)/$*.c ) + +$(SLO_X64)/%.obj : %.c + @echo Making: $@ + $(COMMAND_ECHO)$(MKDIRHIER) $(@:d) + $(COMMAND_ECHO)$(MKDIRHIER) $(MISC_X64) + @@-$(RM) $@ + $(COMMAND_ECHO)$(CC_X64) @$(mktmp $(USE_CFLAGS_X64) $(INCLUDE_C) $(CFLAGSCC_X64) $(CFLAGSSLO_X64) $(USE_CDEFS_X64) $(CDEFSSLO_X64) $(CDEFSMT_X64) $(CFLAGSAPPEND_X64) $(CFLAGSOUTOBJ)$(SLO_X64)/$*.obj $*.c ) + +.ENDIF # "$(BUILD_X64)"!="" diff --git a/solenv/inc/tg_xmerge.mk b/solenv/inc/tg_xmerge.mk new file mode 100755 index 000000000000..6ff412bb022f --- /dev/null +++ b/solenv/inc/tg_xmerge.mk @@ -0,0 +1,108 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +.IF "$(XTXFILES)"!="" + +L10NEXT*=.txt +XTX_TARGET_PATH*=$(MISC)/$(TARGET) + +ALLTAR : $(XTX_TARGET_PATH).xtx.pmerge.mk $(XTXFILES) + +$(XTX_TARGET_PATH).xtx.pmerge.mk : $(XTXFILES) + +$(XTXFILES) : $(LOCALIZESDF) + +.INCLUDE .IGNORE : $(XTX_TARGET_PATH).xtx.pmerge.mk + +.IF "$(alllangiso)"!="$(last_merge)" +XTXMERGEPHONY:=.PHONY +.ENDIF # "$(alllangiso)" != "$(last_merge)" + +$(XTX_TARGET_PATH)/%$(L10NEXT) $(XTXMERGEPHONY) : %.xtx + @@-$(MKDIRHIER) $(@:d) +.IF "$(WITH_LANG)"=="" + $(COMMAND_ECHO)$(COPY) $< $(@:d)$(@:b)_en-US$(L10NEXT) +.ELSE # "$(WITH_LANG)"=="" + @@-$(RM) $@ + $(COMMAND_ECHO)@noop $(assign XTXMERGELIST+:=$(<:f)) + $(COMMAND_ECHO)@noop $(assign XTXDESTDIR:=$(@:d)) +.ENDIF # "$(WITH_LANG)"=="" + +$(XTX_TARGET_PATH).xtx.pmerge.mk : $(XTXMERGELIST) +.IF "$(WITH_LANG)"!="" +# xtxex command file requirements: +# - one file per line +# - no spaces +# - no empty lines +# $(uniq ...) to workaround $assign adding the value twice... + @noop $(assign XTXMERGEFILELIST:=$(uniq $(XTXMERGELIST))) + $(COMMAND_ECHO) $(SOLARBINDIR)/xtxex -p $(PRJNAME) -r $(PRJ) -o $(XTXDESTDIR) -i @$(mktmp $(XTXMERGEFILELIST:t"\n":s/ //)) -l $(alllangiso:s/ /,/) -f $(alllangiso:s/ /,/) -m $(LOCALIZESDF) -s"[path]/[fileNoExt]_[language]$(L10NEXT)" +.ENDIF # "$(WITH_LANG)"!="" + + @-$(RM) $@ + $(COMMAND_ECHO)echo last_merge=$(alllangiso) > $@ +.ENDIF # "$(XTXFILES)"!="" + +.IF "$(TREEFILE)"!="" +ALLTAR : $(MISC)/$(TARGET).tree.pmerge.mk $(TREEFILE) + +$(MISC)/$(TARGET).tree.pmerge.mk : $(TREEFILE) + +$(TREEFILE) : $(LOCALIZESDF) + +.INCLUDE .IGNORE : $(MISC)/$(TARGET).tree.pmerge.mk + +.IF "$(alllangiso)"!="$(last_merge)" +TREEMERGEPHONY:=.PHONY +.ENDIF # "$(alllangiso)" != "$(last_merge)" + +$(OUT_HELP)/en-US/help.tree $(TREEMERGEPHONY) : help.tree + @@-$(MKDIRHIER) $(@:d) +.IF "$(WITH_LANG)"=="" + $(COMMAND_ECHO)$(COPY) $< $@ +.ELSE # "$(WITH_LANG)"=="" + @@-$(RM) $@ + $(COMMAND_ECHO)@noop $(assign TREEMERGELIST+:=$(<:f)) + $(COMMAND_ECHO)@noop $(assign TREEDESTDIR:=$(@:d:d:d)) +.ENDIF # "$(WITH_LANG)"=="" + +$(MISC)/$(TARGET).tree.pmerge.mk : $(TREEMERGELIST) +.IF "$(WITH_LANG)"!="" +# xtxex command file requirements: +# - one file per line +# - no spaces +# - no empty lines +# $(uniq ...) to workaround $assign adding the value twice... + @noop $(assign TREEMERGEFILELIST:=$(uniq $(TREEMERGELIST))) +# Variables for the pattern filename,fileNoExt,language,extension,pathPrefix,pathPostFix,path + $(COMMAND_ECHO) $(SOLARBINDIR)/xhtex -p $(PRJNAME) -r $(PRJ) -o $(TREEDESTDIR) -i @$(mktmp $(TREEMERGEFILELIST:t"\n":s/ //)) -l $(alllangiso:s/ /,/) -f $(alllangiso:s/ /,/) -m $(LOCALIZESDF) -s"[path]/[language]/[fileNoExt].tree" +.ENDIF # "$(WITH_LANG)"!="" + @-$(RM) $@ + $(COMMAND_ECHO)echo last_merge=$(alllangiso) > $@ +.ENDIF # "$(TREEFILE)"!="" + + diff --git a/solenv/inc/tg_yxx.mk b/solenv/inc/tg_yxx.mk new file mode 100644 index 000000000000..5dfb95e07eec --- /dev/null +++ b/solenv/inc/tg_yxx.mk @@ -0,0 +1,48 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + + +$(MISC)/%.cxx : %.y + @echo "Making: " $(@:f) + $(COMMAND_ECHO)tr -d "\015" < $< > $(MISC)/stripped_$< + $(BISON) $(YACCFLAGS) -o $(YACCTARGET) $(MISC)/stripped_$< +# removing -f switch - avoid getting nothing when copying a file to itself + @@-$(COPY:s/-f//) $@.h $(INCCOM)/$(@:b).hxx + @@-$(COPY:s/-f//) $(@:d)/$(@:b).hxx $(INCCOM)/$(@:b).hxx +# fail on not existing .hxx + $(COMMAND_ECHO)$(TYPE) $(INCCOM)/$(@:b).hxx >& $(NULLDEV) + +$(INCCOM)/yy%.cxx : %.y + @echo "Making: " $(@:f) + $(COMMAND_ECHO)tr -d "\015" < $< > $(MISC)/stripped_$< + $(COMMAND_ECHO)$(BISON) $(YACCFLAGS) -o $(YACCTARGET) $(MISC)/stripped_$< +# removing -f switch - avoid getting nothing when copying a file to itself + @@-$(COPY:s/-f//) $@.h $(INCCOM)/$(@:b).hxx + @@-$(COPY:s/-f//) $(@:d)/$(@:b).hxx $(INCCOM)/$(@:b).hxx +# fail on not existing .hxx + $(COMMAND_ECHO)$(TYPE) $(INCCOM)/$(@:b).hxx >& $(NULLDEV) + diff --git a/solenv/inc/tg_zip.mk b/solenv/inc/tg_zip.mk new file mode 100644 index 000000000000..4468a2139397 --- /dev/null +++ b/solenv/inc/tg_zip.mk @@ -0,0 +1,162 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +####################################################### +# unroll begin + +.IF "$(GUI)"=="WNT" +command_seperator=&& +#command_seperator=^ +avoid_cvs_dir=-x "*CVS*" -x "*.svn*" +.ELSE +command_seperator=; +avoid_cvs_dir=-x "*CVS*" -x "*.svn*" + +.ENDIF + +.IF "$(ZIP$(TNR)TARGET)"!="" + +.IF "$(ZIP$(TNR)STRIPLANGUAGETAGS)" != "" +CALLXSLTPROC:=$(XSLTPROC) +.EXPORT: CALLXSLTPROC +.ENDIF + +ZIP$(TNR)EXT*=.zip +.IF "$(common_build_zip)"!="" +.IF "$(ZIP$(TNR)LIST:s/LANGDIR//)" == "$(ZIP$(TNR)LIST)" +ZIP$(TNR)TARGETN=$(COMMONBIN)/$(ZIP$(TNR)TARGET)$(ZIP$(TNR)EXT) +.ELSE +ZIP$(TNR)TARGETN=$(foreach,i,$(zip$(TNR)alllangiso) $(COMMONBIN)/$(ZIP$(TNR)TARGET)_$i$(ZIP$(TNR)EXT) ) +.ENDIF +.ELSE # "$(common_build_zip)"!="" +.IF "$(ZIP$(TNR)LIST:s/LANGDIR//)" == "$(ZIP$(TNR)LIST)" +ZIP$(TNR)TARGETN=$(BIN)/$(ZIP$(TNR)TARGET)$(ZIP$(TNR)EXT) +.ELSE +ZIP$(TNR)TARGETN=$(foreach,i,$(zip$(TNR)alllangiso) $(BIN)/$(ZIP$(TNR)TARGET)_$i$(ZIP$(TNR)EXT) ) +.ENDIF +.ENDIF # "$(common_build_zip)"!="" +ZIP$(TNR)DEPFILE=$(subst,$(COMMON_OUTDIR),$(OUTPATH) $(subst,/bin/,/misc/ $(ZIP$(TNR)TARGETN:s/$(ZIP$(TNR)EXT)/.dpzz/))) +ZIPDEPFILES+=$(ZIP$(TNR)DEPFILE) + +ZIP$(TNR)DIR*=$(ZIPDIR) +ZIP$(TNR)FLAGS*=$(ZIPFLAGS) +.IF "$(zip$(TNR)generatedlangs)"!="" +zip$(TNR)langdirs*=$(alllangiso) +.ELSE # "$(zip$(TNR)generatedlangs)"!="" +zip$(TNR)langdirs:=$(shell @-test -d {$(subst,/$(LANGDIR), $(null,$(ZIP$(TNR)DIR) . $(ZIP$(TNR)DIR)))}/ && find {$(subst,/$(LANGDIR), $(null,$(ZIP$(TNR)DIR) . $(ZIP$(TNR)DIR)))}/ -type d ! -name CVS ! -name ".svn" ! -name "." | sed "s/\.\/\///" | sed "s/\.\///" ) +.ENDIF # "$(zip$(TNR)generatedlangs)"!="" +.IF "$(ZIP$(TNR)FORCEALLLANG)"!="" +zip$(TNR)alllangiso:=$(foreach,i,$(completelangiso) $(foreach,j,$(zip$(TNR)langdirs) $(eq,$i,$j $i $(NULL)))) +.ELSE # "$(ZIP$(TNR)ALLLANG)" != "" +zip$(TNR)alllangiso*:=$(foreach,i,$(alllangiso) $(foreach,j,$(zip$(TNR)langdirs) $(eq,$i,$j $i $(NULL)))) +.ENDIF # "$(ZIP$(TNR)ALLLANG)" != "" +.ENDIF # "$(ZIP$(TNR)TARGET)"!="" + +.IF "$(ZIP$(TNR)TARGETN)"!="" + +ZIP$(TNR)TMP:=$(mktmp iii) + +$(MISC)/$(TARGET).$(PWD:f).$(ZIP$(TNR)TARGET).dpzz : $(ZIP$(TNR)TARGETN) + +.IF "$(common_build_zip)"!="" +ZIP$(TNR)HELPVAR=$(COMMONBIN)/$(ZIP$(TNR)TARGET) +.ELSE # "$(common_build_zip)"!="" +ZIP$(TNR)HELPVAR=$(BIN)/$(ZIP$(TNR)TARGET) +.ENDIF # "$(common_build_zip)"!="" + +$(ZIP$(TNR)DEPFILE) : + @echo # > $(MISC)/$(@:f) +.IF "$(common_build_zip)"!="" +.IF "$(ZIP$(TNR)DIR)" != "" + $(COMMAND_ECHO)-$(MKDIRHIER) $(ZIP$(TNR)DIR) + $(COMMAND_ECHO)$(CDD) $(subst,LANGDIR,. $(subst,/LANGDIR, $(ZIP$(TNR)DIR))) $(command_seperator) $(ZIPDEP) $(ZIP$(TNR)FLAGS) -prefix $(subst,LANGDIR,. $(subst,/LANGDIR, $(ZIP$(TNR)DIR)))/ $(subst,$(OUTPATH),$(COMMON_OUTDIR) $(subst,/misc/,/bin/ $(@:s/.dpzz/$(ZIP$(TNR)EXT)/))) $(foreach,j,$(ZIP$(TNR)LIST) "{$(subst,LANGDIR,{$(subst,$(ZIP$(TNR)TARGET)_, $(@:f:b))} $j )}") $(avoid_cvs_dir) >> $(PWD)/$(PRJ)/$(ROUT)/misc/$(@:f) +.ELSE # "$(ZIP$(TNR)DIR)" != "" + $(COMMAND_ECHO)-$(ZIPDEP) $(ZIP$(TNR)FLAGS) $(subst,$(OUTPATH),$(COMMON_OUTDIR) $(subst,/misc/,/bin/ $(@:s/.dpzz/$(ZIP$(TNR)EXT)/))) $(foreach,j,$(ZIP$(TNR)LIST) "{$(subst,LANGDIR,{$(subst,$(ZIP$(TNR)TARGET)_, $(@:f:b))} $j )}") $(avoid_cvs_dir) >> $(MISC)/$(@:f) +.ENDIF # "$(ZIP$(TNR)DIR)" != "" +.ELSE # "$(common_build_zip)"!="" +.IF "$(ZIP$(TNR)DIR)" != "" + $(COMMAND_ECHO)-$(MKDIRHIER) $(ZIP$(TNR)DIR) + $(COMMAND_ECHO)$(CDD) $(subst,LANGDIR,. $(subst,/LANGDIR, $(ZIP$(TNR)DIR))) $(command_seperator) $(ZIPDEP) $(ZIP$(TNR)FLAGS) -prefix $(subst,LANGDIR,. $(subst,/LANGDIR, $(ZIP$(TNR)DIR)))/ $(subst,/misc/,/bin/ $(@:s/.dpzz/$(ZIP$(TNR)EXT)/)) $(foreach,j,$(ZIP$(TNR)LIST) "{$(subst,LANGDIR,{$(subst,$(BIN)/$(ZIP$(TNR)TARGET)_, $(subst,/misc/,/bin/ $(@:db)))} $j )}") $(avoid_cvs_dir) >> $(PWD)/$(PRJ)/$(ROUT)/misc/$(@:f) +.ELSE # "$(ZIP$(TNR)DIR)" != "" + $(COMMAND_ECHO)-$(ZIPDEP) $(ZIP$(TNR)FLAGS) $(subst,/misc/,/bin/ $(@:s/.dpzz/$(ZIP$(TNR)EXT)/)) $(foreach,j,$(ZIP$(TNR)LIST) "{$(subst,LANGDIR,{$(subst,$(BIN)/$(ZIP$(TNR)TARGET)_, $(subst,/misc/,/bin/ $(@:db)))} $j )}") $(avoid_cvs_dir) >> $(MISC)/$(@:f) +.ENDIF # "$(ZIP$(TNR)DIR)" != "" +.ENDIF # "$(common_build_zip)"!="" + @echo $(@:n:s#\#/#) : makefile.mk >> $(MISC)/$(@:f) + + +$(ZIP$(TNR)TARGETN) : delzip $(ZIP$(TNR)DEPS) + @echo "Making: " $(@:f) + @@$(!eq,$?,$(?:s/delzip/zzz/) -$(RM) echo) $(uniq $@ $(subst,$(COMMON_OUTDIR),$(OUTPATH) $@)) + @$(eq,$?,$(?:s/delzip/zzz/) noop echo ) rebuilding zipfiles + @echo ------------------------------ $(eq,$?,$(?:s/delzip/zzz/) >&$(NULLDEV) ) +.IF "$(common_build_zip)"!="" +.IF "$(ZIP$(TNR)DIR)" != "" + @@-$(GNUCOPY) -p $@ $(ZIP$(TNR)TMP).$(ZIP$(TNR)TARGET){$(subst,$(ZIP$(TNR)HELPVAR),_ $(@:db))}$(ZIP$(TNR)EXT) + $(COMMAND_ECHO)-$(CDD) $(subst,LANGDIR,{$(subst,$(ZIP$(TNR)HELPVAR)_, $(@:db))} $(ZIP$(TNR)DIR)) $(command_seperator) zip $(ZIP_VERBOSITY) $(ZIP$(TNR)FLAGS) $(ZIP$(TNR)TMP).$(ZIP$(TNR)TARGET){$(subst,$(ZIP$(TNR)HELPVAR),_ $(@:db))}$(ZIP$(TNR)EXT) $(subst,LANGDIR_away/, $(ZIP$(TNR)LIST:s/LANGDIR/LANGDIR_away/)) -x delzip $(avoid_cvs_dir) $(CHECKZIPRESULT) + $(COMMAND_ECHO)$(IFEXIST) $(ZIP$(TNR)TMP).$(ZIP$(TNR)TARGET){$(subst,$(ZIP$(TNR)HELPVAR),_ $(@:db))}$(ZIP$(TNR)EXT) $(THEN) \ + $(PERL) -w $(SOLARENV)/bin/cleanzip.pl $(ZIP$(TNR)TMP).$(ZIP$(TNR)TARGET){$(subst,$(ZIP$(TNR)HELPVAR),_ $(@:db))}$(ZIP$(TNR)EXT) \ + $(FI) + $(COMMAND_ECHO)$(COPY) $(ZIP$(TNR)TMP).$(ZIP$(TNR)TARGET){$(subst,$(ZIP$(TNR)HELPVAR),_ $(@:db))}$(ZIP$(TNR)EXT) $@.$(INPATH) + $(COMMAND_ECHO)$(RM) $(ZIP$(TNR)TMP).$(ZIP$(TNR)TARGET){$(subst,$(ZIP$(TNR)HELPVAR),_ $(@:db))}$(ZIP$(TNR)EXT) +.ELSE # "$(ZIP$(TNR)DIR)" != "" + @@-$(GNUCOPY) -p $@ $(subst,$(COMMON_OUTDIR),$(OUTPATH) $@) + $(COMMAND_ECHO)zip $(ZIP_VERBOSITY) $(ZIP$(TNR)FLAGS) $(subst,$(COMMON_OUTDIR),$(OUTPATH) $@) $(foreach,j,$(ZIP$(TNR)LIST) $(subst,LANGDIR,{$(subst,$(ZIP$(TNR)HELPVAR)_, $(@:db))} $j )) -x delzip $(avoid_cvs_dir) $(CHECKZIPRESULT) + $(COMMAND_ECHO)$(IFEXIST) $(subst,$(COMMON_OUTDIR),$(OUTPATH) $@) $(THEN) \ + $(PERL) -w $(SOLARENV)/bin/cleanzip.pl $(subst,$(COMMON_OUTDIR),$(OUTPATH) $@) \ + $(FI) + @@-$(GNUCOPY) -p $(subst,$(COMMON_OUTDIR),$(OUTPATH) $@) $@.$(INPATH) + @-$(RM) $(subst,$(COMMON_OUTDIR),$(OUTPATH) $@) +.ENDIF # "$(ZIP$(TNR)DIR)" != "" + @@-$(RM) $@ + @$(IFEXIST) $@.$(INPATH) $(THEN) $(RENAME:s/+//) $@.$(INPATH) $@ $(FI) +# @$(IFEXIST) $@ $(THEN) $(TOUCH) $@ $(FI) # even if it's not used... +.ELSE # "$(common_build_zip)"!="" +.IF "$(ZIP$(TNR)DIR)" != "" + @@-$(GNUCOPY) -p $@ $(ZIP$(TNR)TMP).$(ZIP$(TNR)TARGET){$(subst,$(ZIP$(TNR)HELPVAR),_ $(@:db))}$(ZIP$(TNR)EXT) + $(COMMAND_ECHO)-$(CDD) $(subst,LANGDIR,{$(subst,$(ZIP$(TNR)HELPVAR)_, $(@:db))} $(ZIP$(TNR)DIR)) $(command_seperator) zip $(ZIP_VERBOSITY) $(ZIP$(TNR)FLAGS) $(ZIP$(TNR)TMP).$(ZIP$(TNR)TARGET){$(subst,$(ZIP$(TNR)HELPVAR),_ $(@:db))}$(ZIP$(TNR)EXT) $(subst,LANGDIR_away/, $(ZIP$(TNR)LIST:s/LANGDIR/LANGDIR_away/)) -x delzip $(avoid_cvs_dir) $(CHECKZIPRESULT) + $(COMMAND_ECHO)$(IFEXIST) $(ZIP$(TNR)TMP).$(ZIP$(TNR)TARGET){$(subst,$(ZIP$(TNR)HELPVAR),_ $(@:db))}$(ZIP$(TNR)EXT) $(THEN) \ + $(PERL) -w $(SOLARENV)/bin/cleanzip.pl $(ZIP$(TNR)TMP).$(ZIP$(TNR)TARGET){$(subst,$(ZIP$(TNR)HELPVAR),_ $(@:db))}$(ZIP$(TNR)EXT) \ + $(FI) + $(COMMAND_ECHO)$(COPY) $(ZIP$(TNR)TMP).$(ZIP$(TNR)TARGET){$(subst,$(ZIP$(TNR)HELPVAR),_ $(@:db))}$(ZIP$(TNR)EXT) $@ + $(COMMAND_ECHO)$(RM) $(ZIP$(TNR)TMP).$(ZIP$(TNR)TARGET){$(subst,$(ZIP$(TNR)HELPVAR),_ $(@:db))}$(ZIP$(TNR)EXT) +.ELSE # "$(ZIP$(TNR)DIR)" != "" + $(COMMAND_ECHO)zip $(ZIP_VERBOSITY) $(ZIP$(TNR)FLAGS) $@ $(foreach,j,$(ZIP$(TNR)LIST) $(subst,LANGDIR,{$(subst,$(BIN)/$(ZIP$(TNR)TARGET)_, $(@:db))} $j )) -x delzip $(avoid_cvs_dir) $(CHECKZIPRESULT) + $(COMMAND_ECHO)$(IFEXIST) $@ $(THEN) \ + $(PERL) -w $(SOLARENV)/bin/cleanzip.pl $@ \ + $(FI) +.IF "$(ZIP$(TNR)STRIPLANGUAGETAGS)" != "" + $(COMMAND_ECHO)$(IFEXIST) $@ $(THEN) \ + $(SOLARENV)/bin/striplanguagetags.sh $@ \ + $(FI) +.ENDIF +.ENDIF # "$(ZIP$(TNR)DIR)" != "" +.ENDIF # "$(common_build_zip)"!="" +.ENDIF + +# unroll end +####################################################### + diff --git a/solenv/inc/trustedinfo.manifest b/solenv/inc/trustedinfo.manifest new file mode 100644 index 000000000000..292ed2a30b3c --- /dev/null +++ b/solenv/inc/trustedinfo.manifest @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="utf-8" ?> +<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> + <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3"> + <security> + <requestedPrivileges> + <requestedExecutionLevel level="asInvoker" uiAccess="false"> + </requestedExecutionLevel> + </requestedPrivileges> + </security> +</trustInfo> +</assembly>
\ No newline at end of file diff --git a/solenv/inc/udkversion.mk b/solenv/inc/udkversion.mk new file mode 100644 index 000000000000..18fa3cf45d77 --- /dev/null +++ b/solenv/inc/udkversion.mk @@ -0,0 +1,33 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +# major +UDK_MAJOR=3 +# minor +UDK_MINOR=2 +# micro +UDK_MICRO=7 diff --git a/solenv/inc/unitools.mk b/solenv/inc/unitools.mk new file mode 100644 index 000000000000..c07e5c36f6cc --- /dev/null +++ b/solenv/inc/unitools.mk @@ -0,0 +1,175 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +# Common tools - move this to the end / consolidate +TRANSEX*=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/transex3 +ULFEX*=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/ulfex +XMLEX*=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/xmlex +XRMEX*=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/xrmex +CFGEX*=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/cfgex +AUTODOC*=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/autodoc +LOCALIZE_SL*=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/localize_sl +GSICHECK*=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/gsicheck + +.IF "$(SYSTEM_LIBXSLT)"!="YES" +XSLTPROC*=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/xsltproc +.ELSE # "$(SYSTEM_LIBXSLT)"!="YES" +XSLTPROC*=$(AUGMENT_LIBRARY_PATH) xsltproc +.ENDIF # "$(SYSTEM_LIBXSLT)"!="YES" + +ULFCONV*=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/ulfconv + +MAKEDEPEND*=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/makedepend + +SCP_CHECK_TOOL:=checkscp$E + +# iz32110: Calling a cygwin application from a non-cygwin shell requires +# backslashes to be escaped by another backslash: EES .. extra escape slash +EES:= + +# iz29675: 4nt must not quote special characters, but tcsh has to. +# *NIX shells needs to use " quotes, but 4nt must not. +# EMQ .. extra meta quote (\\ at line end is \) +# USQ .. unix shell quote +EMQ:=\\ +USQ:=" + +NULLDEV:=/dev/null + + +# iz29609 helpmacro to check if file exists +IFEXIST:=if [ -f +IFNOTEXIST:= if ! test -f +THEN:= ] ; then +FI:= ; fi +PIPEERROR=2>&1 | + +# iz31658 +CHECKZIPRESULT:=|| ret=$$?; if [[ "$$ret" != "12" && "$$ret" != "1" ]] ; then exit $$ret ; fi && echo "Nothing to update for zip" + +# Platform specific +.IF "$(GUI)"=="WNT" +AWK*=awk +SORT*=sort +SED*=sed +GNUPATCH*=patch +# change drive and directory +CDD=cd +# expect cygwin tools to exist +COPY*=cp +COPYRECURSE=-r +DEREFERENCE=-L +COPYUPDATE=-u +ECHON=echo -n +ECHONL=echo +FIND*=find +.IF "$(OS_FOR_BUILD)"=="WNT" +FLIPCMD*=$(PERL) $(SOLARENV)/bin/slfl.pl +.ENDIF +GNUCOPY*=cp +GNUMAKE*=make +GREP*=grep +LS*=ls +PERL*:=perl +.EXPORT : PERL +RENAME*=mv +TOUCH*=touch +TYPE*=cat +DUMPBIN*=dumpbin + +.ELIF "$(GUI)"=="UNX" # "$(GUI)"=="WNT" +SED*=sed +SORT*=sort +PERL*=perl +.EXPORT : PERL +TYPE=cat +CDD=cd +COPY=cp -f +.IF "$(OS_FOR_BUILD)"=="MACOSX" || "$(OS_FOR_BUILD)"=="NETBSD" || "$(OS_FOR_BUILD)"=="OPENBSD" || \ + "$(OS_FOR_BUILD)"=="DRAGONFLY" +COPYRECURSE=-R +.ELSE # Not BSD based ones: +COPYRECURSE=-r +.ENDIF +.IF "$(OS)"=="SOLARIS" +AWK*=nawk +GNUCOPY*=/usr/gnu/bin/cp +GNUPATCH*=/usr/gnu/bin/patch +GNUTAR*=/usr/sfw/bin/gtar +GNUMAKE=/usr/sfw/bin/make +DEREFERENCE= +.ELIF "$(OS)"=="AIX" +AWK*=/opt/freeware/bin/awk +GNUCOPY*=cp +GNUPATCH*=/opt/freeware/bin/patch +GNUTAR*=gtar +DEREFERENCE=-L +.ELSE # "$(OS)"=="SOLARIS" +AWK*=awk +# this is not true, as BSD does not default to a GNU cp, but BSD cp +# so in dmake makefiles one should be restricted to use the subset +# of features that both BSD and GNU make support. +# as the GNU make build system requires GNUCOPY to really be a GNU copy +# we work around that for now by not setting GNUCOPY in sdev300.ini +# for fbsd for now, but for all other platforms it is set. +GNUCOPY*=cp +GNUPATCH*=patch +DEREFERENCE=-L +.ENDIF # "$(OS)"=="SOLARIS" +.IF "$(OS)"=="LINUX" || "$(OS)"=="MACOSX" +GNUMAKE*=make +.ELSE # "$(OS)"=="LINUX" || "$(OS)"=="MACOSX" +GNUMAKE*=gmake +.ENDIF # "$(OS)"=="LINUX" || "$(OS)"=="MACOSX" +TOUCH=touch +RENAME=mv +GREP=grep +FIND=find +LS=ls +ECHON=echo -n +ECHONL=echo +.ENDIF # "$(GUI)"=="UNX" + +# (Global) Set if not set before +DELAY*=sleep +MKDIR*=mkdir$E +MKDIRHIER*=mkdir$E -p +RMDIR*=rmdir +XARGS*=xargs +GNUTAR*:=tar + +RM+=$(RMFLAGS) +ADJUSTVISIBILITY*=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/adjustvisibility +CONVERT*:=$(PERL) $(SOLARENV)/bin/leconvert.pl +EXECTEST := $(PERL) -w $(SOLARENV)/bin/exectest.pl +GCCINSTLIB:=$(PERL) -w $(SOLARENV)/bin/gccinstlib.pl + +# The dmake $(PWD) apparantly produces paths with symlinks resolved, while the +# bash pwd command by default produces paths with unresolved symlinks, so that +# computing PATH_IN_MODULE in settings.mk would fail without the -P flag to the +# bash pwd command: +PWDFLAGS = -P diff --git a/solenv/inc/unx.mk b/solenv/inc/unx.mk new file mode 100644 index 000000000000..74ed8d5eb721 --- /dev/null +++ b/solenv/inc/unx.mk @@ -0,0 +1,182 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +# --- Unix-Environment --------------------------------------- +# Used if "$(GUI)" == "UNX" + + +# Dieses Define gilt fuer alle WNT- Plattformen +# fuer Compiler, wo kein Java unterstuetzt wird, muss dies ge'undeft werden +#JAVADEF=-DSOLAR_JAVA + +# --- Compiler --- + +.IF "$(OS)$(CPU)$(COMEX)" == "SOLARISS4" +.INCLUDE : unxsols4.mk +.ENDIF + +.IF "$(OS)$(CPU)$(COMEX)" == "SOLARISI4" +.INCLUDE : unxsoli4.mk +.ENDIF + +.IF "$(OS)$(CPU)$(COMEX)" == "SOLARISU4" +.INCLUDE : unxsolu4.mk +.ENDIF + +.IF "$(COM)$(OS)$(CPU)" == "GCCSOLARISS" +.INCLUDE : unxsogs.mk +.ENDIF + +.IF "$(COM)$(OS)$(CPU)" == "GCCSOLARISI" +.INCLUDE : unxsogi.mk +.ENDIF + +.IF "$(COM)$(OS)$(CPU)" == "GCCLINUXS" +.INCLUDE : unxlngs.mk +.ENDIF + +.IF "$(COM)$(OS)$(CPU)" == "GCCLINUXI" +.INCLUDE : unxlngi.mk +.ENDIF + +.IF "$(COM)$(OS)$(CPU)" == "GCCLINUXX" +.INCLUDE : unxlngx.mk +.ENDIF + +.IF "$(COM)$(OS)$(CPU)$(CPUNAME)" == "GCCLINUXPPOWERPC" +.INCLUDE : unxlngppc.mk +.ENDIF + +.IF "$(COM)$(OS)$(CPU)$(CPUNAME)" == "GCCLINUXPPOWERPC64" +.INCLUDE : unxlngppc64.mk +.ENDIF + +.IF "$(COM)$(OS)$(CPU)" == "GCCAIXP" +.INCLUDE : unxaigppc.mk +.ENDIF + +.IF "$(COM)$(OS)$(CPU)$(CPUNAME)" == "GCCLINUX3S390" +.INCLUDE : unxlngs390.mk +.ENDIF + +.IF "$(COM)$(OS)$(CPU)$(CPUNAME)" == "GCCLINUX3S390X" +.INCLUDE : unxlngs390x.mk +.ENDIF + +.IF "$(COM)$(OS)$(CPU)" == "GCCLINUXR" +.INCLUDE : unxlngr.mk +.ENDIF + +.IF "$(COM)$(OS)$(CPU)" == "GCCANDROIDR" +.INCLUDE : unxandr.mk +.ENDIF + +.IF "$(COM)$(OS)$(CPU)" == "GCCLINUXA" +.INCLUDE : unxlnga.mk +.ENDIF + +.IF "$(COM)$(OS)" == "GCCNETBSD" +.INCLUDE : unxnbsd.mk +.ENDIF + +.IF "$(COM)$(OS)" == "GCCFREEBSD" +.INCLUDE : unxfbsd.mk +.ENDIF + +.IF "$(COM)$(OS)" == "GCCOPENBSD" +.INCLUDE : unxobsd.mk +.ENDIF + +.IF "$(COM)$(OS)" == "GCCDRAGONFLY" +.INCLUDE : unxdfly.mk +.ENDIF + +.IF "$(COM)$(OS)$(CPU)" == "GCCMACOSXP" +.INCLUDE : unxmacxp.mk +.ENDIF + +.IF "$(COM)$(OS)$(CPU)" == "GCCMACOSXI" +.INCLUDE : unxmacxi.mk +.ENDIF + +.IF "$(COM)$(OS)$(CPU)" == "GCCIOSR" +.INCLUDE : unxiosr.mk +.ENDIF + +.IF "$(COM)$(OS)$(CPU)" == "GCCLINUXM" +.INCLUDE : unxlngmips.mk +.ENDIF + +.IF "$(COM)$(OS)$(CPU)" == "GCCLINUX6" +.INCLUDE : unxlngm68k.mk +.ENDIF + +.IF "$(COM)$(OS)$(CPU)" == "GCCLINUXH" +.INCLUDE : unxlnghppa.mk +.ENDIF + +.IF "$(COM)$(OS)$(CPU)" == "GCCLINUXL" +.INCLUDE : unxlngaxp.mk +.ENDIF + +# --- general *ix settings --- +HC=hc +HCFLAGS= +PATH_SEPERATOR*=: +CDEFS+=-D__DMAKE + +CDEFS+=-DUNIX + +# fuer linux: bison -y -d +YACC*=yacc +YACCFLAGS*=-d -t + +EXECPOST= +SCPPOST=.ins +DLLDEST=$(LB) +SOLARSHAREDBIN=$(SOLARLIBDIR_FOR_BUILD) +SONAME_SWITCH*=-h + +.IF "$(UNIXVERSIONNAMES)"!="" +.IF "$(OS)"!="IOS" +DLLPOST!:=$(DLLPOST).$($(UNIXVERSIONNAMES)_MAJOR) +.ENDIF +.ENDIF # "$(UNIXVERSIONNAMES)"!="" + +# enable building/linking KDE-dependent code in both OOo and SO build environment +.IF "$(ENABLE_KDE)" != "" +.IF "$(KDE_ROOT)"!="" +KDE_CFLAGS:=-I$(KDE_ROOT)/include -DQT_CLEAN_NAMESPACE +KDE_LIBS:=-lkdeui -lkdecore -lqt-mt +SOLARLIB+=-L$(KDE_ROOT)/lib +.IF "$(OS)$(CPU)" == "LINUXX" +SOLARLIB+=-L$(KDE_ROOT)/lib64 +.ENDIF # "$(OS)$(CPU)" == "LINUXX" +.ENDIF # "$(KDE_ROOT)"!="" +.ENDIF # "$(ENABLE_KDE)" != "" + +OOO_LIBRARY_PATH_VAR *= LD_LIBRARY_PATH diff --git a/solenv/inc/unxaigppc.mk b/solenv/inc/unxaigppc.mk new file mode 100644 index 000000000000..240aa9c03b09 --- /dev/null +++ b/solenv/inc/unxaigppc.mk @@ -0,0 +1,68 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +# mk file for Unix AIX PowerPC using GCC, please make generic modifications to unxlng.mk + +LIBSALCPPRT*=-Wl,-bnogc -lsalcpprt -Wl,-bgc + +.INCLUDE : unxlngppc.mk + +CDEFS+=-D_THREAD_SAFE + +.INCLUDE : productversion.mk + +COLON=":" +URELIBDIRS=$(subst,$(SPACECHAR),$(COLON) $(foreach,i,{$(PRODUCTLIST)} /opt/$i$(PRODUCTVERSIONSHORT)/basis-link/ure-link/lib)) +UREBINDIRS=$(subst,$(SPACECHAR),$(COLON) $(foreach,i,{$(PRODUCTLIST)} /opt/$i$(PRODUCTVERSIONSHORT)/basis-link/ure-link/bin)) +BASISPROGRAMDIRS=$(subst,$(SPACECHAR),$(COLON) $(foreach,i,{$(PRODUCTLIST)} /opt/$i$(PRODUCTVERSIONSHORT)/basis-link/program)) +BRANDPROGRAMDIRS=$(subst,$(SPACECHAR),$(COLON) $(foreach,i,{$(PRODUCTLIST)} /opt/$i$(PRODUCTVERSIONSHORT)/program)) + +LINKFLAGSRUNPATH_URELIB:=-Wl,-blibpath:$(URELIBDIRS):/usr/lib:/lib +LINKFLAGSRUNPATH_UREBIN:=-Wl,-blibpath:$(URELIBDIRS):$(UREBINDIRS):/usr/lib:/lib +LINKFLAGSRUNPATH_OOO:=-Wl,-blibpath:$(BASISPROGRAMDIRS):$(URELIBDIRS):/usr/lib:/lib +LINKFLAGSRUNPATH_SDK:=-Wl,-blibpath:$(URELIBDIRS):/usr/lib:/lib +LINKFLAGSRUNPATH_BRAND:=-Wl,-blibpath:$(BRANDPROGRAMDIRS):$(BASISPROGRAMDIRS):$(URELIBDIRS):/usr/lib:/lib +LINKFLAGSRUNPATH_BOXT:=-Wl,-blibpath:$(BASISPROGRAMDIRS):/usr/lib:/lib +LINKFLAGS:=-Wl,-brtl -Wl,-bnolibpath + +LINKFLAGSAPPGUI:= +LINKFLAGSAPPCUI:= + +LINKVERSIONMAPFLAG:= + +SONAME_SWITCH:= + +STDLIBGUIMT:=-ldl -lpthread -lm +STDLIBCUIMT:=-ldl -lpthread -lm +STDSHLGUIMT:=-ldl -lpthread -lm +STDSHLCUIMT:=-ldl -lpthread -lm +X11LINK_DYNAMIC:=-lXext -lX11 + + +CFLAGSDEBUG:= + +OOO_LIBRARY_PATH_VAR=LIBPATH diff --git a/solenv/inc/unxaixp.mk b/solenv/inc/unxaixp.mk new file mode 100644 index 000000000000..be35f438378d --- /dev/null +++ b/solenv/inc/unxaixp.mk @@ -0,0 +1,109 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +# mak file fuer unxaixp +ASM= +AFLAGS= + +ARCH_FLAGS*= + +CXX= xlC_r +CC= xlc_r +CFLAGS= -c -qlanglvl=extended -qchars=signed +CDEFS+= -D_PTHREADS +CDEFS+= -D_STD_NO_NAMESPACE -D_VOS_NO_NAMESPACE -D_UNO_NO_NAMESPACE +CFLAGSCC=$(ARCH_FLAGS) +CFLAGSCXX=$(ARCH_FLAGS) +CFLAGSOBJGUIMT= +CFLAGSOBJCUIMT= +CFLAGSSLOGUIMT= +CFLAGSSLOCUIMT= +CFLAGSPROF= +CFLAGSDEBUG= +CFLAGSDBGUTIL= +CFLAGSOPT= -O +CFLAGSNOOPT= +CFLAGSOUTOBJ= -o + +STATIC= # -Bstatic +DYNAMIC= # -Bdynamic + +# +# Zu den Linkflags von shared Libraries: +# +# -G Erzeugen eines Shared-Objects +# -brtl aktiviert Runtime-Linking, wird von -G mitgesetzt +# -bsymbolc loest Symbole innerhalb einer Library zur Linkzeit auf +# -p0 ??? (ENOMANPAGESINSTALLABLEFROMCD) +# -bnoquiet verbose +# +LINK= +LINKFLAGS= +LINKFLAGSAPPCUI= xlC_r -qlanglvl=extended -qchars=signed -brtl -bnolibpath +LINKFLAGSAPPGUI= xlC_r -qlanglvl=extended -qchars=signed -brtl -bnolibpath +LINKFLAGSSHLCUI= makeC++SharedLib_r -G -bsymbolic -bdynamic -bnolibpath -p0 +LINKFLAGSSHLGUI= makeC++SharedLib_r -G -bsymbolic -bdynamic -bnolibpath -p0 +LINKFLAGSTACK= +LINKFLAGSPROF= +LINKFLAGSDEBUG= +LINKFLAGSOPT= + +# Reihenfolge der libs NICHT egal! +STDOBJGUI= +STDSLOGUI= +STDOBJCUI= +STDSLOCUI= +# application +STDLIBGUIMT= # -lX11 -ldl +STDLIBCUIMT= # -lX11 -ldl +# shared library +STDSHLGUIMT= -lX11 -ldl +STDSHLCUIMT= -lX11 -ldl +THREADLIB= + +LIBMGR= ar +LIBFLAGS= -r +# LIBEXT= .so + +IMPLIB= +IMPLIBFLAGS= + +MAPSYM= +MAPSYMFLAGS= + +RC=irc +RCFLAGS= -fo$@ $(RCFILES) +RCLINK= +RCLINKFLAGS= +RCSETVERSION= + +DLLPRE= lib +DLLPOST= .so + + +LDUMP= cppfilt /b /n /o /p + diff --git a/solenv/inc/unxandr.mk b/solenv/inc/unxandr.mk new file mode 100644 index 000000000000..070db53af6c9 --- /dev/null +++ b/solenv/inc/unxandr.mk @@ -0,0 +1,33 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +# mk file for Android Linux ARM using GCC, please make generic modifications to unxgcc.mk + +CDEFAULTOPT=-Os +.INCLUDE : unxgcc.mk +CDEFS+=-DARM32 +CFLAGS+=-fno-omit-frame-pointer diff --git a/solenv/inc/unxdfly.mk b/solenv/inc/unxdfly.mk new file mode 100644 index 000000000000..55b331630b9f --- /dev/null +++ b/solenv/inc/unxdfly.mk @@ -0,0 +1,45 @@ +# Version: MPL 1.1 / GPLv3+ / LGPLv3+ +# +# The contents of this file are subject to the Mozilla Public License Version +# 1.1 (the "License"); you may not use this file except in compliance with +# the License or as specified alternatively below. You may obtain a copy of +# the License at http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS IS" basis, +# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +# for the specific language governing rights and limitations under the +# License. +# +# The Initial Developer of the Original Code is +# Franois Tigeot <ftigeot@wolfpond.org> +# Portions created by the Initial Developer are Copyright (C) 2011 the +# Initial Developer. All Rights Reserved. +# +# Contributor(s): +# +# +# Alternatively, the contents of this file may be used under the terms of +# either the GNU General Public License Version 3 or later (the "GPLv3+"), or +# the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"), +# in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable +# instead of those above. + +# Makefile for DragonFly BSD + +# arch specific defines +.IF "$(CPUNAME)" == "INTEL" +CDEFS+=-DX86 +.ENDIF + +.IF "$(CPUNAME)" == "X86_64" +CDEFS+=-DX86_64 +BUILD64=1 +.ENDIF + +.INCLUDE : unxgcc.mk + +# Flags for disabling exception handling +CFLAGS_NO_EXCEPTIONS=-fno-exceptions + +# default linker flags +LINKFLAGSDEFS:= diff --git a/solenv/inc/unxfbsd.mk b/solenv/inc/unxfbsd.mk new file mode 100644 index 000000000000..f751384c4bb8 --- /dev/null +++ b/solenv/inc/unxfbsd.mk @@ -0,0 +1,204 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +# Makefile for FreeBSD. + +ASM= +AFLAGS= + +SOLAR_JAVA*= +JAVAFLAGSDEBUG=-g + +# Include arch specific makefile. +.IF "$(CPUNAME)" == "INTEL" +.INCLUDE : unxfbsdi.mk +.ENDIF +.IF "$(CPUNAME)" == "X86_64" +.INCLUDE : unxfbsdx.mk +.ENDIF + +# filter for supressing verbose messages from linker +#not needed at the moment +#LINKOUTPUT_FILTER=" |& $(SOLARENV)/bin/msg_filter" + +# _PTHREADS is needed for the stl +CDEFS+=$(PTHREAD_CFLAGS) -D_PTHREADS -D_REENTRANT -DNEW_SOLAR -D_USE_NAMESPACE=1 + +# enable visibility define in "sal/types.h" +.IF "$(HAVE_GCC_VISIBILITY_FEATURE)" == "TRUE" +CDEFS += -DHAVE_GCC_VISIBILITY_FEATURE +.ENDIF # "$(HAVE_GCC_VISIBILITY_FEATURE)" == "TRUE" + +# this is a platform with JAVA support +.IF "$(SOLAR_JAVA)"!="" +JAVADEF=-DSOLAR_JAVA +.IF "$(debug)"=="" +JAVA_RUNTIME=-ljava +.ELSE +JAVA_RUNTIME=-ljava_g +.ENDIF +.ENDIF + +# name of C++ Compiler +CXX*=g++ +# name of C Compiler +CC*=gcc +.IF "$(SYSBASE)"!="" +CFLAGS_SYSBASE:=-isystem $(SYSBASE)/usr/include +CXX+:=$(CFLAGS_SYSBASE) +CC+:=$(CFLAGS_SYSBASE) +.ENDIF # "$(SYSBASE)"!="" +CFLAGS+=-fmessage-length=0 -c + +# flags to enable build with symbols +CFLAGSENABLESYMBOLS=-g + +# flags for the C++ Compiler +CFLAGSCC= -pipe $(ARCH_FLAGS) +# Flags for enabling exception handling +CFLAGSEXCEPTIONS=-fexceptions -fno-enforce-eh-specs +# Flags for disabling exception handling +CFLAGS_NO_EXCEPTIONS=-fno-exceptions + +# -fpermissive should be removed as soon as possible +CFLAGSCXX= -pipe $(ARCH_FLAGS) +PICSWITCH:=-fpic +.IF "$(HAVE_GCC_VISIBILITY_FEATURE)" == "TRUE" +CFLAGSCXX += -fvisibility-inlines-hidden +.ENDIF # "$(HAVE_GCC_VISIBILITY_FEATURE)" == "TRUE" + +# Compiler flags for compiling static object in multi threaded environment with graphical user interface +CFLAGSOBJGUIMT= +# Compiler flags for compiling static object in multi threaded environment with character user interface +CFLAGSOBJCUIMT= +# Compiler flags for compiling shared object in multi threaded environment with graphical user interface +CFLAGSSLOGUIMT=$(PICSWITCH) +# Compiler flags for compiling shared object in multi threaded environment with character user interface +CFLAGSSLOCUIMT=$(PICSWITCH) +# Compiler flags for profiling +CFLAGSPROF= +# Compiler flags for debugging +CFLAGSDEBUG=-g +CFLAGSDBGUTIL= +# Compiler flags for disabling optimizations +CFLAGSNOOPT=-O0 +# Compiler flags for describing the output path +CFLAGSOUTOBJ=-o + +# -Wshadow does not work for C with nested uses of pthread_cleanup_push: +CFLAGSWARNCC=-Wall -Wextra -Wendif-labels +CFLAGSWARNCXX=$(CFLAGSWARNCC) -Wshadow -Wno-ctor-dtor-privacy \ + -Wno-non-virtual-dtor +CFLAGSWALLCC=$(CFLAGSWARNCC) +CFLAGSWALLCXX=$(CFLAGSWARNCXX) +CFLAGSWERRCC=-Werror + +# Once all modules on this platform compile without warnings, set +# COMPILER_WARN_ERRORS=TRUE here instead of setting MODULES_WITH_WARNINGS (see +# settings.mk): Currently this is not tested on FreeBSD +#MODULES_WITH_WARNINGS := + +# switches for dynamic and static linking +STATIC = -Wl,-Bstatic +DYNAMIC = -Wl,-Bdynamic + +# name of linker +LINK*=$(CXX) +LINKC*=$(CC) + +# default linker flags +LINKFLAGSDEFS*=#-Wl,-z,defs +LINKFLAGSRUNPATH_URELIB=-Wl,-rpath,\''$$ORIGIN'\' +LINKFLAGSRUNPATH_UREBIN=-Wl,-rpath,\''$$ORIGIN/../lib:$$ORIGIN'\' + #TODO: drop $ORIGIN once no URE executable is also shipped in OOo +LINKFLAGSRUNPATH_OOO=-Wl,-rpath,\''$$ORIGIN:$$ORIGIN/../ure-link/lib'\' +LINKFLAGSRUNPATH_SDK=-Wl,-rpath,\''$$ORIGIN/../../ure-link/lib'\' +LINKFLAGSRUNPATH_BRAND=-Wl,-rpath,\''$$ORIGIN:$$ORIGIN/../basis-link/program:$$ORIGIN/../basis-link/ure-link/lib'\' +LINKFLAGSRUNPATH_OXT= +LINKFLAGSRUNPATH_NONE= +LINKFLAGS=-Wl,-z,combreloc $(LINKFLAGSDEFS) + +# linker flags for linking applications +LINKFLAGSAPPGUI= -Wl,-export-dynamic +LINKFLAGSAPPCUI= -Wl,-export-dynamic + +# linker flags for linking shared libraries +LINKFLAGSSHLGUI= -shared +LINKFLAGSSHLCUI= -shared + +LINKFLAGSTACK= +LINKFLAGSPROF= +LINKFLAGSDEBUG=-g +LINKFLAGSOPT= + +# linker flags for optimization (symbol hashtable) +# for now, applied to symbol scoped libraries, only +LINKFLAGSOPTIMIZE*=-Wl,-O1 +LINKVERSIONMAPFLAG=$(LINKFLAGSOPTIMIZE) -Wl,--version-script + +SONAME_SWITCH=-Wl,-h + +# Sequence of libs does matter ! + +STDLIBCPP=-lstdc++ + +# default objectfilenames to link +STDOBJVCL=$(L)/salmain.o +STDOBJGUI= +STDSLOGUI= +STDOBJCUI= +STDSLOCUI= + +# libraries for linking applications +STDLIBGUIMT=-lX11 $(PTHREAD_LIBS) -lm +STDLIBCUIMT=$(PTHREAD_LIBS) -lm +# libraries for linking shared libraries +STDSHLGUIMT=-lX11 -lXext $(PTHREAD_LIBS) -lm +STDSHLCUIMT=$(PTHREAD_LIBS) -lm + +LIBSALCPPRT*=-Wl,--whole-archive -lsalcpprt -Wl,--no-whole-archive + +# name of library manager +LIBMGR=ar +LIBFLAGS=-r + +# tool for generating import libraries +IMPLIB= +IMPLIBFLAGS= + +MAPSYM= +MAPSYMFLAGS= + +RC=irc +RCFLAGS=-fo$@ $(RCFILES) +RCLINK= +RCLINKFLAGS= +RCSETVERSION= + +# platform specific identifier for shared libs +DLLPRE=lib +DLLPOST=.so diff --git a/solenv/inc/unxfbsdi.mk b/solenv/inc/unxfbsdi.mk new file mode 100644 index 000000000000..c01fc21fbb2d --- /dev/null +++ b/solenv/inc/unxfbsdi.mk @@ -0,0 +1,43 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +# +# FreBSD/i386 specific defines +# + +CDEFS+=-DX86 + +# architecture dependent flags for the C and C++ compiler that can be changed by +# exporting the variable ARCH_FLAGS="..." in the shell, which is used to start build +ARCH_FLAGS*=-mtune=pentiumpro + +# Compiler flags for enabling optimizations +.IF "$(PRODUCT)"!="" +CFLAGSOPT=-Os -fno-strict-aliasing # optimizing for products +.ELSE # "$(PRODUCT)"!="" +CFLAGSOPT= # no optimizing for non products +.ENDIF # "$(PRODUCT)"!="" diff --git a/solenv/inc/unxfbsdx.mk b/solenv/inc/unxfbsdx.mk new file mode 100644 index 000000000000..6fb0641d94d3 --- /dev/null +++ b/solenv/inc/unxfbsdx.mk @@ -0,0 +1,47 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +# +# FreBSD/amd64 specific defines +# + +CDEFS+=-DX86_64 + +# architecture dependent flags for the C and C++ compiler that can be changed by +# exporting the variable ARCH_FLAGS="..." in the shell, which is used to start build +.IF "$(CPUNAME)" == "X86_64" +ARCH_FLAGS*= +.ENDIF + +# Compiler flags for enabling optimizations +.IF "$(PRODUCT)"!="" +CFLAGSOPT=-O2 -fno-strict-aliasing # optimizing for products +.ELSE # "$(PRODUCT)"!="" +CFLAGSOPT= # no optimizing for non products +.ENDIF # "$(PRODUCT)"!="" + +BUILD64=1 diff --git a/solenv/inc/unxgcc.mk b/solenv/inc/unxgcc.mk new file mode 100644 index 000000000000..752de80c7b36 --- /dev/null +++ b/solenv/inc/unxgcc.mk @@ -0,0 +1,266 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +# generic mk file for gcc on unix systems + +ASM*= +AFLAGS*= +SOLAR_JAVA*= +# default optimization level for product code +CDEFAULTOPT*=-O2 +# architecture dependent flags for the C and C++ compiler that can be changed by +# exporting the variable ARCH_FLAGS="..." in the shell, which is used to start build +ARCH_FLAGS*= +# position independent code switch +PICSWITCH*:=-fpic +JAVAFLAGSDEBUG=-g + +# filter for supressing verbose messages from linker +#not needed at the moment +#LINKOUTPUT_FILTER=" |& $(SOLARENV)/bin/msg_filter" + +# _PTHREADS is needed for the stl +CDEFS+=-D_PTHREADS -D_REENTRANT -DNEW_SOLAR -D_USE_NAMESPACE=1 + +# enable visibility define in "sal/types.h" +.IF "$(HAVE_GCC_VISIBILITY_FEATURE)" == "TRUE" +CDEFS += -DHAVE_GCC_VISIBILITY_FEATURE +.ENDIF # "$(HAVE_GCC_VISIBILITY_FEATURE)" == "TRUE" + +# this is a platform with JAVA support +.IF "$(SOLAR_JAVA)"!="" +JAVADEF=-DSOLAR_JAVA +.IF "$(debug)"=="" +JAVA_RUNTIME=-ljava +.ELSE +JAVA_RUNTIME=-ljava_g +.ENDIF +.ENDIF + +# name of C++ Compiler +CXX*=g++ +# name of C Compiler +CC*=gcc +.IF "$(SYSBASE)"!="" +CFLAGS_SYSBASE:=-isystem $(SYSBASE)$/usr$/include +CXX+:=$(CFLAGS_SYSBASE) +CC+:=$(CFLAGS_SYSBASE) +.ENDIF # "$(SYSBASE)"!="" +CFLAGS+=-fmessage-length=0 -c + +# flags to enable build with symbols +CFLAGSENABLESYMBOLS=-g + +# flags for the C++ Compiler +CFLAGSCC= -pipe $(ARCH_FLAGS) +# Flags for enabling exception handling +CFLAGSEXCEPTIONS=-fexceptions -fno-enforce-eh-specs +# Flags for disabling exception handling +CFLAGS_NO_EXCEPTIONS=-fno-exceptions + +# -fpermissive should be removed as soon as possible +CFLAGSCXX= -pipe $(ARCH_FLAGS) +.IF "$(HAVE_GCC_VISIBILITY_FEATURE)" == "TRUE" && "$(HAVE_GCC_VISIBILITY_BROKEN)" != "TRUE" +CFLAGSCXX+=-fvisibility-inlines-hidden +.ENDIF # "$(HAVE_GCC_VISIBILITY_FEATURE)" == "TRUE" +.IF "$(HAVE_CXX0X)" == "TRUE" +CFLAGSCXX+=-std=c++0x -Wno-deprecated-declarations +.ENDIF # "$(HAVE_CXX0X)" == "TRUE" + +CFLAGS_CREATE_PCH=-x c++-header -I$(INCPCH) -DPRECOMPILED_HEADERS +CFLAGS_USE_PCH=-I$(SLO)$/pch -DPRECOMPILED_HEADERS -Winvalid-pch +CFLAGS_USE_EXCEPTIONS_PCH=-I$(SLO)$/pch_ex -DPRECOMPILED_HEADERS -Winvalid-pch + +# Compiler flags for compiling static object in multi threaded environment with graphical user interface +CFLAGSOBJGUIMT= +# Compiler flags for compiling static object in multi threaded environment with character user interface +CFLAGSOBJCUIMT= +# Compiler flags for compiling shared object in multi threaded environment with graphical user interface +CFLAGSSLOGUIMT=$(PICSWITCH) +# Compiler flags for compiling shared object in multi threaded environment with character user interface +CFLAGSSLOCUIMT=$(PICSWITCH) +# Compiler flags for profiling +CFLAGSPROF= +# Compiler flags for debugging +CFLAGSDEBUG=-g +CFLAGSDBGUTIL= + +GCCNUMVERSION_CMD=-dumpversion $(PIPEERROR) $(AWK) -v num=true -f $(SOLARENV)/bin/getcompver.awk +GCCNUMVER:=$(shell @-$(CXX) $(GCCNUMVERSION_CMD)) + +# Compiler flags for enabling optimizations +.IF "$(PRODUCT)"!="" +CFLAGSOPT=$(CDEFAULTOPT) # optimizing for products +.IF "$(GCCNUMVER)" <= "000400050000" +#At least SLED 10.2 gcc 4.3 overly agressively optimizes +#uno::Sequence into junk, so only strict-alias on compiler +#later than 4.5.1 +CFLAGSOPT+=-fno-strict-aliasing +.ENDIF +.ELSE # "$(PRODUCT)"!="" +CFLAGSOPT= # no optimizing for non products +.ENDIF # "$(PRODUCT)"!="" + +# Compiler flags for disabling optimizations +CFLAGSNOOPT=-O0 +# Compiler flags for describing the output path +CFLAGSOUTOBJ=-o + +# -Wshadow does not work for C with nested uses of pthread_cleanup_push: +CFLAGSWARNCC=-Wall -Wextra -Wendif-labels +CFLAGSWARNCXX=$(CFLAGSWARNCC) -Wshadow -Wno-ctor-dtor-privacy \ + -Wno-non-virtual-dtor -Woverloaded-virtual +CFLAGSWALLCC=$(CFLAGSWARNCC) +CFLAGSWALLCXX=$(CFLAGSWARNCXX) +CFLAGSWERRCC=-Werror + +COMPILER_WARN_ERRORS=TRUE + +# switches for dynamic and static linking +STATIC = -Wl,-Bstatic +DYNAMIC = -Wl,-Bdynamic + +# name of linker +LINK*=$(CXX) +LINKC*=$(CC) + +# default linker flags +.IF "$(SYSBASE)"!="" +LINKFLAGS_SYSBASE:=-Wl,--sysroot=$(SYSBASE) +.ENDIF # "$(SYSBASE)"!="" +# +# The DT RPATH value is used first, before any other path, specifically before +# the path defined in the LD_LIBRARY_PATH environment variable. This is +# problematic since it does not allow the user to overwrite the value. +# Therefore DT_RPATH is deprecated. The introduction of the new variant, +# DT_RUNPATH, corrects this oversight by requiring the value is used after the +# path in LD_LIBRARY_PATH. +# +# The linker option --enable-new-dtags must be used to also add DT_RUNPATH +# entry. This will cause both, DT_RPATH and DT_RUNPATH entries, to be created +# +LINKFLAGSDEFS*=-Wl,-z,defs +LINKFLAGSRUNPATH_URELIB=-Wl,-rpath,\''$$ORIGIN'\',--enable-new-dtags +LINKFLAGSRUNPATH_UREBIN=-Wl,-rpath,\''$$ORIGIN/../lib:$$ORIGIN'\',--enable-new-dtags + #TODO: drop $ORIGIN once no URE executable is also shipped in OOo +LINKFLAGSRUNPATH_OOO=-Wl,-rpath,\''$$ORIGIN:$$ORIGIN/../ure-link/lib'\',--enable-new-dtags +LINKFLAGSRUNPATH_SDK=-Wl,-rpath,\''$$ORIGIN/../../ure-link/lib'\',--enable-new-dtags +LINKFLAGSRUNPATH_BRAND=-Wl,-rpath,\''$$ORIGIN:$$ORIGIN/../basis-link/program:$$ORIGIN/../basis-link/ure-link/lib'\',--enable-new-dtags +LINKFLAGSRUNPATH_OXT= +LINKFLAGSRUNPATH_BOXT=-Wl,-rpath,\''$$ORIGIN/../../../basis-link/program'\',--enable-new-dtags +LINKFLAGSRUNPATH_NONE= +# flag -Wl,-z,noexecstack sets the NX bit on the stack +LINKFLAGS=-Wl,-z,noexecstack -Wl,-z,combreloc $(LINKFLAGSDEFS) $(LINKFLAGS_SYSBASE) +.IF "$(HAVE_LD_BSYMBOLIC_FUNCTIONS)" == "TRUE" +LINKFLAGS += -Wl,-Bsymbolic-functions -Wl,--dynamic-list-cpp-new -Wl,--dynamic-list-cpp-typeinfo +.ENDIF + +# linker flags for linking applications +LINKFLAGSAPPGUI= -Wl,-export-dynamic \ + -Wl,-rpath-link,$(LB):$(SOLARLIBDIR):$(SYSBASE)/lib:$(SYSBASE)/usr/lib +LINKFLAGSAPPCUI= -Wl,-export-dynamic \ + -Wl,-rpath-link,$(LB):$(SOLARLIBDIR):$(SYSBASE)/lib:$(SYSBASE)/usr/lib + +# linker flags for linking shared libraries +LINKFLAGSSHLGUI= -shared +LINKFLAGSSHLCUI= -shared + +LINKFLAGSTACK= +LINKFLAGSPROF= +LINKFLAGSDEBUG=-g +LINKFLAGSOPT= + +# linker flags for optimization (symbol hashtable) +# for now, applied to symbol scoped libraries, only +LINKFLAGSOPTIMIZE*=-Wl,-O1 +LINKVERSIONMAPFLAG=$(LINKFLAGSOPTIMIZE) -Wl,--version-script + +SONAME_SWITCH=-Wl,-h + +# Sequence of libs does matter ! + +STDLIBCPP=-lstdc++ + +# default objectfilenames to link +STDOBJVCL=$(L)$/salmain.o +STDOBJGUI= +STDSLOGUI= +STDOBJCUI= +STDSLOCUI= + +.IF "$(ALLOC)" == "TCMALLOC" +STDLIBGUIMT+=-ltcmalloc +STDLIBCUIMT+=-ltcmalloc +STDSHLGUIMT+=-ltcmalloc +STDSHLCUIMT+=-ltcmalloc +.ENDIF + +.IF "$(ALLOC)" == "JEMALLOC" +STDLIBGUIMT+=-ljemalloc +STDLIBCUIMT+=-ljemalloc +STDSHLGUIMT+=-ljemalloc +STDSHLCUIMT+=-ljemalloc +.ENDIF + +.IF "$(HAVE_LD_HASH_STYLE)" == "TRUE" +LINKFLAGS += -Wl,--hash-style=$(WITH_LINKER_HASH_STYLE) +.ELSE +LINKFLAGS += -Wl,-zdynsort +.ENDIF + +# libraries for linking applications +STDLIBGUIMT+=-Wl,--as-needed $(DL_LIB) $(PTHREAD_LIBS) -lm -Wl,--no-as-needed +STDLIBCUIMT+=-Wl,--as-needed $(DL_LIB) $(PTHREAD_LIBS) -lm -Wl,--no-as-needed +# libraries for linking shared libraries +STDSHLGUIMT+=-Wl,--as-needed $(DL_LIB) $(PTHREAD_LIBS) -lm -Wl,--no-as-needed +STDSHLCUIMT+=-Wl,--as-needed $(DL_LIB) $(PTHREAD_LIBS) -lm -Wl,--no-as-needed + +X11LINK_DYNAMIC = -Wl,--as-needed -lXext -lX11 -Wl,--no-as-needed + +LIBSALCPPRT*=-Wl,--whole-archive -lsalcpprt -Wl,--no-whole-archive + +# name of library manager +LIBMGR*=$(AR) +LIBFLAGS=-r + +# tool for generating import libraries +IMPLIB= +IMPLIBFLAGS= + +MAPSYM= +MAPSYMFLAGS= + +RC=irc +RCFLAGS=-fo$@ $(RCFILES) +RCLINK= +RCLINKFLAGS= +RCSETVERSION= + +# platform specific identifier for shared libs +DLLPRE=lib +DLLPOST=.so +PCHPOST=.gch diff --git a/solenv/inc/unxiosr.mk b/solenv/inc/unxiosr.mk new file mode 100644 index 000000000000..8562e2f5f769 --- /dev/null +++ b/solenv/inc/unxiosr.mk @@ -0,0 +1,134 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +########################################################################## +# Platform MAKEFILE for iOS, both devices and the simulator +########################################################################## + +PROCESSOR_DEFINES=-DARM32 + +# flags to enable build with symbols +CFLAGSENABLESYMBOLS=-g + +ASM= +AFLAGS= +LINKOUTPUT_FILTER= + +CFLAGS=-fmessage-length=0 -c $(EXTRA_CFLAGS) + +# enable visibility define in "sal/types.h" +.IF "$(HAVE_GCC_VISIBILITY_FEATURE)" == "TRUE" +CDEFS += -DHAVE_GCC_VISIBILITY_FEATURE +.ENDIF # "$(HAVE_GCC_VISIBILITY_FEATURE)" == "TRUE" + +# --------------------------------- +# Compilation flags +# --------------------------------- +# Normal C compilation flags +CFLAGSCC=-pipe -fsigned-char $(ARCH_FLAGS) + +# Normal Objective C compilation flags +OBJCFLAGS=-fexceptions -fobjc-abi-version=2 -fobjc-legacy-dispatch -D__IPHONE_OS_VERSION_MIN_REQUIRED=40300 + +OBJCXXFLAGS:=-x objective-c++ $(OBJCFLAGS) + +# Comp Flags for files that need exceptions enabled (C and C++) +CFLAGSEXCEPTIONS=-fexceptions -fno-enforce-eh-specs + +# Comp Flags for files that do not need exceptions enabled (C and C++) +CFLAGS_NO_EXCEPTIONS=-fno-exceptions + +# Normal C++ compilation flags +CFLAGSCXX=-pipe -fsigned-char $(ARCH_FLAGS) -Wno-ctor-dtor-privacy + +# No PIC needed as we don't build dynamic objects +PICSWITCH:= +# Other flags +CFLAGSOBJGUIMT=$(PICSWITCH) -fno-common +CFLAGSOBJCUIMT=$(PICSWITCH) -fno-common +CFLAGSSLOGUIMT=$(PICSWITCH) -fno-common +CFLAGSSLOCUIMT=$(PICSWITCH) -fno-common + +# Flag for including debugging information in object files +CFLAGSDEBUG=-g +CFLAGSDBGUTIL= + +# Flag to specify output file to compiler/linker +CFLAGSOUTOBJ=-o + +# --------------------------------- +# Optimization flags +# --------------------------------- +CFLAGSOPT=-O2 -fno-strict-aliasing +CFLAGSNOOPT=-O0 + +# -Wshadow does not work for C with nested uses of pthread_cleanup_push: +# -Wshadow does not work for C++ as /usr/include/c++/4.0.0/ext/hashtable.h +# l. 717 contains a declaration of __cur2 shadowing the declaration at l. 705, +# in template code for which a #pragma gcc system_header would not work: +# -Wextra doesn not work for gcc-3.3 +CFLAGSWARNCC=-Wall -Wendif-labels +CFLAGSWARNCXX=$(CFLAGSWARNCC) -Wno-ctor-dtor-privacy -Wno-non-virtual-dtor +CFLAGSWALLCC=$(CFLAGSWARNCC) +CFLAGSWALLCXX=$(CFLAGSWARNCXX) +CFLAGSWERRCC=-Werror + +LINK*=$(CXX) +LINKC*=$(CC) + +LINKFLAGSDEFS*=-Wl,-multiply_defined,suppress + +# Tag to identify an output file as a library +DLLPRE=lib +# We don't use dynamic shared libraries on iOS +DLLPOST=.a +# Precompiled header file extension +PCHPOST=.gch + +STDOBJVCL=$(L)/salmain.o + +STDLIBCUIMT=-framework UIKit -framework Foundation -framework CoreText -framework CoreGraphics -framework CoreFoundation -Xlinker -objc_abi_version -Xlinker 2 +STDLIBGUIMT=$(STDLIBCUIMT) +STDSHLCUIMT= +STDSHLGUIMT= + +LIBMGR=ar +LIBFLAGS=-r + +IMPLIB=: +IMPLIBFLAGS= + +MAPSYM=: +MAPSYMFLAGS= + +RC=: +RCFLAGS= +RCLINK= +RCLINKFLAGS= +RCSETVERSION= + +OOO_LIBRARY_PATH_VAR = DYLD_LIBRARY_PATH diff --git a/solenv/inc/unxlng.mk b/solenv/inc/unxlng.mk new file mode 100644 index 000000000000..62746cee4f15 --- /dev/null +++ b/solenv/inc/unxlng.mk @@ -0,0 +1,32 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +CDEFS+=-DGLIBC=2 +PTHREAD_LIBS=-lpthread +DL_LIB=-ldl + +.INCLUDE : unxgcc.mk diff --git a/solenv/inc/unxlnga.mk b/solenv/inc/unxlnga.mk new file mode 100644 index 000000000000..e7882f3a905a --- /dev/null +++ b/solenv/inc/unxlnga.mk @@ -0,0 +1,32 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +# mk file for Unix Linux Itanium using gcc, please make generic modifications to unxlng.mk + +.INCLUDE : unxlng.mk +CFLAGS+=-DIA64 +BUILD64=1 diff --git a/solenv/inc/unxlngaxp.mk b/solenv/inc/unxlngaxp.mk new file mode 100644 index 000000000000..fdeb932f2264 --- /dev/null +++ b/solenv/inc/unxlngaxp.mk @@ -0,0 +1,34 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +# mk file for Unix Linux Alpha using gcc, please make generic modifications to unxlng.mk + +PICSWITCH:=-fPIC +.INCLUDE : unxlng.mk +CFLAGS+=-DAXP +LINKFLAGS+=-Wl,--no-relax +BUILD64=1 diff --git a/solenv/inc/unxlnghppa.mk b/solenv/inc/unxlnghppa.mk new file mode 100644 index 000000000000..41a428e31689 --- /dev/null +++ b/solenv/inc/unxlnghppa.mk @@ -0,0 +1,34 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +# mk file for Unix Linux HPPA using GCC, please make generic modifications to unxlng.mk +PICSWITCH:=-fPIC +.INCLUDE : unxlng.mk +CDEFS+=-DHPPA +CFLAGS+= +CFLAGSCC+= +CFLAGSCXX+= diff --git a/solenv/inc/unxlngi.mk b/solenv/inc/unxlngi.mk new file mode 100644 index 000000000000..79c255c326a2 --- /dev/null +++ b/solenv/inc/unxlngi.mk @@ -0,0 +1,37 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +# mk file for Unix Linux Intel (X86) using GCC, please make generic modifications to unxlng.mk +CDEFAULTOPT=-Os +.IF "$(GCCNUMVER)" >= "000400050000" +ARCH_FLAGS*=-mtune=atom +.ELSE +ARCH_FLAGS*=-mtune=pentiumpro +.ENDIF +.INCLUDE : unxlng.mk +CDEFS+=-DX86 +DLLPOST=.so diff --git a/solenv/inc/unxlngm68k.mk b/solenv/inc/unxlngm68k.mk new file mode 100644 index 000000000000..b6a018a10a1d --- /dev/null +++ b/solenv/inc/unxlngm68k.mk @@ -0,0 +1,36 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +# mk file for Unix Linux m68k using GCC, please make generic modifications to unxlng.mk + +CDEFAULTOPT=-Os +PICSWITCH:=-fPIC +.INCLUDE : unxlng.mk +CDEFS+=-DM68K +CFLAGS+=-fsigned-char -fno-omit-frame-pointer +CFLAGSCC+=-fsigned-char +CFLAGSCXX+=-fsigned-char diff --git a/solenv/inc/unxlngmips.mk b/solenv/inc/unxlngmips.mk new file mode 100644 index 000000000000..783305d6c9d1 --- /dev/null +++ b/solenv/inc/unxlngmips.mk @@ -0,0 +1,32 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +# mk file for Unix Linux Mips using GCC, please make generic modifications to unxlng.mk + +CDEFAULTOPT=-Os +.INCLUDE : unxlng.mk +CDEFS+=-DMIPS diff --git a/solenv/inc/unxlngppc.mk b/solenv/inc/unxlngppc.mk new file mode 100644 index 000000000000..af528d96ee94 --- /dev/null +++ b/solenv/inc/unxlngppc.mk @@ -0,0 +1,33 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +# mk file for Unix Linux PowerPC using GCC, please make generic modifications to unxlng.mk + +DEFAULTOPT=-Os +PICSWITCH:=-fPIC +.INCLUDE : unxlng.mk +CDEFS+=-DPOWERPC -DPPC diff --git a/solenv/inc/unxlngppc64.mk b/solenv/inc/unxlngppc64.mk new file mode 100644 index 000000000000..7ce9f35c4ad8 --- /dev/null +++ b/solenv/inc/unxlngppc64.mk @@ -0,0 +1,34 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +# mk file for Unix Linux 64Bit PowerPC using GCC, inherit from ppc and add some flags + +.INCLUDE : unxlngppc.mk + +CDEFS+=-DPOWERPC64 +CFLAGSCXX+=-mminimal-toc +BUILD64=1 diff --git a/solenv/inc/unxlngr.mk b/solenv/inc/unxlngr.mk new file mode 100644 index 000000000000..81ee90ca4f0e --- /dev/null +++ b/solenv/inc/unxlngr.mk @@ -0,0 +1,33 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +# mk file for Unix Linux ARM using GCC, please make generic modifications to unxlng.mk + +CDEFAULTOPT=-Os +.INCLUDE : unxlng.mk +CDEFS+=-DARM32 +CFLAGS+=-fno-omit-frame-pointer diff --git a/solenv/inc/unxlngs.mk b/solenv/inc/unxlngs.mk new file mode 100644 index 000000000000..390244f31d6c --- /dev/null +++ b/solenv/inc/unxlngs.mk @@ -0,0 +1,35 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +# mk file for Unix Linux Sparc using GCC, please make generic modifications to unxlng.mk + +ASM=$(CC) +AFLAGS=-Wa,-K,PIC -c $(CDEFS) +CDEFAULTOPT=-Os +PICSWITCH:=-fPIC +.INCLUDE : unxlng.mk +CDEFS+=-DSPARC diff --git a/solenv/inc/unxlngs390.mk b/solenv/inc/unxlngs390.mk new file mode 100644 index 000000000000..0eac39af0b9d --- /dev/null +++ b/solenv/inc/unxlngs390.mk @@ -0,0 +1,35 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +# mk file for Unix Linux s390 using GCC, please make generic modifications to unxlng.mk + +PICSWITCH:=-fPIC +.INCLUDE : unxlng.mk +CDEFS+=-DS390 +CFLAGS+=-fsigned-char -fno-omit-frame-pointer +CFLAGSCC+=-fsigned-char +CFLAGSCXX+=-fsigned-char diff --git a/solenv/inc/unxlngs390x.mk b/solenv/inc/unxlngs390x.mk new file mode 100644 index 000000000000..108e30b7337a --- /dev/null +++ b/solenv/inc/unxlngs390x.mk @@ -0,0 +1,33 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +# mk file for Unix Linux 64bit s390x using GCC, inherit from s390 and add some flags + +.INCLUDE : unxlngs390.mk + +CDEFS+=-DS390X +BUILD64=1 diff --git a/solenv/inc/unxlngx.mk b/solenv/inc/unxlngx.mk new file mode 100644 index 000000000000..9c89eddefad9 --- /dev/null +++ b/solenv/inc/unxlngx.mk @@ -0,0 +1,32 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +# mk file for Linux Unix X86-64 using GCC, please make generic modifications to unxlng.mk + +.INCLUDE : unxlng.mk +CDEFS+=-DX86_64 +BUILD64=1 diff --git a/solenv/inc/unxmacx.mk b/solenv/inc/unxmacx.mk new file mode 100644 index 000000000000..31c4a8b27d47 --- /dev/null +++ b/solenv/inc/unxmacx.mk @@ -0,0 +1,255 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +########################################################################## +# Platform MAKEFILE for Mac OS X and Darwin on both PowerPC and Intel +########################################################################## + +# PROCESSOR_DEFINES is defined in the particular platform file + +ASM= +AFLAGS= +LINKOUTPUT_FILTER= + +# Definitions that we may need on the compile line. +# -D_PTHREADS and -D_REENTRANT are needed for STLport, and must be specified when +# compiling STLport sources too, either internally or externally. +CDEFS+=-DGLIBC=2 -D_PTHREADS -D_REENTRANT -DNO_PTHREAD_PRIORITY $(PROCESSOR_DEFINES) -D_USE_NAMESPACE=1 +# MAXOSX_DEPLOYMENT_TARGET : The minimum version required to run the build, +# build can assume functions/libraries of that version to be available +# unless you want to do runtime checks for 10.5 api, you also want to use the 10.4 sdk +# (safer/easier than dealing with the MAC_OS_X_VERSION_MAX_ALLOWED macro) +# http://developer.apple.com/technotes/tn2002/tn2064.html +# done in setsolar/configure now. left here for documentation +#MACOSX_DEPLOYMENT_TARGET=10.4 +#.EXPORT: MACOSX_DEPLOYMENT_TARGET +CDEFS+:=-DQUARTZ + +EXTRA_CDEFS+:=-isysroot $(MACOSX_SDK_PATH) -DMAC_OS_X_VERSION_MIN_REQUIRED=$(MAC_OS_X_VERSION_MIN_REQUIRED) -DMAC_OS_X_VERSION_MAX_ALLOWED=$(MAC_OS_X_VERSION_MAX_ALLOWED) + +# Name of library where static data members are initialized +# STATICLIBNAME=static$(DLLPOSTFIX) +# STATICLIB=-l$(STATICLIBNAME) + +# enable visibility define in "sal/types.h" +.IF "$(HAVE_GCC_VISIBILITY_FEATURE)" == "TRUE" +CDEFS += -DHAVE_GCC_VISIBILITY_FEATURE +.ENDIF # "$(HAVE_GCC_VISIBILITY_FEATURE)" == "TRUE" + + +# MacOS X specific Java compilation/link flags +SOLAR_JAVA*=TRUE +.IF "$(SOLAR_JAVA)"!="" + JAVADEF=-DSOLAR_JAVA + JAVAFLAGSDEBUG=-g + JAVA_RUNTIME=-framework JavaVM +.ENDIF + +# architecture dependent flags for the C and C++ compiler that can be changed by +# exporting the variable ARCH_FLAGS="..." in the shell, which is used to start build +ARCH_FLAGS*= + +# Specify the compiler to use. NOTE: MacOS X should always specify +# c++ for C++ compilation as it does certain C++ specific things +# behind the scenes for us. +# CC = C++ compiler to use +# cc = C compiler to use +# objc = Objective C compiler to use +# objcpp = Objective C++ compiler to use +CXX*=g++ +CC*=gcc +objc*=$(CC) +objcpp*=$(CXX) + +CFLAGS=-fsigned-char -fmessage-length=0 -malign-natural -c $(EXTRA_CFLAGS) + +.IF "$(DISABLE_DEPRECATION_WARNING)" == "TRUE" +CFLAGS+=-Wno-deprecated-declarations +.ENDIF +# --------------------------------- +# Compilation flags +# --------------------------------- +# Normal C compilation flags +CFLAGSCC=-pipe -fsigned-char -malign-natural $(ARCH_FLAGS) + +# Normal Objective C compilation flags +#OBJCFLAGS=-no-precomp +OBJCFLAGS=-fobjc-exceptions + +OBJCXXFLAGS=-x objective-c++ -fobjc-exceptions + +# Comp Flags for files that need exceptions enabled (C and C++) +CFLAGSEXCEPTIONS=-fexceptions -fno-enforce-eh-specs + +# Comp Flags for files that do not need exceptions enabled (C and C++) +CFLAGS_NO_EXCEPTIONS=-fno-exceptions + +# Normal C++ compilation flags +CFLAGSCXX=-pipe -malign-natural -fsigned-char $(ARCH_FLAGS) -Wno-ctor-dtor-privacy +.IF "$(HAVE_GCC_NO_LONG-DOUBLE)" == "TRUE" +CFLAGSCXX+= -Wno-long-double +.ENDIF + +PICSWITCH:=-fPIC +# Other flags +CFLAGSOBJGUIMT=$(PICSWITCH) -fno-common +CFLAGSOBJCUIMT=$(PICSWITCH) -fno-common +CFLAGSSLOGUIMT=$(PICSWITCH) -fno-common +CFLAGSSLOCUIMT=$(PICSWITCH) -fno-common +CFLAGSPROF= + +# Flag for including debugging information in object files +CFLAGSDEBUG=-g +CFLAGSDBGUTIL= + +# Flag to specify output file to compiler/linker +CFLAGSOUTOBJ=-o + +# Flags to enable precompiled headers +CFLAGS_CREATE_PCH=-x c++-header -I$(INCPCH) -DPRECOMPILED_HEADERS +CFLAGS_USE_PCH=-I$(SLO)/pch -DPRECOMPILED_HEADERS -Winvalid-pch +CFLAGS_USE_EXCEPTIONS_PCH=-I$(SLO)/pch_ex -DPRECOMPILED_HEADERS -Winvalid-pch + +# --------------------------------- +# Optimization flags +# --------------------------------- +CFLAGSOPT=-O2 -fno-strict-aliasing +CFLAGSNOOPT=-O0 + +# -Wshadow does not work for C with nested uses of pthread_cleanup_push: +# -Wshadow does not work for C++ as /usr/include/c++/4.0.0/ext/hashtable.h +# l. 717 contains a declaration of __cur2 shadowing the declaration at l. 705, +# in template code for which a #pragma gcc system_header would not work: +# -Wextra doesn not work for gcc-3.3 +CFLAGSWARNCC=-Wall -Wendif-labels +CFLAGSWARNCXX=$(CFLAGSWARNCC) -Wno-ctor-dtor-privacy -Wno-non-virtual-dtor +CFLAGSWALLCC=$(CFLAGSWARNCC) +CFLAGSWALLCXX=$(CFLAGSWARNCXX) +CFLAGSWERRCC=-Werror + +# All modules on this platform compile without warnings. +# If you need to set MODULES_WITH_WARNINGS here, comment +# COMPILER_WARN_ERRORS=TRUE here (see settings.mk): +COMPILER_WARN_ERRORS=TRUE + +#special settings form environment +CDEFS+=$(EXTRA_CDEFS) + +STDLIBCPP=-lstdc++ + +# --------------------------------- +# Link stage flags +# --------------------------------- +# always link with gcc since you may be linking c code and don't want -lstdc++ linked in! + +## ericb 04 mars 2005 + +LINK*=$(CXX) +LINKC*=$(CC) + +LINKFLAGSDEFS*=-Wl,-multiply_defined,suppress +# assure backwards-compatibility +EXTRA_LINKFLAGS*:=-Wl,-syslibroot,$(MACOSX_SDK_PATH) +# Very long install_names are needed so that install_name_tool -change later on +# does not complain that "larger updated load commands do not fit:" +LINKFLAGSRUNPATH_URELIB=-install_name '@__________________________________________________URELIB/$(@:f)' +LINKFLAGSRUNPATH_UREBIN= +LINKFLAGSRUNPATH_OOO=-install_name '@__________________________________________________OOO/$(@:f)' +LINKFLAGSRUNPATH_SDK= +LINKFLAGSRUNPATH_BRAND= +LINKFLAGSRUNPATH_OXT= +LINKFLAGSRUNPATH_BOXT= +LINKFLAGSRUNPATH_NONE=-install_name '@__________________________________________________NONE/$(@:f)' +LINKFLAGS=$(LINKFLAGSDEFS) + +LINKFLAGS+=-lobjc +# Sometimes we still use files that would be in a GUIBASE="unx" specific directory +# because they really aren't GUIBASE specific, so we've got to account for that here. +INCGUI+= -I$(PRJ)/unx/inc + +#special settings form environment +LINKFLAGS+=$(EXTRA_LINKFLAGS) + +# Random link flags dealing with different cases of linking + +LINKFLAGSAPPGUI=-bind_at_load +LINKFLAGSSHLGUI=-dynamiclib -single_module +LINKFLAGSAPPCUI=-bind_at_load +LINKFLAGSSHLCUI=-dynamiclib -single_module +LINKFLAGSTACK= +LINKFLAGSPROF= + +# Flag to add debugging information to final products +LINKFLAGSDEBUG=-g +LINKFLAGSOPT= + +# --------------------------------- +# MacOS X shared library specifics +# --------------------------------- + +# Tag to identify an output file as a library +DLLPRE=lib +# File extension to identify dynamic shared libraries on MacOS X +DLLPOST=.dylib +# Precompiled header file extension +PCHPOST=.gch + +# We don't use mapping on MacOS X +#LINKVERSIONMAPFLAG=-Wl,--version-script +LINKVERSIONMAPFLAG=-Wl,-exported_symbols_list + +SONAME_SWITCH=-Wl,-h + +STDLIBCPP=-lstdc++ + +STDOBJVCL=$(L)/salmain.o +STDOBJGUI= +STDSLOGUI= +STDOBJCUI= +STDSLOCUI= + +STDLIBCUIMT=CPPRUNTIME -lm +STDLIBGUIMT=-framework Carbon -framework Cocoa -lpthread CPPRUNTIME -lm +STDSHLCUIMT=-lpthread CPPRUNTIME -lm +STDSHLGUIMT=-framework Carbon -framework CoreFoundation -framework Cocoa -lpthread CPPRUNTIME -lm + +LIBMGR=ar +LIBFLAGS=-r + +IMPLIB= +IMPLIBFLAGS= + +MAPSYM= +MAPSYMFLAGS= + +RC=irc +RCFLAGS=-fo$@ $(RCFILES) +RCLINK= +RCLINKFLAGS= +RCSETVERSION= + +OOO_LIBRARY_PATH_VAR = DYLD_LIBRARY_PATH diff --git a/solenv/inc/unxmacxi.mk b/solenv/inc/unxmacxi.mk new file mode 100644 index 000000000000..1e620f34407b --- /dev/null +++ b/solenv/inc/unxmacxi.mk @@ -0,0 +1,47 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +# +# Mac OS X/Intel specific defines +# + +PROCESSOR_DEFINES=-DX86 + +# special for SO build environment +.IF "$(SYSBASE)"!="" +.IF "$(EXTRA_CFLAGS)"!="" +CPP:=gcc -E $(EXTRA_CFLAGS) +CXXCPP*:=g++ -E $(EXTRA_CFLAGS) +.EXPORT : CPP CXXCPP +.ENDIF # "$(EXTRA_CFLAGS)"!="" +.ENDIF # "$(SYSBASE)"!="" + +# flags to enable build with symbols +CFLAGSENABLESYMBOLS=-g + +# Include generic Mac OS X makefile +.INCLUDE : unxmacx.mk diff --git a/solenv/inc/unxmacxp.mk b/solenv/inc/unxmacxp.mk new file mode 100644 index 000000000000..805563a7fe14 --- /dev/null +++ b/solenv/inc/unxmacxp.mk @@ -0,0 +1,35 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +# +# Mac OS X/PowerPC specific defines +# + +PROCESSOR_DEFINES=-DPOWERPC -DPPC + +# Include generic Mac OS X makefile +.INCLUDE : unxmacx.mk diff --git a/solenv/inc/unxnbsd.mk b/solenv/inc/unxnbsd.mk new file mode 100644 index 000000000000..b7d5e042e6fd --- /dev/null +++ b/solenv/inc/unxnbsd.mk @@ -0,0 +1,25 @@ +# +# mk file for NetBSD +# + +# arch specific defines +.IF "$(CPUNAME)" == "INTEL" +CDEFS+=-DX86 +.ENDIF + +.IF "$(CPUNAME)" == "X86_64" +CDEFS+=-DX86_64 +BUILD64=1 +.ENDIF + +.INCLUDE : unxgcc.mk + +# default linker flags +# NetBSD has no support for using relative paths with $ORIGIN +LINKFLAGSRUNPATH_UREBIN= +LINKFLAGSRUNPATH_OOO= +LINKFLAGSRUNPATH_SDK= +LINKFLAGSRUNPATH_BRAND= + +LINKFLAGSDEFS=-Wl,--ignore-unresolved-symbol,environ +LINKFLAGS=-Wl,-z,combreloc $(LINKFLAGSDEFS) diff --git a/solenv/inc/unxobsd.mk b/solenv/inc/unxobsd.mk new file mode 100644 index 000000000000..fd4c744bf9ef --- /dev/null +++ b/solenv/inc/unxobsd.mk @@ -0,0 +1,46 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +# Makefile for OpenBSD + +# arch specific defines +.IF "$(CPUNAME)" == "INTEL" +CDEFS+=-DX86 +.ENDIF +.IF "$(CPUNAME)" == "X86_64" +CDEFS+=-DX86_64 +ARCH_FLAGS*= +BUILD64=1 +.ENDIF + +.INCLUDE : unxgcc.mk + +# disable exceptions in boost +CFLAGS_NO_EXCEPTIONS+=-DBOOST_NO_EXCEPTIONS + +# default linker flags +LINKFLAGSDEFS:= diff --git a/solenv/inc/unxsogi.mk b/solenv/inc/unxsogi.mk new file mode 100644 index 000000000000..1991089709f9 --- /dev/null +++ b/solenv/inc/unxsogi.mk @@ -0,0 +1,132 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +# mk file for unxsogi +ASM=/usr/ccs/bin/as +AFLAGS=-P + +SOLAR_JAVA=TRUE +JAVAFLAGSDEBUG=-g + +# _PTHREADS is needed for the stl +CDEFS+=-D_PTHREADS -D_REENTRANT -DSYSV -DSUN -DSUN4 -D_POSIX_PTHREAD_SEMANTICS -D_USE_NAMESPACE=1 + + +.IF "$(SOLAR_JAVA)"!="" +JAVADEF=-DSOLAR_JAVA +.IF "$(debug)"=="" +JAVA_RUNTIME=-ljava +.ELSE +JAVA_RUNTIME=-ljava_g +.ENDIF +.ENDIF + +# architecture dependent flags for the C and C++ compiler that can be changed by +# exporting the variable ARCH_FLAGS="..." in the shell, which is used to start build +ARCH_FLAGS*= + +CXX*=g++ +CC*=gcc +CFLAGS=-c +CFLAGSCC= -pipe $(ARCH_FLAGS) + +CFLAGSEXCEPTIONS=-fexceptions +CFLAGS_NO_EXCEPTIONS=-fno-exceptions + +CFLAGSCXX= -pipe $(ARCH_FLAGS) +PICSWITCH:=-fPIC + +CFLAGSOBJGUIMT= +CFLAGSOBJCUIMT= +CFLAGSSLOGUIMT=$(PICSWITCH) +CFLAGSSLOCUIMT=$(PICSWITCH) +CFLAGSPROF= +CFLAGSDEBUG=-g +CFLAGSDBGUTIL= +CFLAGSOPT=-O2 +CFLAGSNOOPT= +CFLAGSOUTOBJ=-o + +STATIC = -Wl,-Bstatic +DYNAMIC = -Wl,-Bdynamic + +LINK*=$(CXX) +LINKC*=$(CC) + +LINKFLAGS= +LINKFLAGSAPPGUI=-Wl,-export-dynamic +LINKFLAGSSHLGUI=-shared +LINKFLAGSAPPCUI=-Wl,-export-dynamic +LINKFLAGSSHLCUI=-shared +LINKFLAGSTACK= +LINKFLAGSPROF= +LINKFLAGSDEBUG=-g +LINKFLAGSOPT= + +LINKVERSIONMAPFLAG=-Wl,--version-script + +# enable visibility define in "sal/types.h" +.IF "$(HAVE_GCC_VISIBILITY_FEATURE)" == "TRUE" +CDEFS += -DHAVE_GCC_VISIBILITY_FEATURE +.ENDIF # "$(HAVE_GCC_VISIBILITY_FEATURE)" == "TRUE" + +# Reihenfolge der libs NICHT egal! + +STDLIBCPP=-lstdc++ + +STDOBJVCL=$(L)/salmain.o +STDOBJGUI= +STDSLOGUI= +STDOBJCUI= +STDSLOCUI= + +STDLIBGUIMT=$(DYNAMIC) -lpthread -lthread -lm +STDLIBCUIMT=$(DYNAMIC) -lpthread -lthread -lm +# libraries for linking shared libraries +STDSHLGUIMT=$(DYNAMIC) -lpthread -lthread -lm +STDSHLCUIMT=$(DYNAMIC) -lpthread -lthread -lm + +STDLIBGUIMT+=-lX11 + +LIBMGR=ar +LIBFLAGS=-r +# LIBEXT=.so + +IMPLIB= +IMPLIBFLAGS= + +MAPSYM= +MAPSYMFLAGS= + +RC=irc +RCFLAGS=-fo$@ $(RCFILES) +RCLINK= +RCLINKFLAGS= +RCSETVERSION= + +DLLPRE=lib +DLLPOST=.so diff --git a/solenv/inc/unxsogs.mk b/solenv/inc/unxsogs.mk new file mode 100644 index 000000000000..5400be270e9b --- /dev/null +++ b/solenv/inc/unxsogs.mk @@ -0,0 +1,131 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +# mk file for unxsogs +ASM=/usr/ccs/bin/as +AFLAGS=-P + +SOLAR_JAVA=TRUE +JAVAFLAGSDEBUG=-g + +# _PTHREADS is needed for the stl +CDEFS+=-D_PTHREADS -D_REENTRANT -DSYSV -DSUN -DSUN4 -D_POSIX_PTHREAD_SEMANTICS -D_USE_NAMESPACE=1 + + +.IF "$(SOLAR_JAVA)"!="" +JAVADEF=-DSOLAR_JAVA +.IF "$(debug)"=="" +JAVA_RUNTIME=-ljava +.ELSE +JAVA_RUNTIME=-ljava_g +.ENDIF +.ENDIF + +# architecture dependent flags for the C and C++ compiler that can be changed by +# exporting the variable ARCH_FLAGS="..." in the shell, which is used to start build +ARCH_FLAGS*= + +CXX*=g++ +CC*=gcc +CFLAGS=-c +CFLAGSCC= -pipe $(ARCH_FLAGS) + +CFLAGSEXCEPTIONS=-fexceptions +CFLAGS_NO_EXCEPTIONS=-fno-exceptions + +CFLAGSCXX= -pipe $(ARCH_FLAGS) +PICSWITCH:=-fPIC +CFLAGSOBJGUIMT= +CFLAGSOBJCUIMT= +CFLAGSSLOGUIMT=$(PICSWITCH) +CFLAGSSLOCUIMT=$(PICSWITCH) +CFLAGSPROF= +CFLAGSDEBUG=-g +CFLAGSDBGUTIL= +CFLAGSOPT=-O2 +CFLAGSNOOPT= +CFLAGSOUTOBJ=-o + +STATIC = -Wl,-Bstatic +DYNAMIC = -Wl,-Bdynamic + +LINK*=$(CXX) +LINKC*=$(CC) + +LINKFLAGS= +LINKFLAGSAPPGUI=-Wl,-export-dynamic +LINKFLAGSSHLGUI=-shared +LINKFLAGSAPPCUI=-Wl,-export-dynamic +LINKFLAGSSHLCUI=-shared +LINKFLAGSTACK= +LINKFLAGSPROF= +LINKFLAGSDEBUG=-g +LINKFLAGSOPT= + +LINKVERSIONMAPFLAG=-Wl,--version-script + +# enable visibility define in "sal/types.h" +.IF "$(HAVE_GCC_VISIBILITY_FEATURE)" == "TRUE" +CDEFS += -DHAVE_GCC_VISIBILITY_FEATURE +.ENDIF # "$(HAVE_GCC_VISIBILITY_FEATURE)" == "TRUE" + +# Reihenfolge der libs NICHT egal! + +STDLIBCPP=-lstdc++ + +STDOBJVCL=$(L)/salmain.o +STDOBJGUI= +STDSLOGUI= +STDOBJCUI= +STDSLOCUI= + +STDLIBGUIMT=$(DYNAMIC) -lpthread -lthread -lm +STDLIBCUIMT=$(DYNAMIC) -lpthread -lthread -lm +# libraries for linking shared libraries +STDSHLGUIMT=$(DYNAMIC) -lpthread -lthread -lm +STDSHLCUIMT=$(DYNAMIC) -lpthread -lthread -lm + +STDLIBGUIMT+=-lX11 + +LIBMGR=ar +LIBFLAGS=-r +# LIBEXT=.so + +IMPLIB= +IMPLIBFLAGS= + +MAPSYM= +MAPSYMFLAGS= + +RC=irc +RCFLAGS=-fo$@ $(RCFILES) +RCLINK= +RCLINKFLAGS= +RCSETVERSION= + +DLLPRE=lib +DLLPOST=.so diff --git a/solenv/inc/unxsoli4.mk b/solenv/inc/unxsoli4.mk new file mode 100644 index 000000000000..a14da5da1a26 --- /dev/null +++ b/solenv/inc/unxsoli4.mk @@ -0,0 +1,230 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + + +ASM=/usr/ccs/bin/as +AFLAGS=-P + +CDEFS+=-D_PTHREADS -DSYSV -DSUN -DSUN4 -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS + +SOLAR_JAVA*=TRUE +.IF "$(SOLAR_JAVA)"!="" +JAVADEF=-DSOLAR_JAVA +JAVAFLAGSDEBUG=-g +.IF "$(debug)"=="" +JAVA_RUNTIME=-ljava +.ELSE +JAVA_RUNTIME=-ljava_g +.ENDIF +.ENDIF + +# architecture dependent flags for the C and C++ compiler that can be changed by +# exporting the variable ARCH_FLAGS="..." in the shell, which is used to start build +ARCH_FLAGS*= + +CXX*=CC +CC*=cc + +CFLAGS=$(PREENVCFLAGS) -c -temp=/tmp +CFLAGSCC=-xCC $(ARCH_FLAGS) +CFLAGSCXX=-features=no%altspell -library=no%Cstd $(ARCH_FLAGS) + +# flags to enable build with symbols; required for crashdump feature +CFLAGSENABLESYMBOLS=-g0 -xs # was temporarily commented out, reenabled before Beta +CFLAGSENABLESYMBOLS_CC_ONLY=-g -xs # was temporarily commented out, reenabled before Beta + +CFLAGSEXCEPTIONS= +CFLAGS_NO_EXCEPTIONS=-noex + +CFLAGSOBJGUIMT=-KPIC -mt +CFLAGSOBJCUIMT=-KPIC -mt +CFLAGSSLOGUIMT=-KPIC -mt +CFLAGSSLOCUIMT=-KPIC -mt +CFLAGSPROF=-xpg +CFLAGSDEBUG=-g +CFLAGSDBGUTIL= +CFLAGSOPT=-xarch=generic -xO3 +CFLAGSNOOPT= +CFLAGSOUTOBJ=-o + +# Warnings switched off for CXX: +# - doubunder: we have many identifiers containing double underscores, some of +# them in the stable UDK API we cannot change +# - identexpected: Identifier expected instead of "}" +# if an enum ends with a comma before the '}' +# this warning does not seem to heed #pragma disable_warn, and is not helpful +# - inllargeuse: "function is too large and will not be expanded inline" is +# merely a hint +# - inllargeint: "function is too large to generate inline, consider writing +# it yourself" is merely a hint +# - notemsource: "could not find source for function" appears to be spurious +# - reftotemp: warns about calling non-const functions on temporary objects, +# something legally done by boost::scoped_array<T>::reset, for example +# (this_type(p).swap(*this)) +# - truncwarn: "conversion of 64 bit type value to smaller type causes +# truncation" at least with CC 5.8 is reported only at the end of a +# compilation unit that uses boost::unordered_map<sal_Int64, sal_Int64> (see +# sfx2/source/toolbox/imgmgr.cxx:1.27) and thus unfortunately needs to be +# disabled globally +# - wnoretvalue: warning about the last statement of a function not +# returning a value. Unfortunately triggers on perfectly acceptable +# code, for example if the last statement in is a throw statement +# - anonnotype: Warns if a type is declared in an anonymous union. Temporary +# disabled until issue i97325 is fixed. Note: The compiler is actually +# right about this warning, the C++ standard is explicit about this. +CFLAGSWARNCC= +CFLAGSWARNCXX=+w2 -erroff=doubunder,identexpected,inllargeuse,inllargeint,notemsource,reftotemp,truncwarn,wnoretvalue,anonnotype +CFLAGSWALLCC=$(CFLAGSWARNCC) +CFLAGSWALLCXX=$(CFLAGSWARNCXX) +CFLAGSWERRCC=-errwarn=%all +CFLAGSWERRCXX=-xwe + +# Once all modules on this platform compile without warnings, set +# COMPILER_WARN_ERRORS=TRUE here instead of setting MODULES_WITH_WARNINGS (see +# settings.mk): +MODULES_WITH_WARNINGS := + +STDOBJVCL=$(L)/salmain.o + +THREADLIB= +.IF "$(PURIFY)"!="" +LINK=/usr/local/purify-4.2-solaris2/purify CC +.ELSE +LINK=$(CXX) +.ENDIF +LINKC=$(CC) + +# link against set of baseline libraries +.IF "$(SYSBASE)"!="" +C_RESTRICTIONFLAGS*=-xc99=none +#LD_OPTIONS+:=-L$(SYSBASE)/usr/lib +CDEFS+=-DSYSBASE="$(SYSBASE)" +CFLAGSCC+=$(C_RESTRICTIONFLAGS) +#.EXPORT : LD_OPTIONS +.ENDIF # "$(SYSBASE)"!="" + +# -z combreloc combines multiple relocation sections. Reduces overhead on startup +# -norunpath prevents the compiler from recording his own libs in the runpath +LINKFLAGSRUNPATH_URELIB=-R\''$$ORIGIN'\' +LINKFLAGSRUNPATH_UREBIN=-R\''$$ORIGIN/../lib:$$ORIGIN'\' + #TODO: drop $ORIGIN once no URE executable is also shipped in OOo +LINKFLAGSRUNPATH_OOO=-R\''$$ORIGIN:$$ORIGIN/../ure-link/lib'\' +LINKFLAGSRUNPATH_SDK=-R\''$$ORIGIN/../../ure-link/lib'\' +LINKFLAGSRUNPATH_BRAND=-R\''$$ORIGIN:$$ORIGIN/../basis-link/program:$$ORIGIN/../basis-link/ure-link/lib'\' +LINKFLAGSRUNPATH_OXT= +LINKFLAGSRUNPATH_BOXT=-R\''$$ORIGIN/../../../basis-link/program'\' +LINKFLAGSRUNPATH_NONE= +LINKFLAGS=-w -mt -z combreloc -PIC -temp=/tmp -norunpath -library=no%Cstd +LINKCFLAGS=-w -mt -z combreloc -norunpath + +# -z text force fatal error if non PIC code is linked into shared library. Such code +# would be expensive on startup +CHECKFORPIC =-z text +LINKFLAGSSHLGUI=$(CHECKFORPIC) -G +LINKFLAGSSHLCUI=$(CHECKFORPIC) -G + +# switches for dynamic and static linking +LINKFLAGSDEFS*= -z defs +STATIC = -Bstatic +DIRECT = -Bdirect $(LINKFLAGSDEFS) +DYNAMIC = -Bdynamic + +LINKFLAGSAPPGUI+=$(DIRECT) +LINKFLAGSAPPCUI+=$(DIRECT) +LINKFLAGSSHLGUI+=$(DIRECT) +LINKFLAGSSHLCUI+=$(DIRECT) + +LINKFLAGSTACK= +LINKFLAGSPROF=-L$(COMPATH)/WS6U1/lib/libp -xpg -z allextract +LINKFLAGSDEBUG= +LINKFLAGSOPT= +LINKVERSIONMAPFLAG=-M + +# mapfile for non-executable stack +LINKFLAGSNOEXSTK*=$(LINKVERSIONMAPFLAG) $(SOLARENV)/src/solaris_noexstk.map +LINKFLAGSAPPGUI+=$(LINKFLAGSNOEXSTK) +LINKFLAGSAPPCUI+=$(LINKFLAGSNOEXSTK) + +APPLINKSTATIC=$(STATIC) +APPLINKSHARED=$(DIRECT) +APP_LINKTYPE= + +STDLIBCPP=-lCrun + +# reihenfolge der libs NICHT egal! +STDOBJGUI= +.IF "DBG_UTIL" != "" +STDSLOGUI=#-lpthread +.ELSE +STDSLOGUI= +.ENDIF +STDOBJCUI= +STDSLOCUI= + +# CPPRUNTIME - define where to place C++ runtime if required +STDLIBGUIMT=$(DYNAMIC) -lpthread -lm +STDLIBCUIMT=$(DYNAMIC) -lpthread -lm +STDSHLGUIMT=$(DYNAMIC) -lpthread CPPRUNTIME -lm -lc +STDSHLCUIMT=$(DYNAMIC) -lpthread CPPRUNTIME -lm -lc + +# libdl.so - no really an GUI library but required in this context +STDLIBGUIMT+=-ldl +STDSHLGUIMT+=-ldl +X11LINK_DYNAMIC = -lXext -lX11 + +# @@@ interposer needed for -Bdirect @@@ +# LIBSALCPPRT*=-z allextract -lsalcpprt -z defaultextract +LIBSALCPPRT= + +LIBMGR=CC +LIBFLAGS=-xar -o + +IMPLIB= +IMPLIBFLAGS= + +MAPSYM= +MAPSYMFLAGS= +IGNORE_SYMBOLS=S-LP64 + +RC=irc +RCFLAGS=-fo$@ $(RCFILES) +RCLINK= +RCLINKFLAGS= +RCSETVERSION= + +DLLPRE=lib +DLLPOST=.so + +LDUMP=cppfilt /b /n /o /p + +CFLAGSCXXSLO += +CFLAGSCXXOBJ += + +LINKFLAGSAPPGUI+= +LINKFLAGSSHLGUI+= +LINKFLAGSAPPCUI+= +LINKFLAGSSHLCUI+= diff --git a/solenv/inc/unxsols4.mk b/solenv/inc/unxsols4.mk new file mode 100644 index 000000000000..11b6f15473aa --- /dev/null +++ b/solenv/inc/unxsols4.mk @@ -0,0 +1,236 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + + +ASM=/usr/ccs/bin/as +# needs -D__sparcv8plus because it's not defined by the assembler with -xarch=v8plus +AFLAGS=-P -xarch=v8plus -D__sparcv8plus + +CDEFS+=-D_PTHREADS -DSYSV -DSUN -DSUN4 -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS + +SOLAR_JAVA*=TRUE +.IF "$(SOLAR_JAVA)"!="" +JAVADEF=-DSOLAR_JAVA +JAVAFLAGSDEBUG=-g +.IF "$(debug)"=="" +JAVA_RUNTIME=-ljava +.ELSE +JAVA_RUNTIME=-ljava_g +.ENDIF +.ENDIF + +# architecture dependent flags for the C and C++ compiler that can be changed by +# exporting the variable ARCH_FLAGS="..." in the shell, which is used to start build +ARCH_FLAGS*= + +CXX*=CC +CC*=cc + +CFLAGS=$(PREENVCFLAGS) -c -temp=/tmp +# CC defines __sparcv8plus with -xarch=v8plus, cc does not (sigh) +CFLAGSCC=-xCC -D__sparcv8plus $(ARCH_FLAGS) +CFLAGSCXX=-features=no%altspell -library=no%Cstd $(ARCH_FLAGS) + +# flags to enable build with symbols; required for crashdump feature +CFLAGSENABLESYMBOLS=-g0 -xs # was temporarily commented out, reenabled before Beta +CFLAGSENABLESYMBOLS_CC_ONLY=-g -xs # was temporarily commented out, reenabled before Beta + +CFLAGSEXCEPTIONS= +CFLAGS_NO_EXCEPTIONS=-noex + +CFLAGSOBJGUIMT=-KPIC -mt +CFLAGSOBJCUIMT=-KPIC -mt +CFLAGSSLOGUIMT=-KPIC -mt +CFLAGSSLOCUIMT=-KPIC -mt +CFLAGSPROF=-xpg +CFLAGSDEBUG=-g +CFLAGSDBGUTIL= +# -m32 -xarch=sparc restrict target to 32 bit sparc +# -xO3 optimization level 3 +# -xspace don't do optimizations which do increase binary size +# -xprefetch=yes do prefetching (helps on UltraSparc III) +CFLAGSOPT=-m32 -xarch=sparc -xO3 -xspace -xprefetch=yes +CFLAGSNOOPT= +CFLAGSOUTOBJ=-o + +# Warnings switched off for CXX: +# - doubunder: we have many identifiers containing double underscores, some of +# them in the stable UDK API we cannot change +# - identexpected: Identifier expected instead of "}" +# if an enum ends with a comma before the '}' +# this warning does not seem to heed #pragma disable_warn, and is not helpful +# - inllargeuse: "function is too large and will not be expanded inline" is +# merely a hint +# - inllargeint: "function is too large to generate inline, consider writing +# it yourself" is merely a hint +# - notemsource: "could not find source for function" appears to be spurious +# - reftotemp: warns about calling non-const functions on temporary objects, +# something legally done by boost::scoped_array<T>::reset, for example +# (this_type(p).swap(*this)) +# - truncwarn: "conversion of 64 bit type value to smaller type causes +# truncation" at least with CC 5.8 is reported only at the end of a +# compilation unit that uses boost::unordered_map<sal_Int64, sal_Int64> (see +# sfx2/source/toolbox/imgmgr.cxx:1.27) and thus unfortunately needs to be +# disabled globally +# - wnoretvalue: warning about the last statement of a function not +# returning a value. Unfortunately triggers on perfectly acceptable +# code, for example if the last statement in is a throw statement +# - anonnotype: Warns if a type is declared in an anonymous union. Temporary +# disabled until issue i97325 is fixed. Note: The compiler is actually +# right about this warning, the C++ standard is explicit about this. +CFLAGSWARNCC= +CFLAGSWARNCXX=+w2 -erroff=doubunder,identexpected,inllargeuse,inllargeint,notemsource,reftotemp,truncwarn,wnoretvalue,anonnotype +CFLAGSWALLCC=$(CFLAGSWARNCC) +CFLAGSWALLCXX=$(CFLAGSWARNCXX) +CFLAGSWERRCC=-errwarn=%all +CFLAGSWERRCXX=-xwe + +# Once all modules on this platform compile without warnings, set +# COMPILER_WARN_ERRORS=TRUE here instead of setting MODULES_WITH_WARNINGS (see +# settings.mk): +MODULES_WITH_WARNINGS := + +STDOBJVCL=$(L)/salmain.o + +THREADLIB= +.IF "$(PURIFY)"!="" +LINK=/usr/local/purify-4.2-solaris2/purify CC +.ELSE +LINK=$(CXX) +.ENDIF +LINKC=$(CC) + +# link against set of baseline libraries +.IF "$(SYSBASE)"!="" +C_RESTRICTIONFLAGS*=-xc99=none +#LD_OPTIONS+:=-L$(SYSBASE)/usr/lib +CDEFS+=-DSYSBASE="$(SYSBASE)" +CFLAGSCC+=$(C_RESTRICTIONFLAGS) +#.EXPORT : LD_OPTIONS +.ENDIF # "$(SYSBASE)"!="" + +# -z combreloc combines multiple relocation sections. Reduces overhead on startup +# -norunpath prevents the compiler from recording his own libs in the runpath +LINKFLAGSRUNPATH_URELIB=-R\''$$ORIGIN'\' +LINKFLAGSRUNPATH_UREBIN=-R\''$$ORIGIN/../lib:$$ORIGIN'\' + #TODO: drop $ORIGIN once no URE executable is also shipped in OOo +LINKFLAGSRUNPATH_OOO=-R\''$$ORIGIN:$$ORIGIN/../ure-link/lib'\' +LINKFLAGSRUNPATH_SDK=-R\''$$ORIGIN/../../ure-link/lib'\' +LINKFLAGSRUNPATH_BRAND=-R\''$$ORIGIN:$$ORIGIN/../basis-link/program:$$ORIGIN/../basis-link/ure-link/lib'\' +LINKFLAGSRUNPATH_OXT= +LINKFLAGSRUNPATH_BOXT=-R\''$$ORIGIN/../../../basis-link/program'\' +LINKFLAGSRUNPATH_NONE= +LINKFLAGS=-w -mt -z combreloc -PIC -temp=/tmp -norunpath -library=no%Cstd +LINKCFLAGS=-w -mt -z combreloc -norunpath + +# -z text force fatal error if non PIC code is linked into shared library. Such code +# would be expensive on startup +CHECKFORPIC =-z text +LINKFLAGSSHLGUI=$(CHECKFORPIC) -G +LINKFLAGSSHLCUI=$(CHECKFORPIC) -G + +# switches for dynamic and static linking +LINKFLAGSDEFS*= -z defs +STATIC = -Bstatic +DIRECT = -Bdirect $(LINKFLAGSDEFS) +DYNAMIC = -Bdynamic + +LINKFLAGSAPPGUI+=$(DIRECT) +LINKFLAGSAPPCUI+=$(DIRECT) +LINKFLAGSSHLGUI+=$(DIRECT) +LINKFLAGSSHLCUI+=$(DIRECT) + +LINKFLAGSTACK= +LINKFLAGSPROF=-L$(COMPATH)/WS6U1/lib/libp -xpg -z allextract +LINKFLAGSDEBUG= +LINKFLAGSOPT= +LINKVERSIONMAPFLAG=-M + +# mapfile for non-executable stack +LINKFLAGSNOEXSTK*=$(LINKVERSIONMAPFLAG) $(SOLARENV)/src/solaris_noexstk.map +LINKFLAGSAPPGUI+=$(LINKFLAGSNOEXSTK) +LINKFLAGSAPPCUI+=$(LINKFLAGSNOEXSTK) + +APPLINKSTATIC=$(STATIC) +APPLINKSHARED=$(DIRECT) +APP_LINKTYPE= + +STDLIBCPP=-lCrun + +# reihenfolge der libs NICHT egal! +STDOBJGUI= +.IF "DBG_UTIL" != "" +STDSLOGUI=#-lpthread +.ELSE +STDSLOGUI= +.ENDIF +STDOBJCUI= +STDSLOCUI= + +# CPPRUNTIME - define where to place C++ runtime if required +STDLIBGUIMT=$(DYNAMIC) -lpthread -lm +STDLIBCUIMT=$(DYNAMIC) -lpthread -lm +STDSHLGUIMT=$(DYNAMIC) -lpthread CPPRUNTIME -lm -lc +STDSHLCUIMT=$(DYNAMIC) -lpthread CPPRUNTIME -lm -lc + +# libdl.so - no really an GUI library but required in this context +STDLIBGUIMT+=-ldl +STDSHLGUIMT+=-ldl +X11LINK_DYNAMIC = -lXext -lX11 + +# @@@ interposer needed for -Bdirect @@@ +# LIBSALCPPRT*=-z allextract -lsalcpprt -z defaultextract +LIBSALCPPRT= + +LIBMGR=CC +LIBFLAGS=-xar -o + +IMPLIB= +IMPLIBFLAGS= + +MAPSYM= +MAPSYMFLAGS= +IGNORE_SYMBOLS=S-LP64 + +RC=irc +RCFLAGS=-fo$@ $(RCFILES) +RCLINK= +RCLINKFLAGS= +RCSETVERSION= + +DLLPRE=lib +DLLPOST=.so + +LDUMP=cppfilt /b /n /o /p + +CFLAGSCXXSLO += +CFLAGSCXXOBJ += + +LINKFLAGSAPPGUI+= +LINKFLAGSSHLGUI+= +LINKFLAGSAPPCUI+= +LINKFLAGSSHLCUI+= diff --git a/solenv/inc/unxsolu4.mk b/solenv/inc/unxsolu4.mk new file mode 100644 index 000000000000..76da3103880a --- /dev/null +++ b/solenv/inc/unxsolu4.mk @@ -0,0 +1,231 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + + +# 64 bit (LP64) platform +IS_LP64=TRUE + +ASM=/usr/ccs/bin/as +AFLAGS=-P -xarch=v9 + + +CDEFS+=-D_PTHREADS -DSYSV -DSUN -DSUN4 -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -DIS_LP64 + +SOLAR_JAVA*=TRUE +.IF "$(SOLAR_JAVA)"!="" +JAVADEF=-DSOLAR_JAVA +JAVAFLAGSDEBUG=-g +.IF "$(debug)"=="" +JAVA_RUNTIME=-ljava +.ELSE +JAVA_RUNTIME=-ljava_g +.ENDIF +.ENDIF + +# architecture dependent flags for the C and C++ compiler that can be changed by +# exporting the variable ARCH_FLAGS="..." in the shell, which is used to start build +ARCH_FLAGS*=-m64 + +CXX*=CC +CC*=cc + +CFLAGS=$(PREENVCFLAGS) -c -temp=/tmp +CFLAGSCC=-xCC $(ARCH_FLAGS) +CFLAGSCXX= -features=no%altspell $(ARCH_FLAGS) + +# flags to enable build with symbols; required for crashdump feature +CFLAGSENABLESYMBOLS=-g0 -xs # was temporarily commented out, reenabled before Beta +CFLAGSENABLESYMBOLS_CC_ONLY=-g -xs # was temporarily commented out, reenabled before Beta + +CFLAGSEXCEPTIONS= +CFLAGS_NO_EXCEPTIONS=-noex + +CFLAGSOBJGUIMT=-KPIC -mt +CFLAGSOBJCUIMT=-KPIC -mt +CFLAGSSLOGUIMT=-KPIC -mt +CFLAGSSLOCUIMT=-KPIC -mt +CFLAGSPROF=-xpg +CFLAGSDEBUG=-g +CFLAGSDBGUTIL= +# -xO3 optimization level 3 +CFLAGSOPT= -xO3 -xalias_level=compatible +CFLAGSNOOPT= +CFLAGSOUTOBJ=-o + +# Warnings switched off for CXX: +# - doubunder: we have many identifiers containing double underscores, some of +# them in the stable UDK API we cannot change +# - identexpected: Identifier expected instead of "}" +# if an enum ends with a comma before the '}' +# this warning does not seem to heed #pragma disable_warn, and is not helpful +# - inllargeuse: "function is too large and will not be expanded inline" is +# merely a hint +# - inllargeint: "function is too large to generate inline, consider writing +# it yourself" is merely a hint +# - notemsource: "could not find source for function" appears to be spurious +# - reftotemp: warns about calling non-const functions on temporary objects, +# something legally done by boost::scoped_array<T>::reset, for example +# (this_type(p).swap(*this)) +# - truncwarn: "conversion of 64 bit type value to smaller type causes +# truncation" at least with CC 5.8 is reported only at the end of a +# compilation unit that uses boost::unordered_map<sal_Int64, sal_Int64> (see +# sfx2/source/toolbox/imgmgr.cxx:1.27) and thus unfortunately needs to be +# disabled globally +# - wnoretvalue: "The last statement should return a value." +# CC 5.9: the compiler does often not notice that there is no way +# to reach the closing brace of a function without either returning a proper +# value or throwing an exception. +# - hidef: "d::foo() hides the function b::foo()." We got still some cases of mixed +# sal_uInt32 and ULONG usages which needs to be fixed. We can then remove this one +CFLAGSWARNCC= +CFLAGSWARNCXX=+w2 -erroff=doubunder,identexpected,inllargeuse,inllargeint,notemsource,reftotemp,truncwarn,wnoretvalue,hidef,anonnotype,unassigned,badargtype2w +CFLAGSWALLCC=$(CFLAGSWARNCC) +CFLAGSWALLCXX=$(CFLAGSWARNCXX) +CFLAGSWERRCC=-errwarn=%all +CFLAGSWERRCXX=-xwe + +# Once all modules on this platform compile without warnings, set +# COMPILER_WARN_ERRORS=TRUE here instead of setting MODULES_WITH_WARNINGS (see +# settings.mk): +MODULES_WITH_WARNINGS := + +STDOBJVCL=$(L)/salmain.o + +THREADLIB= +LINK=$(CXX) +LINKC=$(CC) + +# link against set of baseline libraries +.IF "$(SYSBASE)"!="" +C_RESTRICTIONFLAGS*=-xc99=none +LD_OPTIONS+=-L$(SYSBASE)/usr/lib +CDEFS+=-DSYSBASE="$(SYSBASE)" +CFLAGSCC+=$(C_RESTRICTIONFLAGS) +.EXPORT : LD_OPTIONS +.ENDIF # "$(SYSBASE)"!="" + +# -z combreloc combines multiple relocation sections. Reduces overhead on startup +# -norunpath prevents the compiler from recording his own libs in the runpath +LINKFLAGSRUNPATH_URELIB=-R\''$$ORIGIN'\' +LINKFLAGSRUNPATH_UREBIN=-R\''$$ORIGIN/../lib:$$ORIGIN'\' + #TODO: drop $ORIGIN once no URE executable is also shipped in OOo +LINKFLAGSRUNPATH_OOO=-R\''$$ORIGIN:$$ORIGIN/../ure-link/lib'\' +LINKFLAGSRUNPATH_BRAND=-R\''$$ORIGIN:$$ORIGIN/../basis-link/program:$$ORIGIN/../basis-link/ure-link/lib'\' +LINKFLAGSRUNPATH_OXT= +LINKFLAGSRUNPATH_BOXT=-R\''$$ORIGIN/../../../basis-link/program'\' +LINKFLAGSRUNPATH_NONE= +LINKFLAGS=-m64 -w -mt -z combreloc -PIC -temp=/tmp -norunpath +LINKCFLAGS=-m64 -w -mt -z combreloc -norunpath + +# -z text force fatal error if non PIC code is linked into shared library. Such code +# would be expensive on startup +CHECKFORPIC =-z text +LINKFLAGSSHLGUI=$(CHECKFORPIC) -G +LINKFLAGSSHLCUI=$(CHECKFORPIC) -G + +# switches for dynamic and static linking +LINKFLAGSDEFS*= -z defs +STATIC = -Bstatic +DIRECT = -Bdirect $(LINKFLAGSDEFS) +DYNAMIC = -Bdynamic + +LINKFLAGSAPPGUI+=$(DIRECT) +LINKFLAGSAPPCUI+=$(DIRECT) +LINKFLAGSSHLGUI+=$(DIRECT) +LINKFLAGSSHLCUI+=$(DIRECT) + +LINKFLAGSTACK= +LINKFLAGSPROF= +LINKFLAGSDEBUG= +LINKFLAGSOPT= +LINKVERSIONMAPFLAG=-M + +# mapfile for non-executable stack +LINKFLAGSNOEXSTK*=$(LINKVERSIONMAPFLAG) $(SOLARENV)/src/solaris_noexstk.map +LINKFLAGSAPPGUI+=$(LINKFLAGSNOEXSTK) +LINKFLAGSAPPCUI+=$(LINKFLAGSNOEXSTK) + +APPLINKSTATIC=$(STATIC) +APPLINKSHARED=$(DIRECT) +APP_LINKTYPE= + +STDLIBCPP=-lCrun + +# reihenfolge der libs NICHT egal! +STDOBJGUI= +.IF "DBG_UTIL" != "" +STDSLOGUI=#-lpthread +.ELSE +STDSLOGUI= +.ENDIF +STDOBJCUI= +STDSLOCUI= + +# CPPRUNTIME - define where to place C++ runtime if required +STDLIBGUIMT=$(DYNAMIC) -lpthread -lm +STDLIBCUIMT=$(DYNAMIC) -lpthread -lm +STDSHLGUIMT=$(DYNAMIC) -lpthread CPPRUNTIME -lm -lc +STDSHLCUIMT=$(DYNAMIC) -lpthread CPPRUNTIME -lm -lc + +# libdl.so - no really an GUI library but required in this context +STDLIBGUIMT+=-lX11 -ldl +STDSHLGUIMT+=-lX11 -ldl + +# @@@ interposer needed for -Bdirect @@@ +# LIBSALCPPRT*=-z allextract -lsalcpprt -z defaultextract +LIBSALCPPRT= + +LIBMGR=CC +LIBFLAGS=-xar -o + +IMPLIB= +IMPLIBFLAGS= + +MAPSYM= +MAPSYMFLAGS= +IGNORE_SYMBOLS=S-ILP32 + +RC=irc +RCFLAGS=-fo$@ $(RCFILES) +RCLINK= +RCLINKFLAGS= +RCSETVERSION= + +DLLPRE=lib +DLLPOST=.so + +LDUMP=cppfilt /b /n /o /p + +CFLAGSCXXSLO += +CFLAGSCXXOBJ += + +LINKFLAGSAPPGUI+= +LINKFLAGSSHLGUI+= +LINKFLAGSAPPCUI+= +LINKFLAGSSHLCUI+= + +BUILD64=1 diff --git a/solenv/inc/verinfo.hrc b/solenv/inc/verinfo.hrc new file mode 100644 index 000000000000..66f0ec6f8327 --- /dev/null +++ b/solenv/inc/verinfo.hrc @@ -0,0 +1,201 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef _VERINFO_HRC +#define _VERINFO_HRC + +// include --------------------------------------------------------------- + +#ifndef WIN32 +#include <ver.h> +#else +#include <winver.h> +#endif + +// general preprocessor string management -------------------------------- + +#ifndef PPSX +#define PPSX(s) #s +#endif +#ifndef PPS +#define PPS(s) PPSX(s) +#endif + +#ifndef PPCX +#define PPCX(s1, s2) s1##s2 +#endif +#ifndef PPCAT +#define PPCAT(s1, s2) PPCX(s1, s2) +#endif + +// define order of date parts -------------------------------------------- + +#define VER_YMD + +// set VERVARIANT to 0 if not defined ------------------------------------ + +#if !defined(VERVARIANT) + #define VERVARIANT 0 +#endif + +// define pre release state ---------------------------------------------- + +#ifdef VER_CONCEPT + #define VER_PREL 1 + #define VER_COUNT (0+VER_CONCEPT) + #define VER1 Concept (Level VER_CONCEPT) +#endif + +#ifdef VER_ALPHA + #define VER_PREL 1 + #define VER_COUNT (100+VER_ALPHA) + #define VER1 Alpha (Level VER_ALPHA) +#endif + +#ifdef VER_BETA + #define VER_PREL 1 + #define VER_COUNT (200+VER_BETA) + #define VER1 Beta (Level VER_BETA) +#endif + +#ifdef VER_GAMMA + #define VER_PREL 1 + #define VER_COUNT (300+VER_GAMMA) + #define VER1 Gamma (Level VER_GAMMA) +#endif + +#ifdef VER_FINAL + #define VER_COUNT (500+VER_FINAL) + #if VER_FINAL==0 + #undef VER1 + #elif VER_FINAL==1 + #define VER1 1 + #elif VER_FINAL==2 + #define VER1 2 + #elif VER_FINAL==3 + #define VER1 3 + #elif VER_FINAL==4 + #define VER1 4 + #elif VER_FINAL==5 + #define VER1 5 + #elif VER_FINAL==6 + #define VER1 6 + #elif VER_FINAL==7 + #define VER1 7 + #elif VER_FINAL==8 + #define VER1 8 + #elif VER_FINAL==9 + #define VER1 9 + #elif VER_FINAL==10 + #define VER1 a + #elif VER_FINAL==11 + #define VER1 b + #elif VER_FINAL==12 + #define VER1 c + #endif +#endif + +#ifdef SUBVERSION +#if SUBVERSION < 10 + #define VER4 PPCAT(0, SUBVERSION) +#else + #define VER4 SUBVERSION +#endif +#else + #define VER4 0.0 +#endif + +#ifndef VER1 +#if VERVARIANT > 0 + #define VER_LEVEL VERSION.VER4.VERVARIANT +#else + #define VER_LEVEL VERSION.VER4 +#endif +#else + #define VERC1(a, b, c) a.b##c + #define VERC2(a, b, c) VERC1(a, b, c) + #define VER_LEVEL VERC2(VERSION, VER4, VER1) +#endif + +#if !defined(VER_DMY) && VER_DAY < 10 + #define VER5 PPCAT(0, VER_DAY) +#else + #define VER5 VER_DAY +#endif + +// define month strings -------------------------------------------------- + +#if VER_MONTH==1 + #define VER2 Jan +#elif VER_MONTH==2 + #define VER2 Feb +#elif VER_MONTH==3 + #define VER2 Mar +#elif VER_MONTH==4 + #define VER2 Apr +#elif VER_MONTH==5 + #define VER2 May +#elif VER_MONTH==6 + #define VER2 Jun +#elif VER_MONTH==7 + #define VER2 Jul +#elif VER_MONTH==8 + #define VER2 Aug +#elif VER_MONTH==9 + #define VER2 Sep +#elif VER_MONTH==10 + #define VER2 Oct +#elif VER_MONTH==11 + #define VER2 Nov +#elif VER_MONTH==12 + #define VER2 Dec +#endif + +#define VERC3(a, b, c) c-b-a +#define VERC4(a, b, c) VERC3(a, b, c) +#define VER_DATE VERC4(VER5, VER2, VER_YEAR) + +#if PPCAT(1, VER_FIRSTYEAR)==PPCAT(1, VER_YEAR) + #define VER_YEARRANGE VER_FIRSTYEAR +#else + #define VER_YEARRANGE VER_FIRSTYEAR-VER_YEAR +#endif + +#if VER_FIRSTYEAR > 100 +#define VERC5(a) Copyright \251 a by +#define VERC6(a) VERC5(a) +#else +#define VERC5(a) Copyright \251 20##a by +#define VERC6(a) VERC5(a) +#endif + +#define S_CRIGHT PPS(VERC6(VER_YEARRANGE)) + +#define S_VERSION PPS(Version VER_LEVEL of VER_DATE) + +#endif // _VERINFO_HRC + diff --git a/solenv/inc/version.hrc b/solenv/inc/version.hrc new file mode 100755 index 000000000000..74dd722dc848 --- /dev/null +++ b/solenv/inc/version.hrc @@ -0,0 +1,64 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + *************************************************************************/ + +#include "versionlist.hrc" + +//#define VERVARIANT 0 // never define this one, will be provided by build environment (BUILD_ID) + +#define VER_FINAL 0 + +#ifndef VER_FIRSTYEAR +#define VER_FIRSTYEAR VER_YEAR +#endif + +#include "verinfo.hrc" + +#ifdef WIN32 +#define FOR_WIN_X " (32 Bit)" +#else +#define FOR_WIN_X "" +#endif + +// ----------------------------------------------------------------------- +// language/character set specification table +// ----------------------------------------------------------------------- + +RCD_LANGUAGE rcdata +{ + "040904B0", // USA -> Unicode + "040904E4", // USA -> Windows, Multilingual + "04090000", // USA -> 7-Bit-ASCII + 0 // end of table +} + + +// version binary entry +VS_VERSION_INFO rcdata +{ + 0xF0, "sw", 0x0F, VER_YEAR, VER_MONTH, VER_DAY, + VERSION, SUBVERSION, VERVARIANT, VER_COUNT +} diff --git a/solenv/inc/version.lst b/solenv/inc/version.lst new file mode 100755 index 000000000000..200cdf53e924 --- /dev/null +++ b/solenv/inc/version.lst @@ -0,0 +1,34 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +OOOBASEVERSIONMAJOR=3 +OOOBASEVERSIONMINOR=4 +OOOBASEVERSIONMICRO=0 + +OOOBASEVERSIONDAY=1 +OOOBASEVERSIONMONTH=10 +OOOBASEVERSIONYEAR=2010 diff --git a/solenv/inc/version_so.hrc b/solenv/inc/version_so.hrc new file mode 100755 index 000000000000..2e4db98a2925 --- /dev/null +++ b/solenv/inc/version_so.hrc @@ -0,0 +1,64 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + *************************************************************************/ + +#include "versionlist.hrc" + +//#define VERVARIANT 0 // never define this one, will be provided by build environment (BUILD_ID) + +#define VER_FINAL 0 + +#ifndef VER_FIRSTYEAR +#define VER_FIRSTYEAR VER_YEAR +#endif + +#include "verinfo.hrc" + +#ifdef WIN32 +#define FOR_WIN_X " (32 Bit)" +#else +#define FOR_WIN_X "" +#endif + +// ----------------------------------------------------------------------- +// language/character set specification table +// ----------------------------------------------------------------------- + +RCD_LANGUAGE rcdata +{ + "040904B0", // USA -> Unicode + "040904E4", // USA -> Windows, Multilingual + "04090000", // USA -> 7-Bit-ASCII + 0 // end of table +} + +// version binary entry +VS_VERSION_INFO rcdata +{ + 0xF0, "sw", 0x0F, VER_YEAR, VER_MONTH, VER_DAY, + VERSION, SUBVERSION, VERVARIANT, VER_COUNT +}; + diff --git a/solenv/inc/versionlist.mk b/solenv/inc/versionlist.mk new file mode 100755 index 000000000000..672df7bd7602 --- /dev/null +++ b/solenv/inc/versionlist.mk @@ -0,0 +1,30 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +.INCLUDE: version.lst + +.EXPORT : OOOBASEVERSIONMAJOR OOOBASEVERSIONMINOR OOOBASEVERSIONMICRO OOOBASEVERSIONDAY OOOBASEVERSIONMONTH OOOBASEVERSIONYEAR diff --git a/solenv/inc/win32/jni_md.h b/solenv/inc/win32/jni_md.h new file mode 100644 index 000000000000..b7aab253b350 --- /dev/null +++ b/solenv/inc/win32/jni_md.h @@ -0,0 +1,42 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + */ + +/* Fake jni_md.h for use when cross-compiling to Windows */ + +#ifndef JNI_MD_H_INCLUDED +#define JNI_MD_H_INCLUDED + +#define JNIEXPORT __declspec (dllexport) +#define JNIIMPORT __declspec (dllimport) +#define JNICALL __stdcall + +typedef long jint; +typedef __int64 jlong; +typedef char jbyte; + +#endif /* JNI_MD_H_INCLUDED */ + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/solenv/inc/wnt.mk b/solenv/inc/wnt.mk new file mode 100644 index 000000000000..dd3e0c8ce6f7 --- /dev/null +++ b/solenv/inc/wnt.mk @@ -0,0 +1,75 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +# --- Windows-NT-Environment --------------------------------------- +# Used if "$(GUI)" == "WNT" + +# --- Compiler --- + +.IF "$(OS)$(COM)" == "WNTMSC" +# for wntmsci12, wntmscx12, wntmsci13 and wntmscx13 +# (MSVC 2008 and MSVC 2010, 32- and 64-bit) +.INCLUDE : wntmsc.mk +.ENDIF # "$(OS)$(COM)" == "WNTMSC" + +.IF "$(COM)$(OS)$(CPU)" == "GCCWNTI" +.INCLUDE : wntgcci.mk +.ENDIF + +# --- changes for W32-tcsh - should move into settings.mk --- +JAVAC=javac +JAVA=java +JAVAI!:=java +PATH_SEPERATOR*=: + +# --- general WNT settings --- + +HC=hc +HCFLAGS= +DLLPRE= +DLLPOST=.dll +EXECPOST=.exe +SCPPOST=.inf +DLLDEST=$(BIN) +SOLARSHAREDBIN=$(SOLARBINDIR) + +.IF "$(SOLAR_JAVA)"!="" +JAVADEF=-DSOLAR_JAVA +.IF "$(debug)"=="" +JAVA_RUNTIME=javai.lib +.ELSE +JAVA_RUNTIME=javai_g.lib +.ENDIF +.ENDIF + +.IF "$(CROSS_COMPILING)"!="YES" +OOO_LIBRARY_PATH_VAR = PATH +.ELIF "$(OS_FOR_BUILD)"=="MACOSX" +OOO_LIBRARY_PATH_VAR = DYLD_LIBRARY_PATH +.ELSE +OOO_LIBRARY_PATH_VAR = LD_LIBRARY_PATH +.ENDIF diff --git a/solenv/inc/wntgcci.mk b/solenv/inc/wntgcci.mk new file mode 100644 index 000000000000..34faf329fda0 --- /dev/null +++ b/solenv/inc/wntgcci.mk @@ -0,0 +1,216 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +# mk file for Window Intel using GCC + +SOLAR_JAVA*= +JAVAFLAGSDEBUG=-g + +# SOLAR JAva Unterstuetzung nur fuer wntmsci + +ASM=ml +AFLAGS=/c /Cp /coff + +# architecture dependent flags for the C and C++ compiler that can be changed by +# exporting the variable ARCH_FLAGS="..." in the shell, which is used to start build +ARCH_FLAGS*=-march=pentium + +CC*=i686-w64-mingw32-gcc +CXX*=i686-w64-mingw32-g++ + +CFLAGS+=-fmessage-length=0 -c + +CFLAGSCC=-pipe $(ARCH_FLAGS) +CFLAGSCXX=-pipe $(ARCH_FLAGS) +CFLAGSEXCEPTIONS=-fexceptions -fno-enforce-eh-specs +CFLAGS_NO_EXCEPTIONS=-fno-exceptions +PICSWITCH:= + +CFLAGS_CREATE_PCH=-x c++-header -I$(INCPCH) -DPRECOMPILED_HEADERS +CFLAGS_USE_PCH=-I$(SLO)$/pch -DPRECOMPILED_HEADERS -Winvalid-pch +CFLAGS_USE_EXCEPTIONS_PCH=-I$(SLO)$/pch_ex -DPRECOMPILED_HEADERS -Winvalid-pch + +CFLAGSOBJGUIST= +CFLAGSOBJCUIST= +CFLAGSOBJGUIMT=-D_MT +CFLAGSOBJCUIMT=-D_MT +CFLAGSSLOGUIMT=-D_MT $(PICSWITCH) +CFLAGSSLOCUIMT=-D_MT $(PICSWITCH) +CFLAGSPROF= +CFLAGSDEBUG=-g +CFLAGSDBGUTIL= +.IF "$(PRODUCT)"!="" +CFLAGSOPT=-O2 -fno-strict-aliasing # optimizing for products +.ELSE # "$(PRODUCT)"!="" +CFLAGSOPT= # no optimizing for non products +.ENDIF # "$(PRODUCT)"!="" +# Compiler flags for disabling optimizations +CFLAGSNOOPT=-O0 +# Compiler flags for describing the output path +CFLAGSOUTOBJ=-o +#plattform hart setzen +CDEFS+=-DWIN32 -DWINVER=0x500 -D_WIN32_WINNT=0x500 -D_WIN32_IE=0x500 -D_M_IX86 -D_NATIVE_WCHAR_T_DEFINED -D_MSC_EXTENSIONS -D_FORCENAMELESSUNION +.IF "$(DYNAMIC_CRT)"!="" +CDEFS+=-D_DLL +.ENDIF + +# -Wshadow does not work for C with nested uses of pthread_cleanup_push: +CFLAGSWARNCC=-Wall -Wextra -Wendif-labels +CFLAGSWARNCXX=$(CFLAGSWARNCC) -Wshadow -Wno-ctor-dtor-privacy \ + -Wno-non-virtual-dtor +CFLAGSWALLCC=$(CFLAGSWARNCC) +CFLAGSWALLCXX=$(CFLAGSWARNCXX) +CFLAGSWERRCC=-Werror +CFLAGSWERRCXX=-Werror + +MODULES_WITH_WARNINGS := \ + b_server \ + chart2 \ + devtools \ + extensions \ + lingu \ + r_tools \ + starmath \ + sw \ + xmlsecurity + +STATIC= -static +DYNAMIC= -dynamic + +LINK*=$(CXX) +LINKC*=$(CC) + +CYGLIB=$(LIB:s/;/ -L/) +LINKFLAGS= -Wl,--enable-stdcall-fixup,--enable-runtime-pseudo-reloc-v2 -L$(CYGLIB) +.IF "$(USE_MINGW)"=="cygwin" +MINGWLIBDIR=$(COMPATH)$/lib$/mingw +.ELSE +MINGWLIBDIR=$(COMPATH)$/lib +.ENDIF +MINGWSSTDOBJ= +MINGWSSTDENDOBJ= +LINKFLAGSAPPGUI=-mwindows +LINKFLAGSSHLGUI=-Wl,--warn-once -mwindows -shared +LINKFLAGSAPPCUI=-mconsole +LINKFLAGSSHLCUI=-Wl,--warn-once -mconsole -shared +LINKFLAGSTACK= +LINKFLAGSPROF= +LINKFLAGSDEBUG=-g +LINKFLAGSOPT= + +.IF "$(MINGW_SHARED_GXXLIB)"=="YES" && "$(DYNAMIC_CRT)"!="" +STDLIBCPP=$(MINGW_SHARED_LIBSTDCPP) +.ELSE +STDLIBCPP=-lstdc++ +.ENDIF +UWINAPILIB*=$(DYNAMIC) -luwinapi + +.IF "$(MINGW_SHARED_GCCLIB)"=="YES" && "$(DYNAMIC_CRT)"!="" +MINGW_LIBGCC=-lgcc_s -lgcc +LINKFLAGS+=-shared-libgcc +.ELSE +.IF "$(MINGW_GCCLIB_EH)"=="YES" +MINGW_LIBGCC=-lgcc_eh -lgcc +.ELSE +MINGW_LIBGCC=-lgcc +.ENDIF +.ENDIF +STDOBJVCL=$(L)$/salmain.obj +STDOBJGUI= +STDSLOGUI= +STDOBJCUI= +STDSLOCUI= +STDLIBGUIMT=-Wl,--start-group CPPRUNTIME $(MINGW_LIBGCC) +STDLIBCUIMT=-Wl,--start-group CPPRUNTIME $(MINGW_LIBGCC) +STDSHLGUIMT=-Wl,--start-group CPPRUNTIME $(MINGW_LIBGCC) +STDSHLCUIMT=-Wl,--start-group CPPRUNTIME $(MINGW_LIBGCC) +.IF "$(DYNAMIC_CRT)"!="" +STDLIBGUIMT+=-lmingwthrd +STDLIBCUIMT+=-lmingwthrd +STDSHLGUIMT+=-lmingwthrd +STDSHLCUIMT+=-lmingwthrd +.ENDIF +STDLIBGUIMT+=-lmingw32 -lmoldname -lmingwex -Wl,--end-group $(UWINAPILIB) -lm -lkernel32 -luser32 -lmsvcrt +STDLIBCUIMT+=-lmingw32 -lmoldname -lmingwex -Wl,--end-group $(UWINAPILIB) -lm -lkernel32 -luser32 -lmsvcrt +STDSHLGUIMT+=-lmingw32 -lmoldname -lmingwex -Wl,--end-group $(UWINAPILIB) -lm -lkernel32 -luser32 -lmsvcrt +STDSHLCUIMT+=-lmingw32 -lmoldname -lmingwex -Wl,--end-group $(UWINAPILIB) -lm -lkernel32 -luser32 -lmsvcrt + +LIBMGR=$(AR) +LIBFLAGS=-rsu + +MAPSYM= +MAPSYMFLAGS= + +RC=$(WINDRES) +RCFLAGS=-D__MINGW32__ -DWIN32 -D_WIN32_IE=0x400 $(RCFILES) +RCFLAGSOUTRES= +RCLINK= +RCLINKFLAGS= +RCSETVERSION= + +PCHPOST=.gch + +ADVAPI32LIB=-ladvapi32 +SHELL32LIB=-lshell32 +GDI32LIB=-lgdi32 +OLE32LIB=-lole32 +OLEAUT32LIB=-loleaut32 +UUIDLIB=-luuid +WINSPOOLLIB=-lwinspool +IMM32LIB=-limm32 +VERSIONLIB=-lversion +WINMMLIB=-lwinmm +MPRLIB=-lmpr +WS2_32LIB=-lws2_32 +KERNEL32LIB=-lkernel32 +USER32LIB=-luser32 +LIBCMT=-lmsvcrt +COMDLG32LIB=-lcomdlg32 +COMCTL32LIB=-lcomctl32 +CRYPT32LIB=-lcrypt32 +DDRAWLIB=-lddraw +SHLWAPILIB=-lshlwapi +WININETLIB=-lwininet +OLDNAMESLIB=-lmoldname +MSIMG32LIB=-lmsimg32 +PROPSYSLIB=-lpropsys + +# Libraries for which we use an import library built +# from Wine's .def file +MSILIB=-lmsi +GDIPLUSLIB=-lgdiplus +URLMONLIB=-lurlmon + +# Libraries that mingw-w64 has but mingw.org doesn't. At least the OBS MinGW +# cross-compiler is based on mingw-w64. When using MinGW natively on Windows +# (which as such I don't think we want to support) we use the Windows SDK +# libraries. +.IF "$(CROSS_COMPILING)"=="YES" +DBGHELPLIB=-ldbghelp +.ELSE +DBGHELPLIB=$(WINDOWS_SDK_HOME)$/lib$/dbghelp.lib +.ENDIF diff --git a/solenv/inc/wntmsc.mk b/solenv/inc/wntmsc.mk new file mode 100644 index 000000000000..41c1ea51c801 --- /dev/null +++ b/solenv/inc/wntmsc.mk @@ -0,0 +1,367 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +# mk file for $(OS)$(COM)$(CPU)$(COMEX) == WNTMSC[IX]{12,13} + +JAVAFLAGSDEBUG=-g + +.IF "$(CL_X64)" == "" +ASM=ml +AFLAGS=/c /Cp /coff /safeseh +.ELSE +ASM=ml64 +AFLAGS=/c /Cp +.ENDIF + +# architecture dependent flags for the C and C++ compiler that can be changed by +# exporting the variable ARCH_FLAGS="..." in the shell, which is used to start build +ARCH_FLAGS*= + +CC*:=cl +.IF "$(bndchk)" != "" +CXX*=nmcl +.ELSE +.IF "$(truetime)" != "" +CXX*=nmcl /NMttOn +.ELSE +CXX*:=cl +.ENDIF +.ENDIF # "$(bndchk)" != "" + +.IF "$(stoponerror)" != "" +CXX+= /NMstoponerror +.ENDIF + +.IF "$(nmpass)" != "" +CXX+= /NMpass +.ENDIF + +.IF "$(ttinlines)" != "" +CXX+= /NMttInlines +.ENDIF + +.IF "$(ttnolines)" != "" +CXX+= /NMttNoLines +.ENDIF + +.IF "$(VERBOSE)" != "TRUE" +NOLOGO*=-nologo +.ENDIF + +.IF "$(VERBOSE)" != "TRUE" +COMPILE_ECHO_SWITCH=-n +COMPILE_ECHO_FILE= +.ENDIF + +# Flags for COMEX == 11 + +# disable "warning C4675: resolved overload was found by argument-dependent +# lookup": +# -wd4251 -wd4275 -wd4290 -wd4675 -wd4786 -wd4800 +CFLAGS+=-Zm500 -Zc:forScope,wchar_t- -GR + +# Stack buffer overrun detection. +CFLAGS+=-GS + +CFLAGS+=-c -nologo -Gs $(NOLOGO) + +.IF "$(CL_X64)" == "" +CDEFS+= -D_X86_=1 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_NON_CONFORMING_SWPRINTFS -D_SCL_SECURE_NO_WARNINGS +.ELSE +CDEFS+= -D_AMD64_=1 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_NON_CONFORMING_SWPRINTFS -D_SCL_SECURE_NO_WARNINGS +.ENDIF + +.IF "$(product)" != "" +CFLAGS+= -Gy +.ENDIF # "$(product)" != "" + +# flags to enable build with symbols; required for crashdump feature +#CFLAGSENABLESYMBOLS=-Zi -Fd$(MISC)/_ooo_st_$(TARGET).PDB +CFLAGSENABLESYMBOLS=-Z7 -Yd + +.IF "$(bndchk)" != "" +.IF "$(debug)" == "" +CFLAGS+= -Z7 +.ENDIF +.ENDIF + +.IF "$(truetime)" != "" +.IF "$(debug)" == "" +CFLAGS+= -Z7 +.ENDIF +.ENDIF + +CFLAGSEXCEPTIONS=-EHa +CFLAGS_NO_EXCEPTIONS= + +.IF "$(CL_X64)" == "" +# enable boost support for __cdecl (SAL_CALL) C++-UNO interface methods +CDEFS+=-DBOOST_MEM_FN_ENABLE_CDECL +.ENDIF + +# with the current debug switches PCH won't work +# anyway. so keep the existing .pch intact and don't +# touch it +.IF "$(debug)"!="" +ENABLE_PCH:= +.ENDIF "$(debug)"!="" + +CFLAGS_CREATE_PCH=-I$(INCPCH) -Fo$(SLO)/pchname.obj -Ycprecompiled_$(PRJNAME).hxx -DPRECOMPILED_HEADERS +CFLAGS_USE_PCH=-I$(INCPCH) -Yuprecompiled_$(PRJNAME).hxx -Fp$(SLO)/pch/precompiled_$(PRJNAME).hxx$(PCHPOST) -DPRECOMPILED_HEADERS +CFLAGS_USE_EXCEPTIONS_PCH=-I$(INCPCH) -Yuprecompiled_$(PRJNAME).hxx -Fp$(SLO)/pch_ex/precompiled_$(PRJNAME).hxx$(PCHPOST) -DPRECOMPILED_HEADERS +.IF "$(CALL_CDECL)"=="TRUE" +CFLAGSCALL=-Gd +.ELSE # "$(CALL_CDECL)"=="TRUE" +CFLAGSCALL=-Gz +.ENDIF # "$(CALL_CDECL)"=="TRUE" + +CFLAGSCC=$(ARCH_FLAGS) +.IF "$(DYNAMIC_CRT)"!="" +CDEFSSLOMT+=-D_DLL +.IF "$(NO_DYNAMIC_OBJ)"=="" +CDEFSOBJMT+=-D_DLL +.ENDIF # "$(NO_DYNAMIC_OBJ)"=="" +.ENDIF # "$(DYNAMIC_CRT)"!="" + +CFLAGSPROF=-Gh -Fd$(MISC)/$(@:b).pdb +CFLAGSDEBUG=-Zi -Fd$(MISC)/$(@:b).pdb +CFLAGSDBGUTIL= +.IF "$(VC_STANDARD)"=="" +CFLAGSOPT=-Oxs -Oy- +CFLAGSNOOPT=-Od +.ELSE # "$(VC_STANDARD)"=="" +CFLAGSOPT= +CFLAGSNOOPT= +.ENDIF # "$(VC_STANDARD)"=="" +CFLAGSOUTOBJ=-Fo + +# For C and C++, certain warnings are disabled globally, as they result in +# spurious warnings and are hard or impossible to workaround: +# - "warning C4061: enumerate in switch of enum is not explicitly handled by a +# case label", +# - "warning C4127: conditional expression is constant", +# - "warning C4191: unsafe conversion from function type to function type", +# - "warning C4217: member template functions cannot be used for copy-assignment +# or copy-construction", +# - "warning C4250: 'class1' : inherits 'class2::member' via dominance", +# - "warning C4355: 'this' used in base member initializer list", +# - "warning C4511: copy constructor could not be generated", +# - "warning C4512: assignment operator could not be generated", +# - "warning C4514: unreferenced inline function has been removed", +# - "warning C4611: interaction between '_setjmp' and C++ object destruction is +# non-portable", +# - "warning C4625: copy constructor could not be generated because a base class +# copy constructor is inaccessible", +# - "warning C4626: assignment operator could not be generated because a base +# class assignment operator is inaccessible", +# - "warning C4675: resolved overload was found by argument-dependent lookup", +# - "warning C4710: function not inlined", +# - "warning C4711: function selected for automatic inline expansion", +# - "warning C4820: padding added after member". +# - "warning C4503: 'identifier' : decorated name length exceeded, name was truncated" +# (http://msdn2.microsoft.com/en-us/library/074af4b6.aspx) +# - "warning C4180: qualifier applied to function type has no meaning; ignored" +# (frequently seen with a recent boost) +# For C, certain warnings from system headers (stdlib.h etc.) have to be +# disabled globally (for C++, this is not necessary, as the system headers are +# wrapped by STLport): +# - "warning C4255: no function prototype given: converting +# '()' to '(void)'". +# - "warning C4365: conversion from ... to ... signed/unsigned mismatch" + +CFLAGSWARNCXX=-Wall -wd4061 -wd4127 -wd4191 -wd4217 -wd4250 -wd4251 -wd4275 \ + -wd4290 -wd4294 -wd4355 -wd4511 -wd4512 -wd4514 -wd4611 -wd4625 -wd4626 \ + -wd4640 -wd4675 -wd4710 -wd4711 -wd4786 -wd4800 -wd4820 -wd4503 -wd4619 \ + -wd4365 -wd4668 -wd4738 -wd4826 -wd4350 -wd4505 -wd4692 -wd4189 -wd4005 \ + -wd4180 +CFLAGSWARNCC=$(CFLAGSWARNCXX) -wd4255 +CFLAGSWALLCC=$(CFLAGSWARNCC) +CFLAGSWALLCXX=$(CFLAGSWARNCXX) +CFLAGSWERRCC=-WX + +# Once all modules on this platform compile without warnings, set +# COMPILER_WARN_ERRORS=TRUE here instead of setting MODULES_WITH_WARNINGS (see +# settings.mk): +MODULES_WITH_WARNINGS := + +CDEFS+=-DWIN32 -D_MT -DWINVER=0x0500 -D_WIN32_WINNT=0x0500 -D_WIN32_IE=0x0500 +.IF "$(COMEX)" == "11" +_VC_MANIFEST_BASENAME=__VC80 +.ELSE +_VC_MANIFEST_BASENAME=__VC90 +.ENDIF + +.IF "$(CL_X64)" == "" +LINK=link /MACHINE:IX86 /IGNORE:4102 /IGNORE:4197 +.ELSE +LINK=link /MACHINE:X64 +.ENDIF + # do *not* add $(NOLOGO) to LINK or LINKFLAGS. Strangely, the wntmsci12 linker links fine then, but exits with + # a return value 1, which makes dmake think it failed +.IF "$(PRODUCT)"!="full" +.ELSE +LINKFLAGS=/MAP /OPT:NOREF +.ENDIF + +# excetion handling protection +.IF "$(CL_X64)" == "" +LINKFLAGS+=-safeseh +.ENDIF + +# enable DEP +LINKFLAGS+=-nxcompat + +# enable ASLR +LINKFLAGS+=-dynamicbase + +.IF "$(linkinc)" != "" +LINKFLAGS+=-NODEFAULTLIB -INCREMENTAL:YES -DEBUG +MAPFILE= +_VC_MANIFEST_INC=1 +.ELSE # "$(linkinc)" != "" +_VC_MANIFEST_INC=0 +.IF "$(PRODUCT)"!="full" +LINKFLAGS+= -NODEFAULTLIB -DEBUG +.ELSE # "$(PRODUCT)"!="full" +LINKFLAGS+= -NODEFAULTLIB -RELEASE -DEBUG -INCREMENTAL:NO +.ENDIF # "$(PRODUCT)"!="full" +MAPFILE=-out:$$@ +.ENDIF # "$(linkinc)" != "" + +.IF "$(bndchk)" != "" +LINK=nmlink $(COMMENTFLAG) $(NOLOGO) /MACHINE:IX86 +LINKFLAGS=-NODEFAULTLIB -DEBUG +.ENDIF + +.IF "$(truetime)" != "" +LINK=nmlink /NMttOn $(COMMENTFLAG) $(NOLOGO) /MACHINE:IX86 +LINKFLAGS=-NODEFAULTLIB -DEBUG +.ENDIF + +.IF "$(COMEX)" == "11" +LINKFLAGSAPPGUI=/SUBSYSTEM:WINDOWS,4.0 +LINKFLAGSSHLGUI=/SUBSYSTEM:WINDOWS,4.0 /DLL +.ELSE +LINKFLAGSAPPGUI=/SUBSYSTEM:WINDOWS +LINKFLAGSSHLGUI=/SUBSYSTEM:WINDOWS /DLL +.ENDIF # "$(COMEX)" == "11" +LINKFLAGSAPPCUI=/SUBSYSTEM:CONSOLE /BASE:0x1b000000 +LINKFLAGSSHLCUI=/SUBSYSTEM:CONSOLE /DLL +LINKFLAGSTACK=/STACK: +LINKFLAGSPROF=/DEBUG:mapped,partial /DEBUGTYPE:coff cap.lib +LINKFLAGSWST=/DEBUG:mapped,partial /DEBUGTYPE:coff wst.lib /NODEFAULTLIB +LINKFLAGSDEBUG=-DEBUG +LINKFLAGSOPT= + +UWINAPILIB*=uwinapi.lib +.IF "$(DYNAMIC_CRT)"!="" +.IF "$(USE_DEBUG_RUNTIME)" != "" +LIBCMT=msvcrtd.lib +LIBCPMT=msvcprtd.lib +CDEFS+=-D_DEBUG +.ELSE # "$(USE_DEBUG_RUNTIME)" != "" +LIBCMT=msvcrt.lib +LIBCPMT=msvcprt.lib +.ENDIF # "$(USE_DEBUG_RUNTIME)" != "" +.ELSE # "$(DYNAMIC_CRT)"!="" +.IF "$(USE_DEBUG_RUNTIME)" != "" +LIBCMT=libcmtd.lib +LIBCPMT=libcpmtd.lib +CDEFS+=-D_DEBUG +.ELSE # "$(USE_DEBUG_RUNTIME)" != "" +LIBCMT=libcmt.lib +LIBCPMT=libcpmt.lib +.ENDIF # "$(USE_DEBUG_RUNTIME)" != "" +.ENDIF # "$(DYNAMIC_CRT)"!="" + +STDOBJVCL=$(L)/salmain.obj +STDOBJGUI= +STDSLOGUI= +STDOBJCUI= +STDSLOCUI= + +STDLIBGUIMT=$(LIBCMT) $(LIBCPMT) $(UWINAPILIB) kernel32.lib user32.lib oldnames.lib +STDLIBCUIMT=$(LIBCMT) $(LIBCPMT) $(UWINAPILIB) kernel32.lib user32.lib oldnames.lib +STDSHLGUIMT=$(LIBCMT) $(LIBCPMT) $(UWINAPILIB) kernel32.lib user32.lib oldnames.lib +STDSHLCUIMT=$(LIBCMT) $(LIBCPMT) $(UWINAPILIB) kernel32.lib user32.lib oldnames.lib + +LIBMGR=lib $(NOLOGO) +IMPLIB=lib +LIBFLAGS= + +.IF "$(CL_X64)" == "" +IMPLIBFLAGS=-machine:IX86 +.ELSE +IMPLIBFLAGS=-machine:X64 +.ENDIF + +MAPSYM= +MAPSYMFLAGS= + +RC=rc +RCFLAGS=-r -DWIN32 $(RCFILES) +RCFLAGSOUTRES=-fo +RCLINK=rc +RCLINKFLAGS= +RCSETVERSION= + +MT=mt.exe +MTFLAGS=$(NOLOGO) + + +PCHPOST=.pch + +CSC*=$(FLIPCMD) csc +VBC*=vbc + +ADVAPI32LIB=advapi32.lib +SHELL32LIB=shell32.lib +GDI32LIB=gdi32.lib +OLE32LIB=ole32.lib +OLEAUT32LIB=oleaut32.lib +UUIDLIB=uuid.lib +WINSPOOLLIB=winspool.lib +IMM32LIB=imm32.lib +VERSIONLIB=version.lib +WINMMLIB=winmm.lib +MPRLIB=mpr.lib +WS2_32LIB=ws2_32.lib +KERNEL32LIB=kernel32.lib +USER32LIB=user32.lib +COMDLG32LIB=comdlg32.lib +COMCTL32LIB=comctl32.lib +CRYPT32LIB=crypt32.lib +GDIPLUSLIB=gdiplus.lib +DBGHELPLIB=dbghelp.lib +MSILIB=msi.lib +DDRAWLIB=ddraw.lib +SHLWAPILIB=shlwapi.lib +URLMONLIB=urlmon.lib +WININETLIB=wininet.lib +OLDNAMESLIB=oldnames.lib +MSIMG32LIB=msimg32.lib +PROPSYSLIB=propsys.lib |