| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316 |
- #
- # Makefile.fpc for Release-files creation
- #
- [defaults]
- defaultrule=help
- [sections]
- info=0
- zipinstall=1
- [tools]
- toolzip=1
- toolupx=1
- tooldate=1
- [presettings]
- OLDFPCDIR:=$(FPCDIR)
- checkfpcdir:
- ifdef OLDFPCDIR
- ifneq ($(OLDFPCDIR),)
- FPCDIRSET=fpcdirset
- fpcdirset:
- @echo --------------------------------------------
- @echo
- @echo You must unset FPCDIR to use this Makefile !
- @echo
- @echo --------------------------------------------
- @cantcontinuewithfpcdir
- endif
- endif
- # All target
- ifndef ALLTARGET
- ifeq ($(OS_TARGET),win32)
- ALLTARGET=smart
- else
- ifeq ($(OS_TARGET),go32v2)
- ALLTARGET=smart
- else
- ALLTARGET=all
- endif
- endif
- endif
- # Prefix for units
- ifeq ($(OS_TARGET),linux)
- PKGPRE=units
- else
- PKGPRE=u
- endif
- # Test dir if none specified
- ifndef PREFIXINSTALLDIR
- PREFIXINSTALLDIR=/pptest
- endif
- # Directory to the base of the CVS tree
- CVSBASE=..
- # Always compile for release
- override RELEASE=1
- # Temporary path to pack a file
- BASEPACKDIR=$(BASEDIR)/basepack
- # Use new ppc386
- PPNEW=$(BASEDIR)/$(CVSBASE)/compiler/ppc386$(EXEEXT)
- # Don't use ppufiles for win32 becuase of commandline length problems
- ifneq ($(OS_TARGET),win32)
- PPUFILESNEW=$(BASEDIR)/$(CVSBASE)/utils/ppufiles$(EXEEXT)
- endif
- # Build/install options
- BUILDOPTS=FPC=$(PPNEW) RELEASE=1
- INSTALLOPTS=FPC=$(PPNEW) ZIPDESTDIR=$(BASEDIR)
- ifdef PPUFILESNEW
- override INSTALLOPT+=PPUFILES=$(PPUFILESNEW)
- endif
- [rules]
- # These values can change
- unexport FPC_VERSION OS_SOURCE
- .PHONY: help checkfpcdir
- help:
- @echo
- @echo Possible targets are:
- @echo
- @echo go32v2,win32,linux,source
- @echo
- @exit
- ##########################################################################
- # Install
- ##########################################################################
- .PHONY: installer
- INSTALLERBUILDDIR=../fpinst
- installer:
- $(COPYTREE) fpinst $(INSTALLERBUILDDIR)
- $(MAKE) -C $(INSTALLERBUILDDIR) all RELEASE=1
- $(MOVE) $(INSTALLERBUILDDIR)/install.exe .
- ifdef UPXPROG
- -$(UPXPROG) install.exe
- endif
- $(DELTREE) $(INSTALLERBUILDDIR)
- installersrc:
- $(COPYTREE) fpinst $(INSTALLERBUILDDIR)
- $(MAKE) -C $(INSTALLERBUILDDIR) zipsourceinstall
- $(DELTREE) $(INSTALLERBUILDDIR)
- ##########################################################################
- # Basego32.zip
- ##########################################################################
- .PHONY: clean build installbase zipinstall zipinstallbase zipinstallfcl \
- zipinstallpackages
- export RELEASE DESTZIPDIR
- clean:
- $(DEL) build-stamp
- build: build-stamp
- build-stamp: $(FPCDIRSET)
- # create new compiler
- $(MAKE) -C $(CVSBASE) compiler_cycle
- # clean
- $(MAKE) -C $(CVSBASE) rtl_clean
- $(MAKE) -C $(CVSBASE) api_clean
- $(MAKE) -C $(CVSBASE) fcl_clean
- $(MAKE) -C $(CVSBASE) packages_clean
- $(MAKE) -C $(CVSBASE) utils_clean
- # build everything
- $(MAKE) -C $(CVSBASE) rtl_$(ALLTARGET) $(BUILDOPTS)
- $(MAKE) -C $(CVSBASE) api_$(ALLTARGET) $(BUILDOPTS)
- $(MAKE) -C $(CVSBASE) fcl_$(ALLTARGET) $(BUILDOPTS)
- $(MAKE) -C $(CVSBASE) packages_$(ALLTARGET) $(BUILDOPTS)
- $(MAKE) -C $(CVSBASE) utils_all $(BUILDOPTS)
- $(ECHO) Build > build-stamp
- installbase: build-stamp
- # create dirs
- $(MKDIR) $(BASEINSTALLDIR)
- $(MKDIR) $(DOCINSTALLDIR)
- $(MKDIR) $(BININSTALLDIR)
- # readme & whatsnew and docs
- $(COPY) doc/*.txt doc/copying* doc/faq.html $(DOCINSTALLDIR)
- # bingo32 (cwsdpmi,wmemu387.dxe)
- ifeq ($(OS_TARGET),go32v2)
- $(COPY) bingo32/* $(BININSTALLDIR)
- endif
- # manpages for linux
- ifeq ($(OS_TARGET),linux)
- $(MAKE) -C man installman
- endif
- # install generated things
- $(MAKE) -C $(CVSBASE) compiler_install $(INSTALLOPTS)
- $(MAKE) -C $(CVSBASE) rtl_install $(INSTALLOPTS)
- $(MAKE) -C $(CVSBASE) utils_install $(INSTALLOPTS)
- install: build-stamp
- $(MAKE) zipinstall ZIPTARGET=installbase PACKAGENAME=base
- $(MAKE) -C $(CVSBASE) api_zipinstall $(INSTALLOPTS) PACKAGEPREFIX=$(PKGPRE)
- $(MAKE) -C $(CVSBASE) fcl_zipinstall $(INSTALLOPTS) PACKAGEPREFIX=$(PKGPRE)
- $(MAKE) -C $(CVSBASE) packages_zipinstall $(INSTALLOPTS) PACKAGEPREFIX=$(PKGPRE)
- ##########################################################################
- # Docs
- ##########################################################################
- .PHONY: docspdf docs docsrcinstall docsrc
- docspdf:
- $(MAKE) -C $(CVSBASE)/docs pdfinstall
- docs:
- $(MAKE) zipinstall ZIPTARGET=docspdf ZIPNAME=docs
- docsrcinstall:
- $(MAKE) -C $(CVSBASE)/docs clean
- $(MKDIR) $(SOURCEINSTALLDIR)
- $(COPYTREE) $(CVSBASE)/docs $(SOURCEINSTALLDIR)
- docsrc:
- $(MAKE) zipinstall ZIPTARGET=docsrcinstall ZIPNAME=docsrc
- ##########################################################################
- # Demos
- ##########################################################################
- .PHONY: demo demoinstall
- demoinstall:
- $(COPYTREE) demo $(PREFIXINSTALLDIR)
- demo:
- $(MAKE) zipinstall ZIPTARGET=demoinstall ZIPNAME=demo
- ##########################################################################
- # Source targets
- ##########################################################################
- sourcebase:
- # base Makefiles needed for sources
- $(MKDIR) $(SOURCEINSTALLDIR)
- $(MKDIR) $(SOURCEINSTALLDIR)/rtl
- $(MKDIR) $(SOURCEINSTALLDIR)/packages
- $(COPY) $(CVSBASE)/Makefile* $(SOURCEINSTALLDIR)
- $(COPY) $(CVSBASE)/rtl/Makefile* $(SOURCEINSTALLDIR)/rtl
- $(COPY) $(CVSBASE)/packages/Makefile* $(SOURCEINSTALLDIR)/packages
- source:
- $(MAKE) zipinstall ZIPTARGET=sourcebase ZIPNAME=basesrc
- $(MAKE) -C $(CVSBASE) compiler_zipsourceinstall
- $(MAKE) -C $(CVSBASE) rtl_zipsourceinstall
- $(MAKE) -C $(CVSBASE) api_zipsourceinstall
- $(MAKE) -C $(CVSBASE) fcl_zipsourceinstall
- $(MAKE) -C $(CVSBASE) packages_zipsourceinstall
- $(MAKE) -C $(CVSBASE) utils_zipsourceinstall
- # $(MAKE) installersrc
- # $(MAKE) docsrc
- ##########################################################################
- # OS targets
- ##########################################################################
- .PHONY: go32v2 win32 linux
- go32v2:
- $(MAKE) install OS_TARGET=go32v2
- win32:
- $(MAKE) install OS_TARGET=win32
- linux:
- $(MAKE) install OS_TARGET=linux
- ##########################################################################
- # Debian / RPM
- ##########################################################################
- .PHONY: debian
- DEBSRCDIR:=/usr/src/fpc-$(FPC_VERSION)
- deb:
- rm -rf $(DEBSRCDIR)
- install -d $(DEBSRCDIR)
- $(COPYTREE) $(CVSBASE)/compiler $(DEBSRCDIR)
- $(COPYTREE) $(CVSBASE)/rtl $(DEBSRCDIR)
- $(COPYTREE) $(CVSBASE)/fcl $(DEBSRCDIR)
- $(COPYTREE) $(CVSBASE)/api $(DEBSRCDIR)
- $(COPYTREE) $(CVSBASE)/packages $(DEBSRCDIR)
- $(COPYTREE) $(CVSBASE)/utils $(DEBSRCDIR)
- $(COPYTREE) $(CVSBASE)/logs $(DEBSRCDIR)
- $(COPYTREE) $(CVSBASE)/docs $(DEBSRCDIR)
- $(COPYTREE) $(CVSBASE)/base/Makefile* $(DEBSRCDIR)
- $(COPYTREE) $(CVSBASE)/install/debian $(DEBSRCDIR)
- $(COPYTREE) $(CVSBASE)/install/man $(DEBSRCDIR)
- $(COPYTREE) $(CVSBASE)/install/doc $(DEBSRCDIR)
- $(COPYTREE) $(CVSBASE)/install/demo $(DEBSRCDIR)
- find $(DEBSRCDIR) -name 'CVS*' | xargs -n1 rm -rf
- chmod 755 $(DEBSRCDIR)/debian/rules
- cd $(DEBSRCDIR) ; debian/rules binary
- RPMSOURCESDIR:=/usr/src/redhat/SOURCES
- RPMSPECDIR:=/usr/src/redhat/SPECS
- RPMSRCDIR:=$(RPMSOURCESDIR)/fpc
- DOCSRCDIR:=$(RPMSOURCESDIR)/fpcdoc
- rpm:
- # fpc.rpm
- rm -rf $(RPMSRCDIR)
- cp fpc-$(FPC_VERSION).spec $(RPMSPECDIR)
- install -d $(RPMSRCDIR)
- $(COPYTREE) $(CVSBASE)/compiler $(RPMSRCDIR)
- $(COPYTREE) $(CVSBASE)/rtl $(RPMSRCDIR)
- $(COPYTREE) $(CVSBASE)/fcl $(RPMSRCDIR)
- $(COPYTREE) $(CVSBASE)/api $(RPMSRCDIR)
- $(COPYTREE) $(CVSBASE)/packages $(RPMSRCDIR)
- $(COPYTREE) $(CVSBASE)/utils $(RPMSRCDIR)
- $(COPYTREE) $(CVSBASE)/logs $(RPMSRCDIR)
- $(COPYTREE) $(CVSBASE)/base/Makefile* $(RPMSRCDIR)
- $(COPYTREE) $(CVSBASE)/install/man $(RPMSRCDIR)
- $(COPYTREE) $(CVSBASE)/install/doc $(RPMSRCDIR)
- $(COPYTREE) $(CVSBASE)/install/demo $(RPMSRCDIR)
- find $(RPMSRCDIR) -name 'CVS*' | xargs -n1 rm -rf
- cd $(RPMSRCDIR) ; tar cvz * > $(RPMSOURCESDIR)/fpc-$(FPC_VERSION)-src.tar.gz
- cd $(RPMSPECDIR) ; rpm -ba fpc-$(FPC_VERSION).spec
- # fpc-docs.rpm
- rm -rf $(DOCSRCDIR)
- cp fpc-docs-$(FPC_VERSION).spec $(RPMSPECDIR)
- install -d $(DOCSRCDIR)
- $(COPYTREE) $(CVSBASE)/docs $(DOCSRCDIR)
- find $(DOCSRCDIR) -name 'CVS*' | xargs -n1 rm -rf
- cd $(DOCSRCDIR) ; tar cvz * > $(RPMSOURCESDIR)/fpc-docs-$(FPC_VERSION)-src.tar.gz
- cd $(RPMSPECDIR) ; rpm -ba fpc-docs-$(FPC_VERSION).spec
|