#**************************************************************************** # # Copyright (c) 1993,96 by Florian Klaempfl # #**************************************************************************** # # makefile for FPKPascal # ##################################################################### # Start of configurable section ##################################################################### # What compiler do you want to use : # !! If you specify a path, specify an absolute path !! #PP=/pas/fpk/curver/ppc386 PP=ppc386 # Where do you want to install the units ? # For each of the systems, a subdirectory OSunits of # this directry will be created, and the system dependent # files will be set there. # For linux: UNITINSTALLDIR=/usr/lib/ppc/0.99.5 # For dos/os2 : # UNITINSTALLDIR=\pp\units # Where do you want to install the (shared or static) run-time libraries ? # For linux: LIBINSTALLDIR=/usr/lib # For dos/os2 : #LIBINSTALLDIR=\pp\units # Where do you want the utilities installed ? # for linux BININSTALLDIR=/usr/bin # for DOS, OS/2 # BININSTALLDIR=\pp\bin ##################################################################### # Try to determine Operating System ##################################################################### BASEDIR=$(shell pwd) # in linux no : in pathes ifeq ($(findstring :,$(BASEDIR)),) inlinux=1 endif # in case pwd is not present on the DOS-OS ifeq ($(strip $(BASEDIR)),'') inlinux= BASEDIR:=. endif # set here the type of the ppc386 you use: # Choose from: go32v1 go32v2 linux or os2 # can determine if on linux otherwise assume go32v2 ifdef inlinux OS_SRC=linux else OS_SRC=go32v2 endif # Set redir to YES if you want a log file to be kept. REDIR=YES # Set NODEBUG to YES if you DON'T want debugging NODEBUG=YES # set target processor type CPU=i386 # CPU=m68k # Set REFPATH if you want to generate diffs to a standard RTL # this can not be a relative path. REFPATH=/usr/local/fpk/work/0.9.7/rtl # Where is the diff program ? (No relative paths) DIFF=diff # What options do you want to pass to diff ? DIFFOPTS=-b -c # Where is the ppumove program ? (set only if you want to make libs) # Don't specify a relative path. PPUMOVE=ppumove # # Optional configuration settings. # # Set any options you wish to give to the compiler OPT= # Optional : Specify the place of the log file. # default is 'log' in the source directory # REDIRFILE= # Optional: Error definitions file you want the compiler to use. # !! If you specify a path, specify an absolute path. !! # ERRORFILE= # Optional: The program to create directories. # Under DOS this is by default 'mkdir'. Under Linux this is 'install -m 755 -d' # MKDIR= # Optional: The program to install the files into the destination directory. # Under DOS this is by default 'copy', under Linux this is 'install -m 644' # copy will not work with / # use cp from djgpp instead # INSTALL= ####################################################################### # End of configurable section. # Do not edit after this line. ####################################################################### # Check debugging. ifneq (YES,$(NODEBUG)) OPT:=$(OPT) -g endif # Check logfile. ifeq (YES,$(REDIR)) ifdef REDIRFILE override REDIR:= >> $(REDIRFILE) else override REDIR:= >> log endif else REDIR:= endif # Check error definitions file. ifdef ERRORFILE OPT:= $(OPT) -Fr$(ERRORFILE) endif # Check operating system. ifeq ($(OS_SRC),linux) DOS=NO else DOS=YES # also redirect the standard error to the redir file ifdef REDIR PP:=redir -eo $(PP) # set the verbosity to max OPT:=$(OPT) -va endif endif # Check copy delete commands. # You need cp from GNU to handle / as directory separator COPY=cp -p DEL=rm # To install programs ifndef INSTALL ifeq ($(DOS),YES) INSTALL=copy else INSTALL=install endif endif # To make a directory. ifndef MKDIR ifeq ($(DOS),YES) MKDIR=mkdir else MKDIR=install -m 755 -d endif endif # add target processor define to command line options OPT:=$(OPT) -d$(CPU) # Variables to export export OS_SRC DOS SEP PP OPT REDIR COPY DEL LIBINSTALLDIR INSTALL MKDIR \ REFPATH CPU PPUMOVE UNITINSTALLDIR .PHONY: rtl_go32v1 rtl_go32v2 rtl_linux rtl_os2 clean install install_os2 install_linux \ install_go3v2 install_go32v1 native diffs diffclean libs libinstall utils\ utils_install native: rtl$(OS_SRC) nativelibs : $(OS_SRC)libs all: rtlgo32v1 rtlgo32v2 rtllinux rtlos2 libs: go32v1libs go32v2libs linuxlibs os2libs diffs: diffs_rtl diffs_inc diffs_i386 diffs_m68k diffs_dos diffs_cfg \ diffs_os2 diffs_go32v1 diffs_go32v2 diffs_linux diffs_template rtlgo32v1: $(MAKE) -C dos/go32v1 CFGFILE=../../cfg/ppgo32v1.cfg OS_TARGET=go32v1 rtlgo32v2: $(MAKE) -C dos/go32v2 CFGFILE=../../cfg/ppgo32v2.cfg OS_TARGET=go32v2 rtllinux: $(MAKE) -C linux CFGFILE=../cfg/pplinux.cfg OS_TARGET=linux rtlos2: $(MAKE) -C os2 CFGFILE=../cfg/ppos2.cfg OS_TARGET=os2 go32v1libs: $(MAKE) -C dos/go32v1 CFGFILE=../../cfg/ppdos.cfg OS_TARGET=go32v1 libs go32v2libs: $(MAKE) -C dos/go32v2 CFGFILE=../../cfg/ppgo32v2.cfg OS_TARGET=go32v2 libs linuxlibs: $(MAKE) -C linux CFGFILE=../cfg/pplinux.cfg OS_TARGET=linux libs os2libs: $(MAKE) -C os2 CFGFILE=../cfg/ppos2.cfg OS_TARGET=os2 libs clean: $(MAKE) -C inc clean $(MAKE) -C i386 clean $(MAKE) -C m68k clean $(MAKE) -C cfg clean $(MAKE) -C template clean $(MAKE) -C dos clean $(MAKE) -C dos/go32v1 clean $(MAKE) -C dos/go32v2 clean $(MAKE) -C linux clean $(MAKE) -C os2 clean -$(DEL) *.dif diffclean: $(MAKE) -C inc diffclean $(MAKE) -C i386 diffclean $(MAKE) -C m68k diffclean $(MAKE) -C cfg diffclean $(MAKE) -C template diffclean $(MAKE) -C dos diffclean $(MAKE) -C dos/go32v1 diffclean $(MAKE) -C dos/go32v2 diffclean $(MAKE) -C linux diffclean $(MAKE) -C os2 diffclean -$(DEL) *.dif install: install_linux install_go32v1 install_go32v2 install_os2 libinstall: libinstall_linux libinstall_go32v1 libinstall_go32v2 libinstall_os2 native_install: install_$(OS_SRC) native_libinstall: libinstall_$(OS_SRC) makefile.dif : makefile -$(DIFF) $(DIFFOPTS) makefile $(REFPATH)/makefile > makefile.dif diffs_rtl: makefile.dif diffs_dos: $(MAKE) -C dos diffs diffs_inc: $(MAKE) -C inc diffs diffs_i386: $(MAKE) -C i386 diffs diffs_m68k: $(MAKE) -C m68k diffs diffs_cfg: $(MAKE) -C cfg diffs diffs_template: $(MAKE) -C template diffs diffs_go32v1: $(MAKE) -C dos/go32v1 diffs diffs_go32v2: $(MAKE) -C dos/go32v2 diffs diffs_linux: $(MAKE) -C linux diffs diffs_os2: $(MAKE) -C os2 diffs install_go32v1: $(MAKE) -C dos/go32v1 install install_go32v2: $(MAKE) -C dos/go32v2 install install_linux: $(MAKE) -C linux install install_os2: $(MAKE) -C os2 install libinstall_go32v1: $(MAKE) -C dos/go32v1 libinstall libinstall_go32v2: $(MAKE) -C dos/go32v2 libinstall libinstall_linux: $(MAKE) -C linux libinstall libinstall_os2: $(MAKE) -C os2 libinstall utils: $(MAKE) -C utils all utils_install: $(MAKE) -C utils install