1#
2#   Makefile.fpc for Lazarus for Free Pascal
3#
4
5[package]
6name=lazaruside
7version=1.1
8
9[require]
10libc=y
11packages=regexpr
12
13[target]
14programs=lazarus startlazarus lazbuild
15
16[compiler]
17options=-gl -vbqewnhi -Sci -dlcl$(LCL_PLATFORM) $(DBG_OPTIONS)
18unittargetdir=../units/$(CPU_TARGET)-$(OS_TARGET)/$(LCL_PLATFORM)
19unitdir=../designer \
20        ../debugger \
21        ../debugger/frames \
22        ../converter \
23        ../packager \
24        ../packager/frames \
25        ../components/custom \
26        $(HEAPTRC_UNIT_PATH) \
27        frames \
28        .
29includedir=include include/$(OS_TARGET) ../images
30targetdir=..
31
32[clean]
33files=$(wildcard $(COMPILER_UNITTARGETDIR)/*$(OEXT)) \
34      $(wildcard $(COMPILER_UNITTARGETDIR)/*$(PPUEXT)) \
35      $(wildcard $(COMPILER_UNITTARGETDIR)/*$(RSTEXT)) \
36      $(wildcard $(COMPILER_UNITTARGETDIR)/*.lfm) \
37      $(wildcard $(COMPILER_UNITTARGETDIR)/*.or) \
38      $(wildcard $(COMPILER_UNITTARGETDIR)/*.res) \
39      $(wildcard ../designer/*$(OEXT)) $(wildcard ../designer/*$(PPUEXT)) \
40      $(wildcard ../debugger/*$(OEXT)) $(wildcard ../debugger/*$(PPUEXT)) \
41      $(wildcard ../converter/*$(OEXT)) $(wildcard ../converter/*$(PPUEXT)) \
42      $(wildcard ../packager/*$(OEXT)) $(wildcard ../packager/*$(PPUEXT)) \
43      $(wildcard ../*$(OEXT)) $(wildcard ../*$(PPUEXT)) \
44      $(wildcard *$(OEXT)) $(wildcard *$(PPUEXT)) $(wildcard *$(RSTEXT))
45
46[install]
47fpcpackage=n
48basedir=share/lazarus/ide
49
50[dist]
51destdir=$(BASEDIR)/dist
52
53[prerules]
54RCPP?=$(firstword $(strip $(subst /,$(PATHSEP),$(wildcard $(addsuffix /cpp$(SRCEXEEXT),$(SEARCHPATH))))))
55
56ifneq ($(findstring $(OS_TARGET),win32 win64),)
57  HEAPTRC_UNIT_PATH=include/win
58endif
59
60#
61# LCL Platform
62ifndef LCL_PLATFORM
63ifneq ($(findstring $(OS_TARGET),win32 win64),)
64LCL_PLATFORM=win32
65else
66ifeq ($(OS_TARGET),darwin)
67LCL_PLATFORM=cocoa
68else
69LCL_PLATFORM=gtk2
70endif
71endif
72endif
73export LCL_PLATFORM
74
75DBG_OPTIONS=
76ifeq ($(OS_TARGET),darwin)
77DBG_OPTIONS=-gw
78endif
79
80#
81# idemake.cfg
82LAZARUS_OPT=$(LAZARUS_LIBPATHS)
83
84#
85# Options to compile an IDE without extra packages
86DEFAULT_IDE_OPTIONS= $(LAZARUS_LIBPATHS) \
87  -Fu../packager/units/$(CPU_TARGET)-$(OS_TARGET) \
88  -Fu../components/codetools/units/$(CPU_TARGET)-$(OS_TARGET) \
89  -Fu../components/debuggerintf/lib/$(CPU_TARGET)-$(OS_TARGET) \
90  -Fu../components/lazutils/lib/$(CPU_TARGET)-$(OS_TARGET) \
91  -Fu../components/freetype/lib/$(CPU_TARGET)-$(OS_TARGET) \
92  -Fu../lcl/units/$(CPU_TARGET)-$(OS_TARGET) \
93  -Fu../lcl/units/$(CPU_TARGET)-$(OS_TARGET)/$(LCL_PLATFORM) \
94  -Fu../components/buildintf/units/$(CPU_TARGET)-$(OS_TARGET) \
95  -Fu../components/ideintf/units/$(CPU_TARGET)-$(OS_TARGET)/$(LCL_PLATFORM) \
96  -Fu../components/synedit/units/$(CPU_TARGET)-$(OS_TARGET)/$(LCL_PLATFORM) \
97  -Fu../components/lazcontrols/lib/$(CPU_TARGET)-$(OS_TARGET)/$(LCL_PLATFORM) \
98  -Fu../components/lazcontrols/design/lib/$(CPU_TARGET)-$(OS_TARGET)/$(LCL_PLATFORM) \
99  -Fu../components/lazdebuggergdbmi/units/$(CPU_TARGET)-$(OS_TARGET)/$(LCL_PLATFORM) \
100  -Fu../units/$(CPU_TARGET)-$(OS_TARGET)/$(LCL_PLATFORM)
101
102#
103# Options to compile an IDE with a lot of packages
104BIG_IDE_OPTIONS=-dBigIDE $(DEFAULT_IDE_OPTIONS) \
105  -Fu../components/synedit/design/units/$(CPU_TARGET)-$(OS_TARGET)/$(LCL_PLATFORM) \
106  -Fu../components/rtticontrols/lib/$(CPU_TARGET)-$(OS_TARGET)/$(LCL_PLATFORM) \
107  -Fu../components/cairocanvas/lib/$(CPU_TARGET)-$(OS_TARGET)/$(LCL_PLATFORM) \
108  -Fu../components/printers/lib/$(CPU_TARGET)-$(OS_TARGET)/$(LCL_PLATFORM) \
109  -Fu../components/printers/design/lib/$(CPU_TARGET)-$(OS_TARGET)/$(LCL_PLATFORM) \
110  -Fu../components/tdbf/lib/$(CPU_TARGET)-$(OS_TARGET)/$(LCL_PLATFORM) \
111  -Fu../components/turbopower_ipro/units/$(CPU_TARGET)-$(OS_TARGET)/$(LCL_PLATFORM) \
112  -Fu../components/turbopower_ipro/design/lib/$(CPU_TARGET)-$(OS_TARGET)/$(LCL_PLATFORM) \
113  -Fu../components/fpcunit/lib/$(CPU_TARGET)-$(OS_TARGET)/$(LCL_PLATFORM) \
114  -Fu../components/fpcunit/ide/lib/$(CPU_TARGET)-$(OS_TARGET)/$(LCL_PLATFORM) \
115  -Fu../components/projecttemplates/lib/$(CPU_TARGET)-$(OS_TARGET)/$(LCL_PLATFORM) \
116  -Fu../components/sqldb/lib/$(CPU_TARGET)-$(OS_TARGET)/$(LCL_PLATFORM) \
117  -Fu../components/sdf/lib/$(CPU_TARGET)-$(OS_TARGET)/$(LCL_PLATFORM) \
118  -Fu../components/fpdebug/lib/$(CPU_TARGET)-$(OS_TARGET) \
119  -Fu../components/lazdebuggers/cmdlinedebuggerbase/lib/$(CPU_TARGET)-$(OS_TARGET) \
120  -Fu../components/lazdebuggers/lazdebuggerlldb/lib/$(CPU_TARGET)-$(OS_TARGET) \
121  -Fu../components/lazdebuggers/lazdebuggerfplldb/lib/$(CPU_TARGET)-$(OS_TARGET) \
122  -Fu../components/lazdebuggers/lazdebuggerfp/lib/$(CPU_TARGET)-$(OS_TARGET) \
123  -Fu../components/leakview/lib/$(CPU_TARGET)-$(OS_TARGET)/$(LCL_PLATFORM) \
124  -Fu../components/memds/lib/$(CPU_TARGET)-$(OS_TARGET)/$(LCL_PLATFORM) \
125  -Fu../components/tachart/lib/$(CPU_TARGET)-$(OS_TARGET)/$(LCL_PLATFORM) \
126  -Fu../components/todolist/lib/$(CPU_TARGET)-$(OS_TARGET)/$(LCL_PLATFORM) \
127  -Fu../components/datetimectrls/lib/$(CPU_TARGET)-$(OS_TARGET)/$(LCL_PLATFORM) \
128  -Fu../components/datetimectrls/design/lib/$(CPU_TARGET)-$(OS_TARGET)/$(LCL_PLATFORM) \
129  -Fu../components/jcf2/IdePlugin/lazarus/lib/$(CPU_TARGET)-$(OS_TARGET)/$(LCL_PLATFORM) \
130  -Fu../components/chmhelp/packages/help/lib/$(CPU_TARGET)-$(OS_TARGET)/$(LCL_PLATFORM) \
131  -Fu../components/chmhelp/packages/idehelp/lib/$(CPU_TARGET)-$(OS_TARGET)/$(LCL_PLATFORM) \
132  -Fu../components/instantfpc/lib/$(CPU_TARGET)-$(OS_TARGET)/$(LCL_PLATFORM) \
133  -Fu../components/externhelp/lib/$(CPU_TARGET)-$(OS_TARGET)/$(LCL_PLATFORM) \
134  -Fu../components/PascalScript/Source/lib/$(CPU_TARGET)-$(OS_TARGET) \
135  -Fu../components/macroscript/lib/$(CPU_TARGET)-$(OS_TARGET) \
136  -Fu../components/lclextensions/lib/$(CPU_TARGET)-$(OS_TARGET)-$(LCL_PLATFORM) \
137  -Fu../components/virtualtreeview/lib/$(CPU_TARGET)-$(OS_TARGET)-$(LCL_PLATFORM) \
138  -Fu../components/onlinepackagemanager/lib/$(CPU_TARGET)-$(OS_TARGET)/$(LCL_PLATFORM) \
139  -Fu../components/pas2js/units/$(CPU_TARGET)-$(OS_TARGET)/$(LCL_PLATFORM)
140
141#
142# Options for compiling lazbuild
143LAZBUILD_OPT=$(LAZARUS_LIBPATHS)
144
145#
146# apptype gui
147ifneq ($(findstring $(OS_TARGET),win32 win64),)
148LAZARUS_OPT+= -WG
149BIG_IDE_OPTIONS+= -WG
150endif
151
152#-----------------------------------------------------------------------------
153[rules]
154.PHONY: ide idepkg bigide starter lazbuilder all clean cleanide purge revisioninc codepage
155
156#-----------------------------------------------------------------------------
157revisioninc:
158ifneq ($(USESVN2REVISIONINC),0)
159ifeq ($(wildcard ../tools/svn2revisioninc$(SRCEXEEXT)),)
160	$(MAKE) -C ../tools svn2revisioninc$(SRCEXEEXT) OS_TARGET=$(OS_SOURCE) CPU_TARGET=$(CPU_SOURCE) OPT=''
161endif
162	../tools/svn2revisioninc$(SRCEXEEXT) .. revision.inc
163endif
164
165#-----------------------------------------------------------------------------
166# compile IDE without extra packages
167ide: $(COMPILER_UNITTARGETDIR) revisioninc
168        $(MAKE) --assume-new=lazarus.pp lazarus$(EXEEXT) OPT='$(DEFAULT_IDE_OPTIONS) $(LAZARUS_OPT) $(OPT)'
169
170#-----------------------------------------------------------------------------
171# compile IDE using the idemake.cfg
172idepkg: $(COMPILER_UNITTARGETDIR) revisioninc
173        $(MAKE) --assume-new=lazarus.pp lazarus$(EXEEXT) OPT='$(LAZARUS_OPT) $(OPT)'
174
175#-----------------------------------------------------------------------------
176# compile IDE with some extra packages
177bigide: $(COMPILER_UNITTARGETDIR) revisioninc
178        -$(DEL) $(COMPILER_UNITTARGETDIR)/pkgmanager$(PPUEXT)
179        $(MAKE) --assume-new=lazarus.pp lazarus$(EXEEXT) OPT='$(OPT) $(BIG_IDE_OPTIONS)'
180
181#-----------------------------------------------------------------------------
182starter: $(COMPILER_UNITTARGETDIR)
183        $(MAKE) --assume-new=startlazarus.lpr startlazarus$(EXEEXT) OPT='$(DEFAULT_IDE_OPTIONS) $(LAZARUS_OPT) $(OPT)'
184
185#-----------------------------------------------------------------------------
186lazbuilder: $(COMPILER_UNITTARGETDIR)
187        $(MAKE) --assume-new=lazbuild.lpr lazbuild$(EXEEXT) OPT='$(DEFAULT_IDE_OPTIONS) $(OPT)'
188
189#-----------------------------------------------------------------------------
190all: ide starter lazbuilder
191
192#-----------------------------------------------------------------------------
193cleanide:
194        -$(DEL) $(wildcard *$(OEXT))
195        -$(DEL) $(wildcard *$(PPUEXT))
196        -$(DEL) $(wildcard *$(RSTEXT))
197        -$(DEL) $(wildcard $(COMPILER_UNITTARGETDIR)/*$(OEXT))
198        -$(DEL) $(wildcard $(COMPILER_UNITTARGETDIR)/*$(PPUEXT))
199        -$(DEL) $(wildcard $(COMPILER_UNITTARGETDIR)/*$(RSTEXT))
200        -$(DEL) $(wildcard $(COMPILER_UNITTARGETDIR)/*.lfm)
201        -$(DEL) $(wildcard ../*$(OEXT))
202        -$(DEL) $(wildcard ../*$(PPUEXT))
203        -$(DEL) $(wildcard ../designer/*$(OEXT))
204        -$(DEL) $(wildcard ../designer/*$(PPUEXT))
205        -$(DEL) $(wildcard ../debugger/*$(OEXT))
206        -$(DEL) $(wildcard ../debugger/*$(PPUEXT))
207        -$(DEL) $(wildcard ../packager/*$(OEXT))
208        -$(DEL) $(wildcard ../packager/*$(PPUEXT))
209        -$(DEL) $(wildcard ../converter/*$(OEXT))
210        -$(DEL) $(wildcard ../converter/*$(PPUEXT))
211        -$(DEL) $(wildcard ../doceditor/*$(OEXT))
212        -$(DEL) $(wildcard ../doceditor/*$(PPUEXT))
213ifneq ($(findstring $(OS_TARGET),win32 win64),)
214        -$(DEL) $(wildcard $(COMPILER_UNITTARGETDIR)/*.or)
215        -$(DEL) $(wildcard $(COMPILER_UNITTARGETDIR)/*.res)
216endif
217
218cleanlaz: clean cleanide
219        ${DELTREE} ../units/*
220
221purge: cleanlaz
222
223distclean: cleanlaz
224
225#install: $(INSTALLTARGET) $(addsuffix _install,$(TARGET_DIRS))
226# end.
227
228