fpc/rtl/Makefile

541 lines
9.9 KiB
Makefile

#
# Makefile generated by fpcmake v0.99.13 [2000/01/06]
#
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
#####################################################################
# FPC version/target Detection
#####################################################################
# What compiler to use ?
ifndef FPC
# Compatibility with old makefiles
ifdef PP
FPC=$(PP)
else
ifdef inOS2
FPC=ppos2$(EXEEXT)
else
FPC=ppc386$(EXEEXT)
endif
endif
endif
# 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
# Test FPCDIR to look if the RTL dir exists
ifdef FPCDIR
override FPCDIR:=$(subst \,/,$(FPCDIR))
ifeq ($(wildcard $(FPCDIR)/rtl),)
override FPCDIR=wrong
endif
else
override FPCDIR=wrong
endif
# Detect FPCDIR
ifeq ($(FPCDIR),wrong)
ifdef inlinux
override FPCDIR=/usr/lib/fpc/$(FPC_VERSION)
else
override FPCDIR:=$(subst /$(FPC)$(EXEEXT),,$(firstword $(strip $(wildcard $(addsuffix /$(FPC)$(EXEEXT),$(SEARCHPATH))))))
endif
endif
ifndef PACKAGEDIR
PACKAGEDIR=$(FPCDIR)/packages
endif
ifndef COMPONENTDIR
COMPONENTDIR=$(FPCDIR)/components
endif
# Create units dir
ifneq ($(FPCDIR),.)
UNITSDIR=$(FPCDIR)/units/$(OS_TARGET)
endif
# Check if the dirs really exists, else turn it off
ifeq ($(wildcard $(UNITSDIR)),)
UNITSDIR=
endif
ifeq ($(wildcard $(PACKAGEDIR)),)
PACKAGEDIR=
endif
ifeq ($(wildcard $(COMPONENTDIR)),)
COMPONENTDIR=
endif
#####################################################################
# Default Settings
#####################################################################
# Release ? Then force OPT and don't use extra opts via commandline
ifndef REDIRFILE
REDIRFILE=log
endif
ifdef REDIR
ifndef inlinux
override FPC=redir -eo $(FPC)
endif
# set the verbosity to max
override OPT+=-va
override REDIR:= >> $(REDIRFILE)
endif
#####################################################################
# User Settings
#####################################################################
# Targets
override DIROBJECTS+=$(wildcard go32v2 linux win32 os2 go32v1)
# Clean
# Install
ZIPTARGET=install
# Defaults
# Directories
# Packages
override PACKAGES+=rtl
ifneq ($(wildcard $(FPCDIR)/rtl),)
ifneq ($(wildcard $(FPCDIR)/rtl/$(OS_TARGET)),)
PACKAGEDIR_RTL=$(FPCDIR)/rtl/$(OS_TARGET)
else
PACKAGEDIR_RTL=$(FPCDIR)/rtl
endif
UNITDIR_RTL=$(PACKAGEDIR_RTL)
else
PACKAGEDIR_RTL=
ifneq ($(wildcard $(UNITSDIR)/rtl),)
ifneq ($(wildcard $(UNITSDIR)/rtl/$(OS_TARGET)),)
UNITDIR_RTL=$(UNITSDIR)/rtl/$(OS_TARGET)
else
UNITDIR_RTL=$(UNITSDIR)/rtl
endif
else
UNITDIR_RTL=
endif
endif
ifdef UNITDIR_RTL
override NEEDUNITDIR+=$(UNITDIR_RTL)
endif
# Libraries
#####################################################################
# Standard rules
#####################################################################
all: $(addsuffix _all,$(OS_TARGET))
debug: $(addsuffix _debug,$(OS_TARGET))
examples: $(addsuffix _examples,$(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))
zipinstall: $(addsuffix _zipinstall,$(OS_TARGET))
zipinstalladd: $(addsuffix _zipinstalladd,$(OS_TARGET))
clean: $(addsuffix _clean,$(OS_TARGET))
cleanall: $(addsuffix _cleanall,$(OS_TARGET))
require: $(addsuffix _require,$(OS_TARGET))
info: $(addsuffix _info,$(OS_TARGET))
.PHONY: all debug examples test smart shared showinstall install sourceinstall zipinstall zipinstalladd clean cleanall require info
ifdef PACKAGERTL
ifneq ($(wildcard $(PACKAGEDIR_RTL)),)
ifeq ($(wildcard $(PACKAGEDIR_RTL)/$(FPCMADE)),)
override COMPILEPACKAGES+=rtl
rtl_package:
$(MAKE) -C $(PACKAGEDIR_RTL) all
endif
endif
endif
PACKAGERTL=1
ifdef PACKAGERTL
ifneq ($(wildcard $(PACKAGEDIR_RTL)),)
ifeq ($(wildcard $(PACKAGEDIR_RTL)/$(FPCMADE)),)
override COMPILEPACKAGES+=rtl
rtl_package:
$(MAKE) -C $(PACKAGEDIR_RTL) all
endif
endif
endif
.PHONY: rtl_package rtl_package
# Target Dirs
OBJECTDIRGO32V2=1
OBJECTDIRLINUX=1
OBJECTDIRWIN32=1
OBJECTDIROS2=1
OBJECTDIRGO32V1=1
# Dir go32v2
ifdef OBJECTDIRGO32V2
.PHONY: go32v2_all go32v2_debug go32v2_examples go32v2_test go32v2_smart go32v2_shared go32v2_showinstall go32v2_install go32v2_sourceinstall go32v2_zipinstall go32v2_zipinstalladd go32v2_clean go32v2_cleanall go32v2_require go32v2_info
go32v2_all:
$(MAKE) -C go32v2 all
go32v2_debug:
$(MAKE) -C go32v2 debug
go32v2_examples:
$(MAKE) -C go32v2 examples
go32v2_test:
$(MAKE) -C go32v2 test
go32v2_smart:
$(MAKE) -C go32v2 smart
go32v2_shared:
$(MAKE) -C go32v2 shared
go32v2_showinstall:
$(MAKE) -C go32v2 showinstall
go32v2_install:
$(MAKE) -C go32v2 install
go32v2_sourceinstall:
$(MAKE) -C go32v2 sourceinstall
go32v2_zipinstall:
$(MAKE) -C go32v2 zipinstall
go32v2_zipinstalladd:
$(MAKE) -C go32v2 zipinstalladd
go32v2_clean:
$(MAKE) -C go32v2 clean
go32v2_cleanall:
$(MAKE) -C go32v2 cleanall
go32v2_require:
$(MAKE) -C go32v2 require
go32v2_info:
$(MAKE) -C go32v2 info
endif
# 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_zipinstalladd linux_clean 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_zipinstalladd:
$(MAKE) -C linux zipinstalladd
linux_clean:
$(MAKE) -C linux clean
linux_cleanall:
$(MAKE) -C linux cleanall
linux_require:
$(MAKE) -C linux require
linux_info:
$(MAKE) -C linux info
endif
# Dir win32
ifdef OBJECTDIRWIN32
.PHONY: win32_all win32_debug win32_examples win32_test win32_smart win32_shared win32_showinstall win32_install win32_sourceinstall win32_zipinstall win32_zipinstalladd win32_clean win32_cleanall win32_require win32_info
win32_all:
$(MAKE) -C win32 all
win32_debug:
$(MAKE) -C win32 debug
win32_examples:
$(MAKE) -C win32 examples
win32_test:
$(MAKE) -C win32 test
win32_smart:
$(MAKE) -C win32 smart
win32_shared:
$(MAKE) -C win32 shared
win32_showinstall:
$(MAKE) -C win32 showinstall
win32_install:
$(MAKE) -C win32 install
win32_sourceinstall:
$(MAKE) -C win32 sourceinstall
win32_zipinstall:
$(MAKE) -C win32 zipinstall
win32_zipinstalladd:
$(MAKE) -C win32 zipinstalladd
win32_clean:
$(MAKE) -C win32 clean
win32_cleanall:
$(MAKE) -C win32 cleanall
win32_require:
$(MAKE) -C win32 require
win32_info:
$(MAKE) -C win32 info
endif
# Dir os2
ifdef OBJECTDIROS2
.PHONY: os2_all os2_debug os2_examples os2_test os2_smart os2_shared os2_showinstall os2_install os2_sourceinstall os2_zipinstall os2_zipinstalladd os2_clean os2_cleanall os2_require os2_info
os2_all:
$(MAKE) -C os2 all
os2_debug:
$(MAKE) -C os2 debug
os2_examples:
$(MAKE) -C os2 examples
os2_test:
$(MAKE) -C os2 test
os2_smart:
$(MAKE) -C os2 smart
os2_shared:
$(MAKE) -C os2 shared
os2_showinstall:
$(MAKE) -C os2 showinstall
os2_install:
$(MAKE) -C os2 install
os2_sourceinstall:
$(MAKE) -C os2 sourceinstall
os2_zipinstall:
$(MAKE) -C os2 zipinstall
os2_zipinstalladd:
$(MAKE) -C os2 zipinstalladd
os2_clean:
$(MAKE) -C os2 clean
os2_cleanall:
$(MAKE) -C os2 cleanall
os2_require:
$(MAKE) -C os2 require
os2_info:
$(MAKE) -C os2 info
endif
# Dir go32v1
ifdef OBJECTDIRGO32V1
.PHONY: go32v1_all go32v1_debug go32v1_examples go32v1_test go32v1_smart go32v1_shared go32v1_showinstall go32v1_install go32v1_sourceinstall go32v1_zipinstall go32v1_zipinstalladd go32v1_clean go32v1_cleanall go32v1_require go32v1_info
go32v1_all:
$(MAKE) -C go32v1 all
go32v1_debug:
$(MAKE) -C go32v1 debug
go32v1_examples:
$(MAKE) -C go32v1 examples
go32v1_test:
$(MAKE) -C go32v1 test
go32v1_smart:
$(MAKE) -C go32v1 smart
go32v1_shared:
$(MAKE) -C go32v1 shared
go32v1_showinstall:
$(MAKE) -C go32v1 showinstall
go32v1_install:
$(MAKE) -C go32v1 install
go32v1_sourceinstall:
$(MAKE) -C go32v1 sourceinstall
go32v1_zipinstall:
$(MAKE) -C go32v1 zipinstall
go32v1_zipinstalladd:
$(MAKE) -C go32v1 zipinstalladd
go32v1_clean:
$(MAKE) -C go32v1 clean
go32v1_cleanall:
$(MAKE) -C go32v1 cleanall
go32v1_require:
$(MAKE) -C go32v1 require
go32v1_info:
$(MAKE) -C go32v1 info
endif