mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-16 06:39:39 +02:00
497 lines
9.0 KiB
Makefile
497 lines
9.0 KiB
Makefile
#
|
|
# Makefile generated by fpcmake v0.99.13 [2000/01/04]
|
|
#
|
|
|
|
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=
|
|
endif
|
|
else
|
|
override FPCDIR=
|
|
endif
|
|
|
|
# Detect FPCDIR
|
|
ifeq ($(FPCDIR),)
|
|
ifdef inlinux
|
|
FPCDIR=/usr/lib/fpc/$(FPC_VERSION)
|
|
else
|
|
FPCDIR:=$(subst /$(FPC)$(EXEEXT),,$(firstword $(strip $(wildcard $(addsuffix /$(FPC)$(EXEEXT),$(SEARCHPATH))))))
|
|
endif
|
|
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
|
|
|
|
ifndef PACKAGEDIR
|
|
ifneq ($(wildcard $(FPCDIR)/packages),)
|
|
PACKAGEDIR=$(FPCDIR)/packages
|
|
else
|
|
PACKAGEDIR=$(FPCDIR)/units/$(OS_TARGET)
|
|
endif
|
|
endif
|
|
ifndef COMPONENTDIR
|
|
COMPONENTDIR=$(FPCDIR)/components
|
|
endif
|
|
|
|
# Packages
|
|
|
|
override PACKAGES=rtl
|
|
PACKAGEDIR_RTL=$(FPCDIR)/rtl/$(OS_TARGET)
|
|
|
|
# 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
|
|
|
|
.PHONY: 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
|
|
|