mirror of
				https://gitlab.com/freepascal.org/fpc/source.git
				synced 2025-11-04 02:39:40 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			616 lines
		
	
	
		
			15 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
			
		
		
	
	
			616 lines
		
	
	
		
			15 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
#
 | 
						|
#   Makefile.fpc for Free Pascal Source Tree
 | 
						|
#
 | 
						|
 | 
						|
[package]
 | 
						|
name=fpc
 | 
						|
version=1.0.6
 | 
						|
 | 
						|
[target]
 | 
						|
dirs=compiler rtl utils fcl fv packages ide installer
 | 
						|
 | 
						|
[install]
 | 
						|
fpcpackage=y
 | 
						|
 | 
						|
[default]
 | 
						|
fpcdir=.
 | 
						|
rule=help
 | 
						|
 | 
						|
[prerules]
 | 
						|
# make versions < 3.77 (OS2 version) are buggy
 | 
						|
ifndef inOS2
 | 
						|
override FPCDIR:=$(BASEDIR)
 | 
						|
export FPCDIR
 | 
						|
endif
 | 
						|
 | 
						|
# New ppc386 (or ppc68k if on m68k machine !)
 | 
						|
ifndef PPNEW
 | 
						|
ifeq ($(CPU_TARGET),m68k)
 | 
						|
PPSUF=68k
 | 
						|
endif
 | 
						|
ifeq ($(CPU_TARGET),i386)
 | 
						|
PPSUF=386
 | 
						|
endif
 | 
						|
ifeq ($(CPU_TARGET),powerpc)
 | 
						|
PPSUF=ppc
 | 
						|
endif
 | 
						|
ifeq ($(CPU_TARGET),alpha)
 | 
						|
PPSUF=axp
 | 
						|
endif
 | 
						|
 | 
						|
ifneq ($(OS_TARGET),$(OS_SOURCE))
 | 
						|
PPPRE=ppcross
 | 
						|
else
 | 
						|
ifneq ($(CPU_TARGET),$(CPU_SOURCE))
 | 
						|
PPPRE=ppcross
 | 
						|
else
 | 
						|
PPPRE=ppc
 | 
						|
endif
 | 
						|
endif
 | 
						|
 | 
						|
PPNEW=$(BASEDIR)/compiler/$(PPPRE)$(PPSUF)$(SRCEXEEXT)
 | 
						|
endif
 | 
						|
 | 
						|
# Check if install/ subdir is available
 | 
						|
ifneq ($(wildcard install),)
 | 
						|
CVSINSTALL=install
 | 
						|
else
 | 
						|
CVSINSTALL=.
 | 
						|
endif
 | 
						|
 | 
						|
# Install target
 | 
						|
ifdef SNAPSHOT
 | 
						|
INSTALLTARGET=install
 | 
						|
else
 | 
						|
INSTALLTARGET=distinstall
 | 
						|
endif
 | 
						|
 | 
						|
# All target
 | 
						|
ifdef SNAPSHOT
 | 
						|
ALLTARGET=all
 | 
						|
else
 | 
						|
ifndef ALLTARGET
 | 
						|
ifeq ($(OS_TARGET),win32)
 | 
						|
ALLTARGET=smart
 | 
						|
else
 | 
						|
ifeq ($(OS_TARGET),go32v2)
 | 
						|
ALLTARGET=smart
 | 
						|
else
 | 
						|
ifeq ($(OS_TARGET),linux)
 | 
						|
ALLTARGET=smart
 | 
						|
else
 | 
						|
ifeq ($(OS_TARGET),freebsd)
 | 
						|
ALLTARGET=smart
 | 
						|
else
 | 
						|
ifeq ($(OS_TARGET),netbsd)
 | 
						|
ALLTARGET=smart
 | 
						|
else
 | 
						|
ifeq ($(OS_TARGET),openbsd)
 | 
						|
ALLTARGET=smart
 | 
						|
else
 | 
						|
ALLTARGET=all
 | 
						|
endif
 | 
						|
endif
 | 
						|
endif
 | 
						|
endif
 | 
						|
endif
 | 
						|
endif
 | 
						|
endif
 | 
						|
endif
 | 
						|
 | 
						|
# Stop with an error?
 | 
						|
ifdef SNAPSHOT
 | 
						|
NOSTOP=-
 | 
						|
else
 | 
						|
NOSTOP=
 | 
						|
endif
 | 
						|
 | 
						|
# Prefix for units
 | 
						|
ifeq ($(OS_TARGET),linux)
 | 
						|
PKGPRE=units
 | 
						|
else
 | 
						|
ifeq ($(OS_TARGET),freebsd)
 | 
						|
PKGPRE=units
 | 
						|
else
 | 
						|
ifeq ($(OS_TARGET),netbsd)
 | 
						|
PKGPRE=units
 | 
						|
else
 | 
						|
ifeq ($(OS_TARGET),openbsd)
 | 
						|
PKGPRE=units
 | 
						|
else
 | 
						|
PKGPRE=u
 | 
						|
endif
 | 
						|
endif
 | 
						|
endif
 | 
						|
endif
 | 
						|
 | 
						|
# Always compile for release
 | 
						|
override RELEASE=1
 | 
						|
export RELEASE
 | 
						|
 | 
						|
# We want to have the resulting .zips in the current dir
 | 
						|
ifndef DIST_DESTDIR
 | 
						|
export DIST_DESTDIR:=$(BASEDIR)
 | 
						|
endif
 | 
						|
 | 
						|
# Temporary path to pack a file
 | 
						|
BASEPACKDIR=$(BASEDIR)/basepack
 | 
						|
 | 
						|
# Newly created fpcmake
 | 
						|
FPCMAKENEW=$(BASEDIR)/utils/fpcm/fpcmake$(EXEEXT)
 | 
						|
 | 
						|
# Build/install options
 | 
						|
BUILDOPTS=FPC=$(PPNEW) RELEASE=1
 | 
						|
INSTALLOPTS=FPC=$(PPNEW) ZIPDESTDIR=$(BASEDIR) FPCMAKE=$(FPCMAKENEW)
 | 
						|
 | 
						|
# Compile also IDE (check for ide and fv dir)
 | 
						|
ifneq ($(wildcard ide),)
 | 
						|
ifneq ($(wildcard fv),)
 | 
						|
ifeq ($(OS_TARGET),go32v2)
 | 
						|
IDE=1
 | 
						|
endif
 | 
						|
ifeq ($(OS_TARGET),win32)
 | 
						|
IDE=1
 | 
						|
endif
 | 
						|
ifeq ($(OS_TARGET),linux)
 | 
						|
IDE=1
 | 
						|
endif
 | 
						|
# is now doable too.
 | 
						|
ifeq ($(OS_TARGET),freebsd)
 | 
						|
IDE=1
 | 
						|
endif
 | 
						|
ifeq ($(OS_TARGET),os2)
 | 
						|
IDE=1
 | 
						|
endif
 | 
						|
ifeq ($(OS_TARGET),emx)
 | 
						|
IDE=1
 | 
						|
endif
 | 
						|
endif
 | 
						|
endif
 | 
						|
 | 
						|
 | 
						|
[rules]
 | 
						|
# These values can change
 | 
						|
unexport FPC_VERSION OS_SOURCE
 | 
						|
 | 
						|
# Only process directories that really exists
 | 
						|
override TARGET_DIRS:=$(wildcard $(TARGET_DIRS))
 | 
						|
 | 
						|
#####################################################################
 | 
						|
# Main targets
 | 
						|
#####################################################################
 | 
						|
 | 
						|
.PHONY: help checkfpcdir
 | 
						|
 | 
						|
help:
 | 
						|
        @$(ECHO)
 | 
						|
        @$(ECHO) Directory targets:
 | 
						|
        @$(ECHO)
 | 
						|
        @$(ECHO) $(TARGET_DIRS)
 | 
						|
        @$(ECHO)
 | 
						|
        @$(ECHO) Packing targets are:
 | 
						|
        @$(ECHO)
 | 
						|
        @$(ECHO) go32v2zip,win32zip,linuxzip,freebsdzip,sourcezip,os2zip,beoszip,sunoszip,qnxzip,amigazip
 | 
						|
        @$(ECHO)
 | 
						|
        @exit
 | 
						|
 | 
						|
 | 
						|
#####################################################################
 | 
						|
# Dependencies
 | 
						|
#####################################################################
 | 
						|
 | 
						|
#######################################
 | 
						|
# Compiler
 | 
						|
#######################################
 | 
						|
 | 
						|
.PHONY: compiler_cycle
 | 
						|
 | 
						|
compiler_cycle:
 | 
						|
        $(MAKE) -C compiler cycle
 | 
						|
 | 
						|
 | 
						|
#######################################
 | 
						|
# Packages
 | 
						|
#######################################
 | 
						|
 | 
						|
.PHONY: packages_base_all packages_extra_all \
 | 
						|
        packages_base_smart packages_extra_smart
 | 
						|
 | 
						|
packages_base_all:
 | 
						|
        $(MAKE) -C packages base_all
 | 
						|
 | 
						|
packages_base_smart:
 | 
						|
        $(MAKE) -C packages base_smart
 | 
						|
 | 
						|
packages_extra_all:
 | 
						|
        $(MAKE) -C packages extra_all
 | 
						|
 | 
						|
packages_extra_smart:
 | 
						|
        $(MAKE) -C packages extra_smart
 | 
						|
 | 
						|
 | 
						|
#######################################
 | 
						|
# Install targets
 | 
						|
#######################################
 | 
						|
 | 
						|
demo_install:
 | 
						|
        $(MAKE) -C $(CVSINSTALL)/demo sourceinstall
 | 
						|
 | 
						|
man_install:
 | 
						|
        $(MAKE) -C $(CVSINSTALL)/man installman
 | 
						|
 | 
						|
doc_install:
 | 
						|
        $(MAKE) -C $(CVSINSTALL)/doc installdoc
 | 
						|
 | 
						|
 | 
						|
#######################################
 | 
						|
# Packaging targets
 | 
						|
#######################################
 | 
						|
 | 
						|
optzips: optcompinstall optcompzip
 | 
						|
 | 
						|
optcompinstall:
 | 
						|
        $(MAKE) compiler_cycle OPT=-dNEWOPTIMIZATIONS
 | 
						|
        $(MAKE) compiler_install
 | 
						|
        $(MAKE) rtl_install
 | 
						|
 | 
						|
optcompzip:
 | 
						|
        $(MAKE) fpc_zipinstall PACKAGENAME=optcomp ZIPTARGET=optcompinstall
 | 
						|
 | 
						|
 | 
						|
##########################################################################
 | 
						|
# Packaging
 | 
						|
##########################################################################
 | 
						|
 | 
						|
.PHONY: all clean distclean build install installbase zipinstall zipinstallbase zipinstallfcl \
 | 
						|
        zipinstallpackages
 | 
						|
 | 
						|
all: build
 | 
						|
 | 
						|
clean: $(addsuffix _distclean,$(TARGET_DIRS))
 | 
						|
        $(DEL) build-stamp.$(OS_TARGET)
 | 
						|
 | 
						|
distclean: clean
 | 
						|
 | 
						|
build: build-stamp.$(OS_TARGET)
 | 
						|
build-stamp.$(OS_TARGET):
 | 
						|
# create new compiler
 | 
						|
        $(MAKE) compiler_cycle
 | 
						|
# clean
 | 
						|
        $(MAKE) rtl_clean
 | 
						|
        $(MAKE) packages_clean
 | 
						|
        $(MAKE) fcl_clean
 | 
						|
        $(MAKE) utils_clean
 | 
						|
ifdef IDE
 | 
						|
        $(MAKE) fv_clean
 | 
						|
        $(MAKE) ide_clean
 | 
						|
endif
 | 
						|
# build everything
 | 
						|
        $(MAKE) rtl_$(ALLTARGET) $(BUILDOPTS)
 | 
						|
        $(MAKE) packages_base_$(ALLTARGET) $(BUILDOPTS)
 | 
						|
        $(MAKE) fcl_$(ALLTARGET) $(BUILDOPTS)
 | 
						|
        $(MAKE) packages_extra_$(ALLTARGET) $(BUILDOPTS)
 | 
						|
        $(MAKE) utils_all $(BUILDOPTS)
 | 
						|
ifdef IDE
 | 
						|
        $(MAKE) fv_all $(BUILDOPTS)
 | 
						|
        $(MAKE) ide_all $(BUILDOPTS)
 | 
						|
        $(MAKE) installer_all $(BUILDOPTS)
 | 
						|
endif
 | 
						|
        $(ECHOREDIR) Build > build-stamp.$(OS_TARGET)
 | 
						|
 | 
						|
installbase: build-stamp.$(OS_TARGET)
 | 
						|
# create dirs
 | 
						|
        $(MKDIR) $(INSTALL_BASEDIR)
 | 
						|
        $(MKDIR) $(INSTALL_DOCDIR)
 | 
						|
        $(MKDIR) $(INSTALL_BINDIR)
 | 
						|
ifndef SNAPSHOT
 | 
						|
# readme & whatsnew and docs
 | 
						|
        $(COPY) $(CVSINSTALL)/doc/*.txt $(CVSINSTALL)/doc/copying* $(CVSINSTALL)/doc/faq.* $(INSTALL_DOCDIR)
 | 
						|
# bingo32 (cwsdpmi,wmemu387.dxe)
 | 
						|
ifeq ($(OS_TARGET),go32v2)
 | 
						|
        $(COPY) $(CVSINSTALL)/bingo32/* $(INSTALL_BINDIR)
 | 
						|
endif
 | 
						|
# binw32 (cygwin1.dll)
 | 
						|
ifeq ($(OS_TARGET),win32)
 | 
						|
        $(COPY) $(CVSINSTALL)/binw32/* $(INSTALL_BINDIR)
 | 
						|
endif
 | 
						|
# manpages for UNIX systems
 | 
						|
ifeq ($(OS_TARGET),linux)
 | 
						|
        $(MAKE) -C $(CVSINSTALL)/man installman
 | 
						|
endif
 | 
						|
ifeq ($(OS_TARGET),freebsd)
 | 
						|
        $(MAKE) -C $(CVSINSTALL)/man installman
 | 
						|
endif
 | 
						|
ifeq ($(OS_TARGET),sunos)
 | 
						|
        $(MAKE) -C $(CVSINSTALL)/man installman
 | 
						|
endif
 | 
						|
ifeq ($(OS_TARGET),qnx)
 | 
						|
        $(MAKE) -C $(CVSINSTALL)/man installman
 | 
						|
endif
 | 
						|
endif
 | 
						|
# install generated things
 | 
						|
        $(MAKE) compiler_$(INSTALLTARGET) $(INSTALLOPTS)
 | 
						|
        $(MAKE) rtl_$(INSTALLTARGET) $(INSTALLOPTS)
 | 
						|
 | 
						|
install: build-stamp.$(OS_TARGET)
 | 
						|
        $(MAKE) installbase $(INSTALLOPTS)
 | 
						|
        $(MAKE) packages_$(INSTALLTARGET) $(INSTALLOPTS)
 | 
						|
        $(MAKE) fcl_$(INSTALLTARGET) $(INSTALLOPTS)
 | 
						|
        $(MAKE) utils_$(INSTALLTARGET) $(INSTALLOPTS)
 | 
						|
ifdef IDE
 | 
						|
        $(NOSTOP)$(MAKE) ide_$(INSTALLTARGET) $(BUILDOPTS)
 | 
						|
endif
 | 
						|
 | 
						|
zipinstall: build-stamp.$(OS_TARGET)
 | 
						|
        $(MAKE) fpc_zipinstall ZIPTARGET=installbase ZIPNAME=base$(ZIPSUFFIX) $(INSTALLOPTS)
 | 
						|
        $(MAKE) packages_zip$(INSTALLTARGET) $(INSTALLOPTS) ZIPPREFIX=$(PKGPRE)
 | 
						|
        $(MAKE) fcl_zip$(INSTALLTARGET) $(INSTALLOPTS) ZIPPREFIX=$(PKGPRE)
 | 
						|
        $(MAKE) utils_zip$(INSTALLTARGET) $(INSTALLOPTS) ZIPNAME=util$(ZIPSUFFIX)
 | 
						|
ifdef IDE
 | 
						|
        $(NOSTOP)$(MAKE) ide_zip$(INSTALLTARGET) $(INSTALLOPTS) ZIPNAME=ide$(ZIPSUFFIX)
 | 
						|
endif
 | 
						|
 | 
						|
 | 
						|
##########################################################################
 | 
						|
# Docs
 | 
						|
##########################################################################
 | 
						|
 | 
						|
.PHONY: docspdf docs docsrcinstall docsrc
 | 
						|
 | 
						|
# We don't want the package name fpc in the path
 | 
						|
DOCSOURCEDIR=$(INSTALL_SOURCEDIR)/../docs
 | 
						|
 | 
						|
docspdf:
 | 
						|
        $(MAKE) -C docs pdfinstall DOCINSTALLDIR=$(PACKDIR)
 | 
						|
 | 
						|
docs:
 | 
						|
        $(MAKE) fpc_zipinstall ZIPTARGET=docspdf ZIPNAME=docs
 | 
						|
 | 
						|
docsrcinstall:
 | 
						|
        $(MAKE) -C docs clean
 | 
						|
        $(MKDIR) $(DOCSOURCEDIR)
 | 
						|
        $(COPYTREE) docs/* $(DOCSOURCEDIR)
 | 
						|
 | 
						|
docsrc:
 | 
						|
        $(MAKE) fpc_zipinstall ZIPTARGET=docsrcinstall ZIPNAME=docsrc
 | 
						|
 | 
						|
 | 
						|
##########################################################################
 | 
						|
# Demos
 | 
						|
##########################################################################
 | 
						|
 | 
						|
.PHONY: demozip
 | 
						|
 | 
						|
# We don't want the package name fpc in the path
 | 
						|
ifdef UNIXINSTALLDIR
 | 
						|
DEMOSOURCEDIR=$(INSTALL_DOCDIR)/../demo
 | 
						|
else
 | 
						|
DEMOSOURCEDIR=$(INSTALL_PREFIX)/demo
 | 
						|
endif
 | 
						|
 | 
						|
demosrcinstall:
 | 
						|
        $(MAKE) -C demo clean
 | 
						|
        $(MKDIR) $(DEMOSOURCEDIR)
 | 
						|
        $(COPYTREE) demo/* $(DEMOSOURCEDIR)
 | 
						|
 | 
						|
demozip:
 | 
						|
        $(MAKE) fpc_zipinstall ZIPTARGET=demosrcinstall ZIPNAME=demo
 | 
						|
 | 
						|
 | 
						|
##########################################################################
 | 
						|
# Source targets
 | 
						|
##########################################################################
 | 
						|
 | 
						|
.PHONY: sourcebase sourcezip
 | 
						|
 | 
						|
# We don't want the fpc/ package prefix
 | 
						|
INSTALL_BASESOURCEDIR=$(INSTALL_SOURCEDIR)/..
 | 
						|
 | 
						|
sourcebase:
 | 
						|
# base Makefiles needed for sources
 | 
						|
        $(MKDIR) $(INSTALL_BASESOURCEDIR)
 | 
						|
        $(MKDIR) $(INSTALL_BASESOURCEDIR)/rtl
 | 
						|
        $(MKDIR) $(INSTALL_BASESOURCEDIR)/packages
 | 
						|
        $(MKDIR) $(INSTALL_BASESOURCEDIR)/packages/base
 | 
						|
        $(MKDIR) $(INSTALL_BASESOURCEDIR)/packages/extra
 | 
						|
        $(COPY) Makefile*  $(INSTALL_BASESOURCEDIR)
 | 
						|
        $(COPY) rtl/Makefile* $(INSTALL_BASESOURCEDIR)/rtl
 | 
						|
        $(COPY) packages/Makefile* $(INSTALL_BASESOURCEDIR)/packages
 | 
						|
        $(COPY) packages/base/Makefile* $(INSTALL_BASESOURCEDIR)/packages/base
 | 
						|
        $(COPY) packages/extra/Makefile* $(INSTALL_BASESOURCEDIR)/packages/extra
 | 
						|
 | 
						|
sourcezip:
 | 
						|
        $(MAKE) fpc_zipinstall ZIPTARGET=sourcebase ZIPNAME=basesrc
 | 
						|
        $(MAKE) compiler_zipsourceinstall
 | 
						|
        $(MAKE) rtl_zipsourceinstall
 | 
						|
        $(MAKE) packages_zipsourceinstall ZIPPREFIX=$(PKGPRE)
 | 
						|
        $(MAKE) fcl_zipsourceinstall
 | 
						|
        $(MAKE) utils_zipsourceinstall
 | 
						|
        $(MAKE) ide_zipsourceinstall
 | 
						|
        $(MAKE) installer_zipsourceinstall
 | 
						|
 | 
						|
 | 
						|
##########################################################################
 | 
						|
# OS targets
 | 
						|
##########################################################################
 | 
						|
 | 
						|
.PHONY: go32v2 win32 linux freebsd os2 netbsd openbsd go32v2zip win32zip linuxzip freebsdzip os2zip netbsdzip openbsdzip
 | 
						|
 | 
						|
go32v2: checkfpcdir
 | 
						|
        $(MAKE) install OS_TARGET=go32v2
 | 
						|
 | 
						|
win32: checkfpcdir
 | 
						|
        $(MAKE) install OS_TARGET=win32
 | 
						|
 | 
						|
linux: checkfpcdir
 | 
						|
        $(MAKE) install OS_TARGET=linux
 | 
						|
 | 
						|
freebsd: checkfpcdir
 | 
						|
        $(MAKE) install OS_TARGET=freebsd
 | 
						|
 | 
						|
netbsd: checkfpcdir
 | 
						|
        $(MAKE) install OS_TARGET=netbsd
 | 
						|
 | 
						|
openbsd: checkfpcdir
 | 
						|
        $(MAKE) install OS_TARGET=openbsd
 | 
						|
 | 
						|
os2: checkfpcdir
 | 
						|
        $(MAKE) install OS_TARGET=os2
 | 
						|
 | 
						|
sunos: checkfpcdir
 | 
						|
        $(MAKE) install OS_TARGET=sunos
 | 
						|
 | 
						|
 | 
						|
go32v2zip: checkfpcdir
 | 
						|
        $(MAKE) zipinstall OS_TARGET=go32v2
 | 
						|
 | 
						|
win32zip: checkfpcdir
 | 
						|
        $(MAKE) zipinstall OS_TARGET=win32
 | 
						|
 | 
						|
linuxzip: checkfpcdir
 | 
						|
        $(MAKE) zipinstall OS_TARGET=linux
 | 
						|
 | 
						|
freebsdzip : checkfpcdir
 | 
						|
        $(MAKE) zipinstall OS_TARGET=freebsd
 | 
						|
 | 
						|
netbsdzip : checkfpcdir
 | 
						|
        $(MAKE) zipinstall OS_TARGET=netbsd
 | 
						|
 | 
						|
openbsdzip : checkfpcdir
 | 
						|
        $(MAKE) zipinstall OS_TARGET=openbsd
 | 
						|
 | 
						|
beoszip : checkfpcdir
 | 
						|
        $(MAKE) zipinstall OS_TARGET=beos USEZIP=1
 | 
						|
 | 
						|
 | 
						|
os2zip: checkfpcdir
 | 
						|
        $(MAKE) zipinstall OS_TARGET=os2
 | 
						|
 | 
						|
sunoszip: checkfpcdir
 | 
						|
        $(MAKE) zipinstall OS_TARGET=sunos TARPROG=gtar
 | 
						|
 | 
						|
qnxzip: checkfpcdir
 | 
						|
                $(MAKE) zipinstall OS_TARGET=qnx
 | 
						|
                
 | 
						|
amigazip: checkfpcdir
 | 
						|
                $(MAKE) zipinstall OS_TARGET=amiga
 | 
						|
                
 | 
						|
##########################################################################
 | 
						|
# Dos, OS/2 Short 8.3 Names
 | 
						|
##########################################################################
 | 
						|
 | 
						|
.PHONY: renametoshort shortsrc shortbin shortnames
 | 
						|
 | 
						|
renametoshort:
 | 
						|
# Compiler parts
 | 
						|
        -mv compiler$(ZIPSUFFIX).zip comp$(ZIPSUFFIX).zip
 | 
						|
        -mv utils$(ZIPSUFFIX).zip util$(ZIPSUFFIX).zip
 | 
						|
        -mv installer$(ZIPSUFFIX).zip inst$(ZIPSUFFIX).zip
 | 
						|
# Packages
 | 
						|
        -mv ugdbint$(ZIPSUFFIX).zip ugdb$(ZIPSUFFIX).zip
 | 
						|
        -mv uregexpr$(ZIPSUFFIX).zip ureg$(ZIPSUFFIX).zip
 | 
						|
        -mv upaszlib$(ZIPSUFFIX).zip upzl$(ZIPSUFFIX).zip
 | 
						|
        -mv uuncgi$(ZIPSUFFIX).zip ucgi$(ZIPSUFFIX).zip
 | 
						|
        -mv uunzip$(ZIPSUFFIX).zip uzip$(ZIPSUFFIX).zip
 | 
						|
 | 
						|
shortsrc:
 | 
						|
        $(MAKE) renametoshort ZIPSUFFIX=src
 | 
						|
 | 
						|
shortbin:
 | 
						|
        $(MAKE) renametoshort
 | 
						|
 | 
						|
shortnames: shortsrc shortbin
 | 
						|
 | 
						|
##########################################################################
 | 
						|
# Debian
 | 
						|
##########################################################################
 | 
						|
 | 
						|
ifdef inUnix
 | 
						|
 | 
						|
ifneq ($(wildcard $(CVSINSTALL)/debian/changelog),)
 | 
						|
 | 
						|
.PHONY: debcopy deb
 | 
						|
 | 
						|
DEBPACKAGEVERSION:=$(shell head -n 1 $(CVSINSTALL)/debian/changelog | awk '{ print $$2 }' | tr -d '[()]')
 | 
						|
DEBFPCVERSION:=$(shell echo $(DEBPACKAGEVERSION) | awk -F '-' '{ print $$1 }')
 | 
						|
DEBSRCDIR:=/usr/src/fpc-$(DEBFPCVERSION)
 | 
						|
 | 
						|
debcopy: distclean
 | 
						|
        rm -rf $(DEBSRCDIR)
 | 
						|
        install -d $(DEBSRCDIR)
 | 
						|
        $(COPYTREE) compiler $(DEBSRCDIR)
 | 
						|
        $(COPYTREE) rtl $(DEBSRCDIR)
 | 
						|
        $(COPYTREE) fcl $(DEBSRCDIR)
 | 
						|
        $(COPYTREE) packages $(DEBSRCDIR)
 | 
						|
        $(COPYTREE) utils $(DEBSRCDIR)
 | 
						|
        $(COPYTREE) demo $(DEBSRCDIR)
 | 
						|
        $(COPYTREE) logs $(DEBSRCDIR)
 | 
						|
        $(COPYTREE) docs $(DEBSRCDIR)
 | 
						|
        $(COPYTREE) Makefile* $(DEBSRCDIR)
 | 
						|
        $(COPYTREE) $(CVSINSTALL)/debian $(DEBSRCDIR)
 | 
						|
        $(COPYTREE) $(CVSINSTALL)/man $(DEBSRCDIR)
 | 
						|
        $(COPYTREE) $(CVSINSTALL)/doc $(DEBSRCDIR)
 | 
						|
        find $(DEBSRCDIR) -name 'CVS*' | xargs -n1 rm -rf
 | 
						|
        chmod 755 $(DEBSRCDIR)/debian/rules
 | 
						|
 | 
						|
deb: checkfpcdir debcopy
 | 
						|
        cd $(DEBSRCDIR) ; debian/rules binary
 | 
						|
 | 
						|
endif   # changelog found
 | 
						|
 | 
						|
endif
 | 
						|
 | 
						|
 | 
						|
##########################################################################
 | 
						|
# RPM
 | 
						|
##########################################################################
 | 
						|
 | 
						|
ifdef inUnix
 | 
						|
 | 
						|
ifneq ($(wildcard $(CVSINSTALL)/fpc.spec),)
 | 
						|
 | 
						|
.PHONY: rpmcopy rpm
 | 
						|
 | 
						|
RPMFPCVERSION:=$(shell grep 'define fpcversion' $(CVSINSTALL)/fpc.spec | awk '{ print $$3 }')
 | 
						|
 | 
						|
REDHATDIR=/usr/src/redhat
 | 
						|
RPMSOURCESDIR:=$(REDHATDIR)/SOURCES
 | 
						|
RPMSPECDIR:=$(REDHATDIR)/SPECS
 | 
						|
RPMSRCDIR:=$(RPMSOURCESDIR)/fpc
 | 
						|
DOCSRCDIR:=$(RPMSOURCESDIR)/fpcdoc
 | 
						|
rpmcopy: distclean
 | 
						|
        install -d $(REDHATDIR)
 | 
						|
        install -d $(RPMSPECDIR)
 | 
						|
        install -d $(RPMSOURCESDIR)
 | 
						|
# fpc.rpm
 | 
						|
        rm -rf $(RPMSRCDIR)
 | 
						|
        cp $(CVSINSTALL)/fpc.spec $(RPMSPECDIR)/fpc-$(RPMFPCVERSION).spec
 | 
						|
        install -d $(RPMSRCDIR)
 | 
						|
        $(COPYTREE) compiler $(RPMSRCDIR)
 | 
						|
        $(COPYTREE) rtl $(RPMSRCDIR)
 | 
						|
        $(COPYTREE) fcl $(RPMSRCDIR)
 | 
						|
        $(COPYTREE) packages $(RPMSRCDIR)
 | 
						|
        $(COPYTREE) utils $(RPMSRCDIR)
 | 
						|
        $(COPYTREE) demo $(RPMSRCDIR)
 | 
						|
        $(COPYTREE) logs $(RPMSRCDIR)
 | 
						|
        $(COPYTREE) Makefile* $(RPMSRCDIR)
 | 
						|
        $(COPYTREE) $(CVSINSTALL)/man $(RPMSRCDIR)
 | 
						|
        $(COPYTREE) $(CVSINSTALL)/doc $(RPMSRCDIR)
 | 
						|
        find $(RPMSRCDIR) -name 'CVS*' | xargs -n1 rm -rf
 | 
						|
        cd $(RPMSRCDIR) ; tar cvz * > $(RPMSOURCESDIR)/fpc-$(RPMFPCVERSION)-src.tar.gz
 | 
						|
# fpc-docs.rpm
 | 
						|
        rm -rf $(DOCSRCDIR)
 | 
						|
        cp $(CVSINSTALL)/fpc-docs.spec $(RPMSPECDIR)/fpc-docs-$(RPMFPCVERSION).spec
 | 
						|
        install -d $(DOCSRCDIR)
 | 
						|
        $(COPYTREE) docs $(DOCSRCDIR)
 | 
						|
        find $(DOCSRCDIR) -name 'CVS*' | xargs -n1 rm -rf
 | 
						|
        cd $(DOCSRCDIR) ; tar cvz * > $(RPMSOURCESDIR)/fpc-docs-$(RPMFPCVERSION)-src.tar.gz
 | 
						|
 | 
						|
rpm: checkfpcdir rpmcopy
 | 
						|
        cd $(RPMSPECDIR) ; rpm --nodeps -ba fpc-$(RPMFPCVERSION).spec
 | 
						|
        cd $(RPMSPECDIR) ; rpm --nodeps -ba fpc-docs-$(RPMFPCVERSION).spec
 | 
						|
 | 
						|
endif   # spec found
 | 
						|
 | 
						|
endif
 |