# # Makefile generated by fpcmake v0.99.13 [2000/02/09] # defaultrule: all ##################################################################### # Autodetect OS (Linux or Dos or Windows NT) # define inlinux when running under linux # define inWinNT when running under WinNT ##################################################################### # We need only / in the path override PATH:=$(subst \,/,$(PATH)) # Search for PWD and determine also if we are under linux PWD:=$(strip $(wildcard $(addsuffix /pwd.exe,$(subst ;, ,$(PATH))))) ifeq ($(PWD),) PWD:=$(strip $(wildcard $(addsuffix /pwd,$(subst :, ,$(PATH))))) ifeq ($(PWD),) nopwd: @echo You need the GNU utils package to use this Makefile! @echo Get ftp://ftp.freepascal.org/pub/fpc/dist/go32v2/utilgo32.zip @exit else inlinux=1 endif else PWD:=$(firstword $(PWD)) endif # Detect NT - NT sets OS to Windows_NT ifndef inlinux ifeq ($(OS),Windows_NT) inWinNT=1 endif endif # Detect OS/2 - OS/2 has OS2_SHELL defined ifndef inlinux ifndef inWinNT ifdef OS2_SHELL inOS2=1 endif endif endif # The extension of executables ifdef inlinux EXEEXT= else EXEEXT=.exe endif # The path which is searched separated by spaces ifdef inlinux SEARCHPATH=$(subst :, ,$(PATH)) else SEARCHPATH=$(subst ;, ,$(PATH)) endif # Base dir ifdef PWD BASEDIR:=$(shell $(PWD)) else BASEDIR=. endif ##################################################################### # FPC version/target Detection ##################################################################### # What compiler to use ? ifndef FPC # Compatibility with old makefiles ifdef PP FPC=$(PP) else ifdef inOS2 FPC=ppos2 else FPC=ppc386 endif endif endif override FPC:=$(subst $(EXEEXT),,$(FPC)) override FPC:=$(subst \,/,$(FPC))$(EXEEXT) # Target OS ifndef OS_TARGET OS_TARGET:=$(shell $(FPC) -iTO) endif # Source OS ifndef OS_SOURCE OS_SOURCE:=$(shell $(FPC) -iSO) endif # Target CPU ifndef CPU_TARGET CPU_TARGET:=$(shell $(FPC) -iTP) endif # Source CPU ifndef CPU_SOURCE CPU_SOURCE:=$(shell $(FPC) -iSP) endif # FPC version ifndef FPC_VERSION FPC_VERSION:=$(shell $(FPC) -iV) endif export FPC OS_TARGET OS_SOURCE CPU_TARGET CPU_SOURCE FPC_VERSION ##################################################################### # FPCDIR Setting ##################################################################### # Test FPCDIR to look if the RTL dir exists ifdef FPCDIR override FPCDIR:=$(subst \,/,$(FPCDIR)) ifeq ($(wildcard $(FPCDIR)/rtl),) ifeq ($(wildcard $(FPCDIR)/units),) override FPCDIR=wrong endif endif else override FPCDIR=wrong endif # Detect FPCDIR ifeq ($(FPCDIR),wrong) ifdef inlinux override FPCDIR=/usr/local/lib/fpc/$(FPC_VERSION) ifeq ($(wildcard $(FPCDIR)/units),) override FPCDIR=/usr/lib/fpc/$(FPC_VERSION) endif else override FPCDIR:=$(subst /$(FPC),,$(firstword $(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH)))))) override FPCDIR:=$(FPCDIR)/.. ifeq ($(wildcard $(FPCDIR)/rtl),) ifeq ($(wildcard $(FPCDIR)/units),) override FPCDIR:=$(FPCDIR)/.. ifeq ($(wildcard $(FPCDIR)/rtl),) ifeq ($(wildcard $(FPCDIR)/units),) override FPCDIR=c:/pp endif endif endif endif endif endif ##################################################################### # User Settings ##################################################################### # Targets override DIROBJECTS+=$(wildcard linux examples build) # Clean # Install ZIPTARGET=install # Defaults # Directories # Packages # Libraries ##################################################################### # Default Directories ##################################################################### # set the prefix directory where to install everything ifndef PREFIXINSTALLDIR ifdef inlinux PREFIXINSTALLDIR=/usr else PREFIXINSTALLDIR=/pp endif endif export PREFIXINSTALLDIR # Where to place the resulting zip files ifndef DESTZIPDIR DESTZIPDIR:=$(BASEDIR) endif export DESTZIPDIR ##################################################################### # Redirection ##################################################################### ifndef REDIRFILE REDIRFILE=log endif ifdef REDIR ifndef inlinux override FPC=redir -eo $(FPC) endif # set the verbosity to max override FPCOPT+=-va override REDIR:= >> $(REDIRFILE) endif ##################################################################### # Standard rules ##################################################################### all: $(addsuffix _all,$(OS_TARGET)) debug: $(addsuffix _debug,$(OS_TARGET)) test: $(addsuffix _test,$(OS_TARGET)) smart: $(addsuffix _smart,$(OS_TARGET)) shared: $(addsuffix _shared,$(OS_TARGET)) showinstall: $(addsuffix _showinstall,$(OS_TARGET)) install: $(addsuffix _install,$(OS_TARGET)) sourceinstall: $(addsuffix _sourceinstall,$(OS_TARGET)) clean: $(addsuffix _clean,$(DIROBJECTS)) distclean: $(addsuffix _distclean,$(DIROBJECTS)) cleanall: $(addsuffix _cleanall,$(DIROBJECTS)) require: $(addsuffix _require,$(DIROBJECTS)) .PHONY: all debug test smart shared showinstall install sourceinstall clean distclean cleanall require ##################################################################### # Directories ##################################################################### OBJECTDIRLINUX=1 OBJECTDIREXAMPLES=1 OBJECTDIRBUILD=1 # Dir linux ifdef OBJECTDIRLINUX .PHONY: linux_all linux_debug linux_examples linux_test linux_smart linux_shared linux_showinstall linux_install linux_sourceinstall linux_zipinstall linux_zipsourceinstall linux_clean linux_distclean linux_cleanall linux_require linux_info linux_all: $(MAKE) -C linux all linux_debug: $(MAKE) -C linux debug linux_examples: $(MAKE) -C linux examples linux_test: $(MAKE) -C linux test linux_smart: $(MAKE) -C linux smart linux_shared: $(MAKE) -C linux shared linux_showinstall: $(MAKE) -C linux showinstall linux_install: $(MAKE) -C linux install linux_sourceinstall: $(MAKE) -C linux sourceinstall linux_zipinstall: $(MAKE) -C linux zipinstall linux_zipsourceinstall: $(MAKE) -C linux zipsourceinstall linux_clean: $(MAKE) -C linux clean linux_distclean: $(MAKE) -C linux distclean linux_cleanall: $(MAKE) -C linux cleanall linux_require: $(MAKE) -C linux require linux_info: $(MAKE) -C linux info endif # Dir examples ifdef OBJECTDIREXAMPLES .PHONY: examples_all examples_debug examples_examples examples_test examples_smart examples_shared examples_showinstall examples_install examples_sourceinstall examples_zipinstall examples_zipsourceinstall examples_clean examples_distclean examples_cleanall examples_require examples_info examples_all: $(MAKE) -C examples all examples_debug: $(MAKE) -C examples debug examples_examples: $(MAKE) -C examples examples examples_test: $(MAKE) -C examples test examples_smart: $(MAKE) -C examples smart examples_shared: $(MAKE) -C examples shared examples_showinstall: $(MAKE) -C examples showinstall examples_install: $(MAKE) -C examples install examples_sourceinstall: $(MAKE) -C examples sourceinstall examples_zipinstall: $(MAKE) -C examples zipinstall examples_zipsourceinstall: $(MAKE) -C examples zipsourceinstall examples_clean: $(MAKE) -C examples clean examples_distclean: $(MAKE) -C examples distclean examples_cleanall: $(MAKE) -C examples cleanall examples_require: $(MAKE) -C examples require examples_info: $(MAKE) -C examples info endif # Dir build ifdef OBJECTDIRBUILD .PHONY: build_all build_debug build_examples build_test build_smart build_shared build_showinstall build_install build_sourceinstall build_zipinstall build_zipsourceinstall build_clean build_distclean build_cleanall build_require build_info build_all: $(MAKE) -C build all build_debug: $(MAKE) -C build debug build_examples: $(MAKE) -C build examples build_test: $(MAKE) -C build test build_smart: $(MAKE) -C build smart build_shared: $(MAKE) -C build shared build_showinstall: $(MAKE) -C build showinstall build_install: $(MAKE) -C build install build_sourceinstall: $(MAKE) -C build sourceinstall build_zipinstall: $(MAKE) -C build zipinstall build_zipsourceinstall: $(MAKE) -C build zipsourceinstall build_clean: $(MAKE) -C build clean build_distclean: $(MAKE) -C build distclean build_cleanall: $(MAKE) -C build cleanall build_require: $(MAKE) -C build require build_info: $(MAKE) -C build info endif ##################################################################### # Local Makefile ##################################################################### ifneq ($(wildcard fpcmake.loc),) include fpcmake.loc endif ##################################################################### # Users rules ##################################################################### .PHONY: examples examples: $(MAKE) examples_all