~ubuntu-branches/ubuntu/saucy/lazarus/saucy

« back to all changes in this revision

Viewing changes to Makefile.fpc

  • Committer: Package Import Robot
  • Author(s): Paul Gevers, Abou Al Montacir, Bart Martens, Paul Gevers
  • Date: 2013-06-08 14:12:17 UTC
  • mfrom: (1.1.9)
  • Revision ID: package-import@ubuntu.com-20130608141217-7k0cy9id8ifcnutc
Tags: 1.0.8+dfsg-1
[ Abou Al Montacir ]
* New upstream major release and multiple maintenace release offering many
  fixes and new features marking a new milestone for the Lazarus development
  and its stability level.
  - The detailed list of changes can be found here:
    http://wiki.lazarus.freepascal.org/Lazarus_1.0_release_notes
    http://wiki.lazarus.freepascal.org/Lazarus_1.0_fixes_branch
* LCL changes:
  - LCL is now a normal package.
      + Platform independent parts of the LCL are now in the package LCLBase
      + LCL is automatically recompiled when switching the target platform,
        unless pre-compiled binaries for this target are already installed.
      + No impact on existing projects.
      + Linker options needed by LCL are no more added to projects that do
        not use the LCL package.
  - Minor changes in LCL basic classes behaviour
      + TCustomForm.Create raises an exception if a form resource is not
        found.
      + TNotebook and TPage: a new implementation of these classes was added.
      + TDBNavigator: It is now possible to have focusable buttons by setting
        Options = [navFocusableButtons] and TabStop = True, useful for
        accessibility and for devices with neither mouse nor touch screen.
      + Names of TControlBorderSpacing.GetSideSpace and GetSpace were swapped
        and are now consistent. GetSideSpace = Around + GetSpace.
      + TForm.WindowState=wsFullscreen was added
      + TCanvas.TextFitInfo was added to calculate how many characters will
        fit into a specified Width. Useful for word-wrapping calculations.
      + TControl.GetColorResolvingParent and
        TControl.GetRGBColorResolvingParent were added, simplifying the work
        to obtain the final color of the control while resolving clDefault
        and the ParentColor.
      + LCLIntf.GetTextExtentExPoint now has a good default implementation
        which works in any platform not providing a specific implementation.
        However, Widgetset specific implementation is better, when available.
      + TTabControl was reorganized. Now it has the correct class hierarchy
        and inherits from TCustomTabControl as it should.
  - New unit in the LCL:
      + lazdialogs.pas: adds non-native versions of various native dialogs,
        for example TLazOpenDialog, TLazSaveDialog, TLazSelectDirectoryDialog.
        It is used by widgetsets which either do not have a native dialog, or
        do not wish to use it because it is limited. These dialogs can also be
        used by user applications directly.
      + lazdeviceapis.pas: offers an interface to more hardware devices such
        as the accelerometer, GPS, etc. See LazDeviceAPIs
      + lazcanvas.pas: provides a TFPImageCanvas descendent implementing
        drawing in a LCL-compatible way, but 100% in Pascal.
      + lazregions.pas. LazRegions is a wholly Pascal implementation of
        regions for canvas clipping, event clipping, finding in which control
        of a region tree one an event should reach, for drawing polygons, etc.
      + customdrawncontrols.pas, customdrawndrawers.pas,
        customdrawn_common.pas, customdrawn_android.pas and
        customdrawn_winxp.pas: are the Lazarus Custom Drawn Controls -controls
        which imitate the standard LCL ones, but with the difference that they
        are non-native and support skinning.
  - New APIs added to the LCL to improve support of accessibility software
    such as screen readers.
* IDE changes:
  - Many improvments.
  - The detailed list of changes can be found here:
    http://wiki.lazarus.freepascal.org/New_IDE_features_since#v1.0_.282012-08-29.29
    http://wiki.lazarus.freepascal.org/Lazarus_1.0_release_notes#IDE_Changes
* Debugger / Editor changes:
  - Added pascal sources and breakpoints to the disassembler
  - Added threads dialog.
* Components changes:
  - TAChart: many fixes and new features
  - CodeTool: support Delphi style generics and new syntax extensions.
  - AggPas: removed to honor free licencing. (Closes: Bug#708695)
[Bart Martens]
* New debian/watch file fixing issues with upstream RC release.
[Abou Al Montacir]
* Avoid changing files in .pc hidden directory, these are used by quilt for
  internal purpose and could lead to surprises during build.
[Paul Gevers]
* Updated get-orig-source target and it compinion script orig-tar.sh so that they
  repack the source file, allowing bug 708695 to be fixed.

Show diffs side-by-side

added added

removed removed

Lines of Context:
10
10
packages=regexpr
11
11
 
12
12
[target]
13
 
programs=lazarus startlazarus
14
 
dirs=lcl packager/registration ideintf components ide tools
15
 
exampledirs=examples
 
13
programs=lazarus startlazarus lazbuild
 
14
dirs=
16
15
 
17
16
[compiler]
18
17
 
45
44
 
46
45
#-----------------------------------------------------------------------------
47
46
[rules]
48
 
.PHONY: lcl components packager/registration ideintf bigidecomponents ide idepkg idebig bigide starter lazbuilder tools all clean cleanide cleannogui purge examples install lazbuild
49
 
 
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
 
48
 
 
49
#-----------------------------------------------------------------------------
 
50
help:
 
51
        @$(ECHO)
 
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"
 
61
        @$(ECHO)
 
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"
 
75
        @$(ECHO)
 
76
        @$(ECHO) " Usage examples:"
 
77
        @$(ECHO)
 
78
        @$(ECHO) " Updating svn and build a minimal IDE, startlazarus and lazbuild:"
 
79
        @$(ECHO) "   make clean"
 
80
        @$(ECHO) "   svn up"
 
81
        @$(ECHO) "   make clean all"
 
82
        @$(ECHO)
 
83
        @$(ECHO) " Note: You can start lazarus with 'startlazarus'"
 
84
        @$(ECHO) " Note: Use the IDE or lazbuild to compile your projects/packages."
 
85
        @$(ECHO)
 
86
        @$(ECHO) " Updating svn and build an IDE with your last set of packages:"
 
87
        @$(ECHO) "   make clean"
 
88
        @$(ECHO) "   svn up"
 
89
        @$(ECHO) "   make clean lazbuild useride"
 
90
        @$(ECHO)
 
91
        @$(ECHO) " Clean up:"
 
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"
 
95
        @$(ECHO)
 
96
        @$(ECHO) "  Another possibility is to create a clean copy via the "svn export" command."
 
97
        @$(ECHO)
 
98
        @$(ECHO) " Install:"
 
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"
 
105
        @$(ECHO)
 
106
        @exit
 
107
 
 
108
#-----------------------------------------------------------------------------
 
109
# build package FCL (shared by all LCL_PLATFORMs)
 
110
registration:
 
111
        $(MAKE) -C packager/registration
 
112
 
 
113
#-----------------------------------------------------------------------------
 
114
# build package LazUtils, requires registration (shared by all LCL_PLATFORMs)
 
115
lazutils:
 
116
        $(MAKE) -C components/lazutils
 
117
 
 
118
#-----------------------------------------------------------------------------
 
119
# build package CodeTools, requires lazutils (shared by all LCL_PLATFORMs)
 
120
codetools:
 
121
        $(MAKE) -C components/codetools
 
122
 
 
123
#-----------------------------------------------------------------------------
 
124
# build package LCLBase and LCL for LCL_PLATFORM
 
125
# requires lazutils
 
126
lcl:
 
127
        $(MAKE) -C lcl
 
128
 
 
129
#-----------------------------------------------------------------------------
 
130
# build package IDEIntf for LCL_PLATFORM
 
131
# requires lcl
 
132
ideintf:
 
133
        $(MAKE) -C ideintf
 
134
 
 
135
#-----------------------------------------------------------------------------
 
136
# build synedit and lazcontrols for the LCL_PLATFORM
 
137
# (Note: lazutils and codetools are shared on all LCL platforms)
 
138
# requires ideintf
 
139
basecomponents:
 
140
        $(MAKE) -C components base
 
141
 
 
142
#-----------------------------------------------------------------------------
 
143
# build a lot of extra packages for the LCL_PLATFORM
 
144
# requires basecomponents
 
145
bigidecomponents:
 
146
        $(MAKE) -C components bigide
 
147
 
 
148
#-----------------------------------------------------------------------------
 
149
# build lazres, svn2revisioninc, updatepofiles, lrstolfm
 
150
# requires codetools and LCL with nogui widgetset
 
151
tools:
 
152
        $(MAKE) -C tools
 
153
 
 
154
#-----------------------------------------------------------------------------
 
155
# create/update ide/revision.inc
 
156
# requires tools
 
157
revisioninc:
 
158
        $(MAKE) -C ide revisioninc
 
159
 
 
160
#-----------------------------------------------------------------------------
 
161
# build lazarus exe with minimum of packages for the LCL_PLATFORM
 
162
# requires basecomponents and tools
 
163
ide:
 
164
        $(MAKE) -C ide ide
 
165
 
 
166
#-----------------------------------------------------------------------------
 
167
# build lazarus exe with bigide packages for the LCL_PLATFORM
 
168
# requires bigidecomponents and tools
 
169
idebig:
 
170
        $(MAKE) -C ide bigide
 
171
 
 
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
51
177
idepkg:
52
178
        $(MAKE) -C ide idepkg
53
179
 
54
180
#-----------------------------------------------------------------------------
55
 
bigide: packager/registration lcl ideintf bigidecomponents idebig starter lazbuilder
56
 
 
57
 
#-----------------------------------------------------------------------------
58
 
idebig:
59
 
        $(MAKE) -C ide bigide
60
 
 
61
 
#-----------------------------------------------------------------------------
62
 
bigidecomponents:
63
 
        $(MAKE) -C components bigidecomponents
64
 
        
65
 
#-----------------------------------------------------------------------------
66
 
bigideclean: cleanlaz
67
 
        $(MAKE) -C components bigideclean
 
181
# calls lazbuild to build lazarus and packages with user's settings
 
182
# requires lazbuild
 
183
# ignores LCL_PLATFORM and OPTS
 
184
useride: 
 
185
        ./lazbuild$(SRCEXEEXT) --lazarusdir=. --build-ide=
68
186
 
69
187
#-----------------------------------------------------------------------------
70
188
starter:
71
189
        $(MAKE) -C ide starter
72
190
 
73
191
#-----------------------------------------------------------------------------
74
 
lazbuild: lazbuilder
75
 
lazbuilder:
76
 
        $(MAKE) -C lcl/interfaces/nogui 
 
192
lazbuild: registration lazutils codetools
 
193
        $(MAKE) -C lcl LCL_PLATFORM=nogui
 
194
        $(MAKE) -C tools
 
195
        $(MAKE) -C ideintf LCL_PLATFORM=nogui
 
196
        $(MAKE) -C components base LCL_PLATFORM=nogui
77
197
        $(MAKE) -C ide lazbuilder LCL_PLATFORM=nogui
78
198
 
79
199
#-----------------------------------------------------------------------------
80
 
tools: lcl
81
 
 
82
 
#-----------------------------------------------------------------------------
83
 
examples: lcl components
84
 
 
85
 
#-----------------------------------------------------------------------------
86
 
all: packager/registration lcl ideintf components bigidecomponents bigide starter lazbuilder tools examples
87
 
 
88
 
#-----------------------------------------------------------------------------
89
 
cleannogui:
90
 
        $(MAKE) -C lcl/interfaces/nogui clean LCL_PLATFORM=nogui
91
 
 
 
200
# build lhelp
 
201
# requires bigidecomponents
 
202
lhelp:
 
203
        $(MAKE) -C components/chmhelp/lhelp
 
204
 
 
205
#-----------------------------------------------------------------------------
 
206
# build examples for the LCL_PLATFORM
 
207
# requires basecomponents
 
208
examples:
 
209
        $(MAKE) -C examples
 
210
 
 
211
#-----------------------------------------------------------------------------
 
212
# build lazarus,lcl,lazbuild,startlazarus with base packages for the LCL_PLATFORM
 
213
all: lazbuild lcl ideintf basecomponents ide starter
 
214
 
 
215
#-----------------------------------------------------------------------------
 
216
# build lazarus,lcl,lazbuild,startlazarus with bigide packages for the LCL_PLATFORM
 
217
bigide: lazbuild lcl ideintf basecomponents bigidecomponents idebig starter lhelp
 
218
 
 
219
#-----------------------------------------------------------------------------
92
220
cleanide:
93
221
        $(MAKE) -C ide cleanide
94
222
 
95
 
cleanlaz: cleanide cleannogui
96
 
        $(MAKE) -C lcl clean
 
223
cleanlaz: cleanide
 
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
100
228
 
101
 
purge: cleanlaz
 
229
clean: cleanlaz
 
230
        $(MAKE) -C . cleanlaz LCL_PLATFORM=nogui
 
231
        $(MAKE) -C tools clean
 
232
        $(MAKE) -C components/chmhelp/lhelp clean
 
233
 
 
234
cleanbigide: clean
 
235
 
 
236
purge: clean
102
237
        $(MAKE) -C examples clean
103
238
#       $(MAKE) -C doceditor clean
104
 
        $(MAKE) -C tools clean
105
 
 
106
 
clean: cleanlaz
107
239
 
108
240
cleanall: purge
109
241
 
119
251
        $(MKDIR) $(INSTALL_MAN_DIR)/man1
120
252
endif
121
253
#-----------------------------------------------------------------------------
122
 
# Many C expect 'make install' to copy the binaries to somewhere
123
 
# Copy the lazarus tree to the install directory and set a link
 
254
# Many "make" users expect 'make install' to copy the binaries to somewhere
 
255
# Copy the lazarus tree to the install directory and set some links
124
256
install:
125
257
        $(MAKE) installbase
126
258
        $(COPYTREE) . $(LAZARUS_INSTALL_DIR)
136
268
endif
137
269
 
138
270
 
 
271
##########################################################################
 
272
# Debian
 
273
##########################################################################
 
274
 
139
275
# Build dir
140
276
ifndef BUILDDIR
141
277
BUILDDIR=$(BASEDIR)/build
142
278
endif
143
279
 
144
 
##########################################################################
145
 
# Debian
146
 
##########################################################################
147
 
 
148
280
ifeq ($(OS_TARGET),linux)
149
281
 
150
282
ifndef DEBDIR