#
#   Makefile.fpc for Free Pascal Win64 RTL
#

[package]
main=rtl

[target]
loaders=$(LOADERS)
units=system objpas macpas iso7185 buildrtl lineinfo lnfodwrf
implicitunits=ctypes strings \
      heaptrc matrix \
      dos crt objects messages \
      windows winsock winsock2 cmem dynlibs \
      rtlconsts sysconst sysutils math types \
      strutils convutils dateutils \
      varutils variants typinfo fgl classes getopts \
      stdconvs sockets printer charset ucomplex fmtbcd \
      winevent video mouse keyboard \
      sharemem exeinfo fpintres windirs \
      cpu signals
# mmx
#      fpcmemdll
#     winsysut signals
#     no cygwin so far
#	initc

rsts=math varutils typinfo variants classes dateutils sysconst

programs=

shared=fpcmemdll

[require]
nortl=y

[install]
fpcpackage=y

[default]
fpcdir=../..
target=win64

[compiler]
includedir=$(INC) $(PROCINC)
sourcedir=$(INC) $(PROCINC) $(COMMON) $(WINDIR)


[prerules]
RTL=..
INC=$(RTL)/inc
COMMON=$(RTL)/common
PROCINC=$(RTL)/$(CPU_TARGET)
WININC=../win/wininc
WINDIR=../win

UNITPREFIX=rtl

ifneq ($(findstring 2.0.,$(FPC_VERSION)),)
LOADERS=wprt0 wdllprt0 gprt0 wcygprt0
endif

# Paths
OBJPASDIR=$(RTL)/objpas

# Files used by windows.pp
#include $(WININC)/makefile.inc

WINDOWS_SOURCE_FILES=$(addprefix $(WININC)/,$(addsuffix .inc,$(WINDOWS_FILES)))


[rules]
.NOTPARALLEL:
SYSTEMPPU=$(addsuffix $(PPUEXT),system)

# Get the system independent include file names.
# This will set the following variables :
# SYSINCNAMES
include $(INC)/makefile.inc
SYSINCDEPS=$(addprefix $(INC)/,$(SYSINCNAMES))

# Get the processor dependent include file names.
# This will set the following variables :
# CPUINCNAMES
include $(PROCINC)/makefile.cpu
SYSCPUDEPS=$(addprefix $(PROCINC)/,$(CPUINCNAMES))

# Put system unit dependencies together.
SYSDEPS=$(SYSINCDEPS) $(SYSCPUDEPS)


#
# Unit specific rules
#

system$(PPUEXT) : system.pp $(SYSDEPS)
        $(COMPILER) -Us -Sg system.pp -Fi../win

objpas$(PPUEXT): $(OBJPASDIR)/objpas.pp $(INC)/except.inc system$(PPUEXT)
        $(COMPILER) -I$(OBJPASDIR) $(OBJPASDIR)/objpas.pp

macpas$(PPUEXT) : $(INC)/macpas.pp objpas$(PPUEXT) buildrtl$(PPUEXT)
        $(COMPILER) $(INC)/macpas.pp $(REDIR)

buildrtl$(PPUEXT): buildrtl.pp system$(PPUEXT) objpas$(PPUEXT)
        $(COMPILER) -Fi$(OBJPASDIR)/sysutils -Fi$(OBJPASDIR)/classes -Fu$(PROCINC) -I$(WINDIR) -I$(OBJPASDIR) -I$(WININC) -Fu$(WININC) -Fu$(WINDIR) -I$(INC) -Fu$(INC) -Fu$(OBJPASDIR) buildrtl

