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