46
45
#-----------------------------------------------------------------------------
48
.PHONY: lcl components packager/registration ideintf bigidecomponents ide idepkg idebig bigide starter lazbuilder tools all clean cleanide cleannogui purge examples install lazbuild
50
#-----------------------------------------------------------------------------
47
.PHONY: help registration lazutils codetools tools lcl ideintf basecomponents bigidecomponents lazbuild ide idepkg idebig cleanide bigide useride starter lhelp all clean purge install
49
#-----------------------------------------------------------------------------
52
@$(ECHO) " Main targets"
53
@$(ECHO) " Without any target, target 'all' will be invoked."
54
@$(ECHO) " all build minimal IDE, lazbuild, startlazarus."
55
@$(ECHO) " clean deletes files that 'all' creates"
56
@$(ECHO) " lazbuild build lazbuild and lcl with nogui widgetset"
57
@$(ECHO) " bigide as all, except that the IDE is build with a lot of extra packages"
58
@$(ECHO) " useride calls lazbuild to build an IDE with your active profile, requires lazbuild"
59
@$(ECHO) " install installs Lazarus under $(LAZARUS_INSTALL_DIR)"
60
@$(ECHO) " You can change the directory by appending INSTALL_PREFIX=/some/path"
62
@$(ECHO) " Sub targets"
63
@$(ECHO) " registration build package FCL"
64
@$(ECHO) " lazutils build package LazUtils, requires registration"
65
@$(ECHO) " codetools build package CodeTools, requires lazutils"
66
@$(ECHO) " lcl build package LCL, requires lazutils"
67
@$(ECHO) " tools build lazres, svn2revisioninc, updatepofiles, lrstolfm, requires LCL with nogui widgetset"
68
@$(ECHO) " ideintf build package IDEIntf, requires lcl"
69
@$(ECHO) " basecomponents build synedit and lazcontrols for the LCL_PLATFORM, requires ideintf"
70
@$(ECHO) " bigidecomponents build many extra packages for the LCL_PLATFORM, requires basecomponents"
71
@$(ECHO) " lhelp build lhelp, requires bigidecomponents"
72
@$(ECHO) " starter build startlazarus, requires basecomponents"
73
@$(ECHO) " examples build basic examples, requires basecomponents"
74
@$(ECHO) " Note: There are more examples having their own directory"
76
@$(ECHO) " Usage examples:"
78
@$(ECHO) " Updating svn and build a minimal IDE, startlazarus and lazbuild:"
79
@$(ECHO) " make clean"
81
@$(ECHO) " make clean all"
83
@$(ECHO) " Note: You can start lazarus with 'startlazarus'"
84
@$(ECHO) " Note: Use the IDE or lazbuild to compile your projects/packages."
86
@$(ECHO) " Updating svn and build an IDE with your last set of packages:"
87
@$(ECHO) " make clean"
89
@$(ECHO) " make clean lazbuild useride"
92
@$(ECHO) " There is no command to clean up a svn repository completely, but"
93
@$(ECHO) " you can use the following command under Linux/OS X:"
94
@$(ECHO) " svn status | grep '\?' | sed -e 's/\? *//' | xargs rm -r"
96
@$(ECHO) " Another possibility is to create a clean copy via the "svn export" command."
99
@$(ECHO) " Note: You can use Lazarus without installing. Just start the lazarus executable."
100
@$(ECHO) " 1. Build Lazarus as normal user with one of the above commands."
101
@$(ECHO) " 2. Install as root into /usr"
102
@$(ECHO) " sudo make install"
103
@$(ECHO) " This installs startlazarus, lazarus-ide, lazbuild under /usr/bin"
104
@$(ECHO) " and copies the whole lazarus source directory to /usr/share/lazarus"
108
#-----------------------------------------------------------------------------
109
# build package FCL (shared by all LCL_PLATFORMs)
111
$(MAKE) -C packager/registration
113
#-----------------------------------------------------------------------------
114
# build package LazUtils, requires registration (shared by all LCL_PLATFORMs)
116
$(MAKE) -C components/lazutils
118
#-----------------------------------------------------------------------------
119
# build package CodeTools, requires lazutils (shared by all LCL_PLATFORMs)
121
$(MAKE) -C components/codetools
123
#-----------------------------------------------------------------------------
124
# build package LCLBase and LCL for LCL_PLATFORM
129
#-----------------------------------------------------------------------------
130
# build package IDEIntf for LCL_PLATFORM
135
#-----------------------------------------------------------------------------
136
# build synedit and lazcontrols for the LCL_PLATFORM
137
# (Note: lazutils and codetools are shared on all LCL platforms)
140
$(MAKE) -C components base
142
#-----------------------------------------------------------------------------
143
# build a lot of extra packages for the LCL_PLATFORM
144
# requires basecomponents
146
$(MAKE) -C components bigide
148
#-----------------------------------------------------------------------------
149
# build lazres, svn2revisioninc, updatepofiles, lrstolfm
150
# requires codetools and LCL with nogui widgetset
154
#-----------------------------------------------------------------------------
155
# create/update ide/revision.inc
158
$(MAKE) -C ide revisioninc
160
#-----------------------------------------------------------------------------
161
# build lazarus exe with minimum of packages for the LCL_PLATFORM
162
# requires basecomponents and tools
166
#-----------------------------------------------------------------------------
167
# build lazarus exe with bigide packages for the LCL_PLATFORM
168
# requires bigidecomponents and tools
170
$(MAKE) -C ide bigide
172
#-----------------------------------------------------------------------------
173
# build lazarus exe with user's packages for the LCL_PLATFORM
174
# requires user's packages, idemake.cfg and staticpackages.inc
175
# called by the IDE/lazbuild
176
# the idemake.cfg and staticpackages.inc are created by the IDE or by lazbuild
52
178
$(MAKE) -C ide idepkg
54
180
#-----------------------------------------------------------------------------
55
bigide: packager/registration lcl ideintf bigidecomponents idebig starter lazbuilder
57
#-----------------------------------------------------------------------------
61
#-----------------------------------------------------------------------------
63
$(MAKE) -C components bigidecomponents
65
#-----------------------------------------------------------------------------
67
$(MAKE) -C components bigideclean
181
# calls lazbuild to build lazarus and packages with user's settings
183
# ignores LCL_PLATFORM and OPTS
185
./lazbuild$(SRCEXEEXT) --lazarusdir=. --build-ide=
69
187
#-----------------------------------------------------------------------------
71
189
$(MAKE) -C ide starter
73
191
#-----------------------------------------------------------------------------
76
$(MAKE) -C lcl/interfaces/nogui
192
lazbuild: registration lazutils codetools
193
$(MAKE) -C lcl LCL_PLATFORM=nogui
195
$(MAKE) -C ideintf LCL_PLATFORM=nogui
196
$(MAKE) -C components base LCL_PLATFORM=nogui
77
197
$(MAKE) -C ide lazbuilder LCL_PLATFORM=nogui
79
199
#-----------------------------------------------------------------------------
82
#-----------------------------------------------------------------------------
83
examples: lcl components
85
#-----------------------------------------------------------------------------
86
all: packager/registration lcl ideintf components bigidecomponents bigide starter lazbuilder tools examples
88
#-----------------------------------------------------------------------------
90
$(MAKE) -C lcl/interfaces/nogui clean LCL_PLATFORM=nogui
201
# requires bigidecomponents
203
$(MAKE) -C components/chmhelp/lhelp
205
#-----------------------------------------------------------------------------
206
# build examples for the LCL_PLATFORM
207
# requires basecomponents
211
#-----------------------------------------------------------------------------
212
# build lazarus,lcl,lazbuild,startlazarus with base packages for the LCL_PLATFORM
213
all: lazbuild lcl ideintf basecomponents ide starter
215
#-----------------------------------------------------------------------------
216
# build lazarus,lcl,lazbuild,startlazarus with bigide packages for the LCL_PLATFORM
217
bigide: lazbuild lcl ideintf basecomponents bigidecomponents idebig starter lhelp
219
#-----------------------------------------------------------------------------
93
221
$(MAKE) -C ide cleanide
95
cleanlaz: cleanide cleannogui
224
$(MAKE) -C packager/registration clean
225
$(MAKE) -C lcl cleanall
97
226
$(MAKE) -C components clean
98
$(MAKE) -C packager/registration clean
99
227
$(MAKE) -C ideintf clean
230
$(MAKE) -C . cleanlaz LCL_PLATFORM=nogui
231
$(MAKE) -C tools clean
232
$(MAKE) -C components/chmhelp/lhelp clean
102
237
$(MAKE) -C examples clean
103
238
# $(MAKE) -C doceditor clean
104
$(MAKE) -C tools clean