mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-09-01 11:51:01 +02:00
* merged ide additions
This commit is contained in:
parent
f07f30990e
commit
539c411afe
@ -1,12 +1,12 @@
|
||||
#
|
||||
# Makefile generated by fpcmake v1.00 [2000/10/01]
|
||||
# Makefile generated by fpcmake v1.00 [2000/07/11]
|
||||
#
|
||||
|
||||
defaultrule: all
|
||||
|
||||
#####################################################################
|
||||
# Autodetect OS (Linux or Dos or Windows NT)
|
||||
# define inUnix when running under Unix (Linux,FreeBSD)
|
||||
# define inlinux when running under linux
|
||||
# define inWinNT when running under WinNT
|
||||
#####################################################################
|
||||
|
||||
@ -23,18 +23,22 @@ nopwd:
|
||||
@echo Get ftp://ftp.freepascal.org/pub/fpc/dist/go32v2/utilgo32.zip
|
||||
@exit
|
||||
else
|
||||
inUnix=1
|
||||
inlinux=1
|
||||
endif
|
||||
else
|
||||
PWD:=$(firstword $(PWD))
|
||||
endif
|
||||
|
||||
# Detect NT - NT sets OS to Windows_NT
|
||||
# Detect OS/2 - OS/2 has OS2_SHELL defined
|
||||
ifndef inUnix
|
||||
ifndef inlinux
|
||||
ifeq ($(OS),Windows_NT)
|
||||
inWinNT=1
|
||||
else
|
||||
endif
|
||||
endif
|
||||
|
||||
# Detect OS/2 - OS/2 has OS2_SHELL defined
|
||||
ifndef inlinux
|
||||
ifndef inWinNT
|
||||
ifdef OS2_SHELL
|
||||
inOS2=1
|
||||
endif
|
||||
@ -42,14 +46,14 @@ endif
|
||||
endif
|
||||
|
||||
# The extension of executables
|
||||
ifdef inUnix
|
||||
SRCEXEEXT=
|
||||
ifdef inlinux
|
||||
EXEEXT=
|
||||
else
|
||||
SRCEXEEXT=.exe
|
||||
EXEEXT=.exe
|
||||
endif
|
||||
|
||||
# The path which is searched separated by spaces
|
||||
ifdef inUnix
|
||||
ifdef inlinux
|
||||
SEARCHPATH=$(subst :, ,$(PATH))
|
||||
else
|
||||
SEARCHPATH=$(subst ;, ,$(PATH))
|
||||
@ -72,11 +76,15 @@ ifndef FPC
|
||||
ifdef PP
|
||||
FPC=$(PP)
|
||||
else
|
||||
ifdef inOS2
|
||||
FPC=ppos2
|
||||
else
|
||||
FPC=ppc386
|
||||
endif
|
||||
endif
|
||||
override FPC:=$(subst $(SRCEXEEXT),,$(FPC))
|
||||
override FPC:=$(subst \,/,$(FPC))$(SRCEXEEXT)
|
||||
endif
|
||||
override FPC:=$(subst $(EXEEXT),,$(FPC))
|
||||
override FPC:=$(subst \,/,$(FPC))$(EXEEXT)
|
||||
|
||||
# Target OS
|
||||
ifndef OS_TARGET
|
||||
@ -133,7 +141,7 @@ endif
|
||||
|
||||
# Detect FPCDIR
|
||||
ifeq ($(FPCDIR),wrong)
|
||||
ifdef inUnix
|
||||
ifdef inlinux
|
||||
override FPCDIR=/usr/local/lib/fpc/$(FPC_VERSION)
|
||||
ifeq ($(wildcard $(FPCDIR)/units),)
|
||||
override FPCDIR=/usr/lib/fpc/$(FPC_VERSION)
|
||||
@ -209,6 +217,7 @@ ZIPTARGET=install
|
||||
|
||||
# Directories
|
||||
|
||||
override NEEDUNITDIR=../../ide/text
|
||||
ifndef TARGETDIR
|
||||
TARGETDIR=.
|
||||
endif
|
||||
@ -232,7 +241,7 @@ INFOTARGET=fpc_infocfg fpc_infoobjects fpc_infoinstall
|
||||
ifndef ECHO
|
||||
ECHO:=$(strip $(wildcard $(addsuffix /gecho$(EXEEXT),$(SEARCHPATH))))
|
||||
ifeq ($(ECHO),)
|
||||
ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH))))
|
||||
ECHO:=$(strip $(wildcard $(addsuffix /echo$(EXEEXT),$(SEARCHPATH))))
|
||||
ifeq ($(ECHO),)
|
||||
ECHO:=echo
|
||||
ECHOE:=echo
|
||||
@ -273,7 +282,7 @@ endif
|
||||
|
||||
# To install files
|
||||
ifndef INSTALL
|
||||
ifdef inUnix
|
||||
ifdef inlinux
|
||||
INSTALL:=install -m 644
|
||||
else
|
||||
INSTALL:=$(COPY)
|
||||
@ -282,7 +291,7 @@ endif
|
||||
|
||||
# To install programs
|
||||
ifndef INSTALLEXE
|
||||
ifdef inUnix
|
||||
ifdef inlinux
|
||||
INSTALLEXE:=install -m 755
|
||||
else
|
||||
INSTALLEXE:=$(COPY)
|
||||
@ -291,7 +300,7 @@ endif
|
||||
|
||||
# To make a directory.
|
||||
ifndef MKDIR
|
||||
ifdef inUnix
|
||||
ifdef inlinux
|
||||
MKDIR:=install -m 755 -d
|
||||
else
|
||||
MKDIR:=ginstall -m 755 -d
|
||||
@ -315,7 +324,7 @@ LD=ld
|
||||
endif
|
||||
|
||||
# ppas.bat / ppas.sh
|
||||
ifdef inUnix
|
||||
ifdef inlinux
|
||||
PPAS=ppas.sh
|
||||
else
|
||||
ifdef inOS2
|
||||
@ -326,7 +335,7 @@ endif
|
||||
endif
|
||||
|
||||
# ldconfig to rebuild .so cache
|
||||
ifdef inUnix
|
||||
ifdef inlinux
|
||||
LDCONFIG=ldconfig
|
||||
else
|
||||
LDCONFIG=
|
||||
@ -334,7 +343,7 @@ endif
|
||||
|
||||
# ppumove
|
||||
ifndef PPUMOVE
|
||||
PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(SRCEXEEXT),$(SEARCHPATH))))
|
||||
PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(EXEEXT),$(SEARCHPATH))))
|
||||
ifeq ($(PPUMOVE),)
|
||||
PPUMOVE=
|
||||
else
|
||||
@ -345,7 +354,7 @@ export PPUMOVE
|
||||
|
||||
# ppufiles
|
||||
ifndef PPUFILES
|
||||
PPUFILES:=$(strip $(wildcard $(addsuffix /ppufiles$(SRCEXEEXT),$(SEARCHPATH))))
|
||||
PPUFILES:=$(strip $(wildcard $(addsuffix /ppufiles$(EXEEXT),$(SEARCHPATH))))
|
||||
ifeq ($(PPUFILES),)
|
||||
PPUFILES=
|
||||
else
|
||||
@ -364,7 +373,7 @@ ifeq ($(OS_TARGET),win32)
|
||||
UPXPROG:=1
|
||||
endif
|
||||
ifdef UPXPROG
|
||||
UPXPROG:=$(strip $(wildcard $(addsuffix /upx$(SRCEXEEXT),$(SEARCHPATH))))
|
||||
UPXPROG:=$(strip $(wildcard $(addsuffix /upx$(EXEEXT),$(SEARCHPATH))))
|
||||
ifeq ($(UPXPROG),)
|
||||
UPXPROG=
|
||||
else
|
||||
@ -378,7 +387,7 @@ export UPXPROG
|
||||
|
||||
# ZipProg, you can't use Zip as the var name (PFV)
|
||||
ifndef ZIPPROG
|
||||
ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(SRCEXEEXT),$(SEARCHPATH))))
|
||||
ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(EXEEXT),$(SEARCHPATH))))
|
||||
ifeq ($(ZIPPROG),)
|
||||
ZIPPROG=
|
||||
else
|
||||
@ -392,7 +401,7 @@ ZIPEXT=.zip
|
||||
|
||||
# Tar
|
||||
ifndef TARPROG
|
||||
TARPROG:=$(strip $(wildcard $(addsuffix /tar$(SRCEXEEXT),$(SEARCHPATH))))
|
||||
TARPROG:=$(strip $(wildcard $(addsuffix /tar$(EXEEXT),$(SEARCHPATH))))
|
||||
ifeq ($(TARPROG),)
|
||||
TARPROG=
|
||||
else
|
||||
@ -415,7 +424,6 @@ endif
|
||||
|
||||
# Default needed extensions (Go32v2,Linux)
|
||||
LOADEREXT=.as
|
||||
EXEEXT=.exe
|
||||
PPLEXT=.ppl
|
||||
PPUEXT=.ppu
|
||||
OEXT=.o
|
||||
@ -444,18 +452,9 @@ endif
|
||||
|
||||
# Linux
|
||||
ifeq ($(OS_TARGET),linux)
|
||||
EXEEXT=
|
||||
HASSHAREDLIB=1
|
||||
FPCMADE=fpcmade.lnx
|
||||
endif
|
||||
|
||||
# Linux
|
||||
ifeq ($(OS_TARGET),freebsd)
|
||||
EXEEXT=
|
||||
HASSHAREDLIB=1
|
||||
FPCMADE=fpcmade.freebsd
|
||||
endif
|
||||
|
||||
# Win32
|
||||
ifeq ($(OS_TARGET),win32)
|
||||
PPUEXT=.ppw
|
||||
@ -616,30 +615,9 @@ endif
|
||||
# Default Directories
|
||||
#####################################################################
|
||||
|
||||
# Linux and freebsd use unix dirs with /usr/bin, /usr/lib
|
||||
# When zipping use the target as default, when normal install then
|
||||
# use the source os as default
|
||||
ifdef ZIPNAME
|
||||
# Zipinstall
|
||||
ifeq ($(OS_TARGET),linux)
|
||||
UNIXINSTALLDIR=1
|
||||
endif
|
||||
ifeq ($(OS_TARGET),freebsd)
|
||||
UNIXINSTALLDIR=1
|
||||
endif
|
||||
else
|
||||
# Normal install
|
||||
ifeq ($(OS_SOURCE),linux)
|
||||
UNIXINSTALLDIR=1
|
||||
endif
|
||||
ifeq ($(OS_SOURCE),freebsd)
|
||||
UNIXINSTALLDIR=1
|
||||
endif
|
||||
endif
|
||||
|
||||
# set the prefix directory where to install everything
|
||||
ifndef PREFIXINSTALLDIR
|
||||
ifdef UNIXINSTALLDIR
|
||||
ifdef inlinux
|
||||
PREFIXINSTALLDIR=/usr
|
||||
else
|
||||
PREFIXINSTALLDIR=/pp
|
||||
@ -659,7 +637,7 @@ export DESTZIPDIR
|
||||
|
||||
# set the base directory where to install everything
|
||||
ifndef BASEINSTALLDIR
|
||||
ifdef UNIXINSTALLDIR
|
||||
ifdef inlinux
|
||||
BASEINSTALLDIR=$(PREFIXINSTALLDIR)/lib/fpc/$(FPC_VERSION)
|
||||
else
|
||||
BASEINSTALLDIR=$(PREFIXINSTALLDIR)
|
||||
@ -668,7 +646,7 @@ endif
|
||||
|
||||
# set the directory where to install the binaries
|
||||
ifndef BININSTALLDIR
|
||||
ifdef UNIXINSTALLDIR
|
||||
ifdef inlinux
|
||||
BININSTALLDIR=$(PREFIXINSTALLDIR)/bin
|
||||
else
|
||||
BININSTALLDIR=$(BASEINSTALLDIR)/bin/$(OS_TARGET)
|
||||
@ -685,7 +663,7 @@ endif
|
||||
|
||||
# Where to install shared libraries
|
||||
ifndef LIBINSTALLDIR
|
||||
ifdef UNIXINSTALLDIR
|
||||
ifdef inlinux
|
||||
LIBINSTALLDIR=$(PREFIXINSTALLDIR)/lib
|
||||
else
|
||||
LIBINSTALLDIR=$(UNITINSTALLDIR)
|
||||
@ -694,7 +672,7 @@ endif
|
||||
|
||||
# Where the source files will be stored
|
||||
ifndef SOURCEINSTALLDIR
|
||||
ifdef UNIXINSTALLDIR
|
||||
ifdef inlinux
|
||||
SOURCEINSTALLDIR=$(PREFIXINSTALLDIR)/src/fpc-$(FPC_VERSION)
|
||||
else
|
||||
SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
|
||||
@ -706,7 +684,7 @@ endif
|
||||
|
||||
# Where the doc files will be stored
|
||||
ifndef DOCINSTALLDIR
|
||||
ifdef UNIXINSTALLDIR
|
||||
ifdef inlinux
|
||||
DOCINSTALLDIR=$(PREFIXINSTALLDIR)/doc/fpc-$(FPC_VERSION)
|
||||
else
|
||||
DOCINSTALLDIR=$(BASEINSTALLDIR)/doc
|
||||
@ -716,7 +694,7 @@ endif
|
||||
# Where to install the examples, under linux we use the doc dir
|
||||
# because the copytree command will create a subdir itself
|
||||
ifndef EXAMPLEINSTALLDIR
|
||||
ifdef UNIXINSTALLDIR
|
||||
ifdef inlinux
|
||||
EXAMPLEINSTALLDIR=$(DOCINSTALLDIR)/examples
|
||||
else
|
||||
EXAMPLEINSTALLDIR=$(BASEINSTALLDIR)/examples
|
||||
@ -740,7 +718,7 @@ REDIRFILE=log
|
||||
endif
|
||||
|
||||
ifdef REDIR
|
||||
ifndef inUnix
|
||||
ifndef inlinux
|
||||
override FPC=redir -eo $(FPC)
|
||||
endif
|
||||
# set the verbosity to max
|
||||
@ -787,7 +765,7 @@ endif
|
||||
|
||||
# Debug
|
||||
ifdef DEBUG
|
||||
override FPCOPT+=-gl -dDEBUG
|
||||
override FPCOPT+=-g -dDEBUG
|
||||
endif
|
||||
|
||||
# Release mode (strip, optimize and don't load ppc386.cfg)
|
||||
@ -823,27 +801,9 @@ ifdef UNITSDIR
|
||||
override FPCOPT+=-Fu$(UNITSDIR)
|
||||
endif
|
||||
|
||||
# Target dirs and the prefix to use for clean/install
|
||||
# Target dirs
|
||||
ifdef TARGETDIR
|
||||
override FPCOPT+=-FE$(TARGETDIR)
|
||||
ifeq ($(TARGETDIR),.)
|
||||
override TARGETDIRPREFIX=
|
||||
else
|
||||
override TARGETDIRPREFIX=$(TARGETDIR)/
|
||||
endif
|
||||
endif
|
||||
ifdef UNITTARGETDIR
|
||||
override FPCOPT+=-FU$(UNITTARGETDIR)
|
||||
ifeq ($(UNITTARGETDIR),.)
|
||||
override UNITTARGETDIRPREFIX=
|
||||
else
|
||||
override UNITTARGETDIRPREFIX=$(TARGETDIR)/
|
||||
endif
|
||||
else
|
||||
ifdef TARGETDIR
|
||||
override UNITTARGETDIR=$(TARGETDIR)
|
||||
override UNITTARGETDIRPREFIX=$(TARGETDIRPREFIX)
|
||||
endif
|
||||
endif
|
||||
|
||||
# Add commandline options last so they can override
|
||||
@ -877,14 +837,11 @@ endif
|
||||
override COMPILER:=$(FPC) $(FPCOPT)
|
||||
|
||||
# also call ppas if with command option -s
|
||||
# but only if the OS_SOURCE and OS_TARGE are equal
|
||||
ifeq (,$(findstring -s ,$(COMPILER)))
|
||||
EXECPPAS=
|
||||
else
|
||||
ifeq ($(OS_SOURCE),$(OS_TARGET))
|
||||
EXECPPAS:=@$(PPAS)
|
||||
endif
|
||||
endif
|
||||
|
||||
#####################################################################
|
||||
# Standard rules
|
||||
@ -930,12 +887,11 @@ info: fpc_info
|
||||
|
||||
ifdef EXEOBJECTS
|
||||
override EXEFILES=$(addsuffix $(EXEEXT),$(EXEOBJECTS))
|
||||
override EXEOFILES:=$(addsuffix $(OEXT),$(EXEOBJECTS)) $(addprefix $(LIBPREFIX),$(addsuffix $(STATICLIBEXT),$(EXEOBJECTS)))
|
||||
override EXEOFILES=$(addsuffix $(OEXT),$(EXEOBJECTS))
|
||||
|
||||
override ALLTARGET+=fpc_exes
|
||||
override INSTALLEXEFILES+=$(EXEFILES)
|
||||
override CLEANEXEFILES+=$(EXEFILES) $(EXEOFILES)
|
||||
|
||||
endif
|
||||
|
||||
fpc_exes: $(EXEFILES)
|
||||
@ -956,11 +912,6 @@ fpc_all: fpc_packages $(FPCMADE)
|
||||
fpc_debug:
|
||||
$(MAKE) all DEBUG=1
|
||||
|
||||
# Search paths for .ppu if targetdir is set
|
||||
ifdef UNITTARGETDIR
|
||||
vpath %$(PPUEXT) $(UNITTARGETDIR)
|
||||
endif
|
||||
|
||||
# General compile rules, available for both possible PASEXT
|
||||
|
||||
.SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .pp
|
||||
@ -1002,7 +953,7 @@ fpc_smart:
|
||||
$(MAKE) all LINKSMART=1 CREATESMART=1
|
||||
|
||||
fpc_shared: all
|
||||
ifdef HASSHAREDLIB
|
||||
ifdef inlinux
|
||||
ifndef LIBNAME
|
||||
@$(ECHO) "LIBNAME not set"
|
||||
else
|
||||
@ -1023,17 +974,11 @@ override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
|
||||
endif
|
||||
|
||||
ifdef INSTALLPPUFILES
|
||||
override INSTALLPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(INSTALLPPUFILES))
|
||||
ifdef PPUFILES
|
||||
INSTALLPPULINKFILES:=$(shell $(PPUFILES) -S -O $(INSTALLPPUFILES))
|
||||
else
|
||||
INSTALLPPULINKFILES:=$(wildcard $(subst $(PPUEXT),$(OEXT),$(INSTALLPPUFILES)) $(addprefix $(LIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES))))
|
||||
INSTALLPPULINKFILES:=$(wildcard $(subst $(PPUEXT),$(OEXT),$(INSTALLPPUFILES)))
|
||||
endif
|
||||
override INSTALLPPULINKFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(INSTALLPPULINKFILES))
|
||||
endif
|
||||
|
||||
ifdef INSTALLEXEFILES
|
||||
override INSTALLEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(INSTALLEXEFILES))
|
||||
endif
|
||||
|
||||
fpc_showinstall: $(SHOWINSTALLTARGET)
|
||||
@ -1047,7 +992,7 @@ ifneq ($(INSTALLPPULINKFILES),)
|
||||
endif
|
||||
ifneq ($(wildcard $(LIBFULLNAME)),)
|
||||
@$(ECHO) $(LIBINSTALLDIR)/$(LIBFULLNAME)
|
||||
ifdef HASSHAREDLIB
|
||||
ifdef inlinux
|
||||
@$(ECHO) $(LIBINSTALLDIR)/$(LIBNAME)
|
||||
endif
|
||||
endif
|
||||
@ -1075,7 +1020,7 @@ endif
|
||||
ifneq ($(wildcard $(LIBFULLNAME)),)
|
||||
$(MKDIR) $(LIBINSTALLDIR)
|
||||
$(INSTALL) $(LIBFULLNAME) $(LIBINSTALLDIR)
|
||||
ifdef inUnix
|
||||
ifdef inlinux
|
||||
ln -sf $(LIBFULLNAME) $(LIBINSTALLDIR)/$(LIBNAME)
|
||||
endif
|
||||
endif
|
||||
@ -1136,7 +1081,7 @@ endif
|
||||
|
||||
# Temporary path to pack a file
|
||||
ifndef PACKDIR
|
||||
ifndef inUnix
|
||||
ifndef inlinux
|
||||
PACKDIR=$(BASEDIR)/pack_tmp
|
||||
else
|
||||
PACKDIR=/tmp/fpc-pack
|
||||
@ -1152,7 +1097,7 @@ endif
|
||||
|
||||
# Use tar by default under linux
|
||||
ifndef USEZIP
|
||||
ifdef inUnix
|
||||
ifdef inlinux
|
||||
USETAR=1
|
||||
endif
|
||||
endif
|
||||
@ -1189,23 +1134,16 @@ fpc_zipexampleinstall:
|
||||
|
||||
.PHONY: fpc_clean fpc_cleanall fpc_distclean
|
||||
|
||||
ifdef EXEFILES
|
||||
override CLEANEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANEXEFILES))
|
||||
endif
|
||||
|
||||
ifdef EXTRACLEANUNITS
|
||||
override CLEANPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRACLEANUNITS))
|
||||
endif
|
||||
|
||||
ifdef CLEANPPUFILES
|
||||
override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
|
||||
# Get the .o and .a files created for the units
|
||||
ifdef PPUFILES
|
||||
CLEANPPULINKFILES:=$(shell $(PPUFILES) $(CLEANPPUFILES))
|
||||
else
|
||||
CLEANPPULINKFILES:=$(wildcard $(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(LIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES))))
|
||||
CLEANPPULINKFILES:=$(wildcard $(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)))
|
||||
endif
|
||||
override CLEANPPULINKFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES))
|
||||
endif
|
||||
|
||||
fpc_clean: $(CLEANTARGET)
|
||||
@ -1219,7 +1157,7 @@ ifneq ($(CLEANPPULINKFILES),)
|
||||
-$(DEL) $(CLEANPPULINKFILES)
|
||||
endif
|
||||
ifdef CLEANRSTFILES
|
||||
-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
|
||||
-$(DEL) $(CLEANRSTFILES)
|
||||
endif
|
||||
ifdef EXTRACLEANFILES
|
||||
-$(DEL) $(EXTRACLEANFILES)
|
||||
@ -1231,13 +1169,7 @@ endif
|
||||
|
||||
fpc_distclean: fpc_clean
|
||||
|
||||
# Also run clean first if targetdir is set. Unittargetdir is always
|
||||
# set if targetdir or unittargetdir is specified
|
||||
ifdef UNITTARGETDIR
|
||||
TARGETDIRCLEAN=fpc_clean
|
||||
endif
|
||||
|
||||
fpc_cleanall: $(CLEANTARGET) $(TARGETDIRCLEAN)
|
||||
fpc_cleanall: $(CLEANTARGET)
|
||||
ifdef CLEANEXEFILES
|
||||
-$(DEL) $(CLEANEXEFILES)
|
||||
endif
|
||||
|
@ -23,7 +23,7 @@ packages=api fv
|
||||
[dirs]
|
||||
fpcdir=..
|
||||
targetdir=.
|
||||
|
||||
unitdir=../../ide/text
|
||||
|
||||
[rules]
|
||||
installer.pas: install.pas
|
||||
|
@ -70,11 +70,12 @@ program install;
|
||||
{$IFDEF DLL}
|
||||
unzipdll,
|
||||
{$ENDIF}
|
||||
app,dialogs,views,menus,msgbox,colortxt,tabs,inststr,scroll;
|
||||
app,dialogs,views,menus,msgbox,colortxt,tabs,inststr,scroll,
|
||||
HelpCtx,WHTMLScn;
|
||||
|
||||
|
||||
const
|
||||
installerversion='1.02';
|
||||
installerversion='1.0.2';
|
||||
|
||||
|
||||
{$ifdef TP}lfnsupport=false;{$endif}
|
||||
@ -83,11 +84,15 @@ program install;
|
||||
maxpackages=20;
|
||||
maxdefcfgs=1024;
|
||||
|
||||
HTMLIndexExt = '.htx';
|
||||
CfgExt = '.dat';
|
||||
|
||||
MaxStatusPos = 4;
|
||||
StatusChars: string [MaxStatusPos] = '/-\|';
|
||||
StatusPos: byte = 1;
|
||||
{ this variable is set to true if an ide is installed }
|
||||
haside : boolean = false;
|
||||
hashtmlhelp : boolean = false;
|
||||
|
||||
{$IFDEF LINUX}
|
||||
DirSep='/';
|
||||
@ -121,6 +126,8 @@ program install;
|
||||
name : string[12];
|
||||
binsub : string[40];
|
||||
ppc386 : string[20];
|
||||
defidecfgfile,
|
||||
defideinifile,
|
||||
defcfgfile : string[12];
|
||||
include : boolean;
|
||||
filechk : string[40];
|
||||
@ -128,15 +135,23 @@ program install;
|
||||
package : array[1..maxpackages] of tpackage;
|
||||
end;
|
||||
|
||||
tcfgarray = array[1..maxdefcfgs] of pstring;
|
||||
|
||||
cfgrec=record
|
||||
title : string[80];
|
||||
version : string[20];
|
||||
language : string[30];
|
||||
helpidx,
|
||||
docsub,
|
||||
basepath : DirStr;
|
||||
packs : word;
|
||||
pack : array[1..maxpacks] of tpack;
|
||||
defideinis,
|
||||
defidecfgs,
|
||||
defcfgs : longint;
|
||||
defcfg : array[1..maxdefcfgs] of pstring;
|
||||
defideini,
|
||||
defidecfg,
|
||||
defcfg : tcfgarray;
|
||||
end;
|
||||
|
||||
datarec=packed record
|
||||
@ -168,6 +183,19 @@ program install;
|
||||
constructor init;
|
||||
end;
|
||||
|
||||
PFPHTMLFileLinkScanner = ^TFPHTMLFileLinkScanner;
|
||||
TFPHTMLFileLinkScanner = object(THTMLFileLinkScanner)
|
||||
function CheckURL(const URL: string): boolean; virtual;
|
||||
function CheckText(const Text: string): boolean; virtual;
|
||||
procedure ProcessDoc(Doc: PHTMLLinkScanFile); virtual;
|
||||
end;
|
||||
|
||||
phtmlindexdialog = ^thtmlindexdialog;
|
||||
thtmlindexdialog = object(tdialog)
|
||||
text : pstatictext;
|
||||
constructor init(var Bounds: TRect; ATitle: TTitleStr);
|
||||
end;
|
||||
|
||||
tapp = object(tapplication)
|
||||
procedure initmenubar;virtual;
|
||||
procedure handleevent(var event : tevent);virtual;
|
||||
@ -393,12 +421,176 @@ program install;
|
||||
GetProgDir := D;
|
||||
end;
|
||||
|
||||
function RTrim(const S: string): string;
|
||||
var
|
||||
i : longint;
|
||||
begin
|
||||
i:=length(s);
|
||||
while (i>0) and (s[i]=' ') do
|
||||
dec(i);
|
||||
RTrim:=Copy(s,1,i);
|
||||
end;
|
||||
|
||||
function LTrim(const S: string): string;
|
||||
var
|
||||
i : longint;
|
||||
begin
|
||||
i:=1;
|
||||
while (i<length(s)) and (s[i]=' ') do
|
||||
inc(i);
|
||||
LTrim:=Copy(s,i,255);
|
||||
end;
|
||||
|
||||
function Trim(const S: string): string;
|
||||
begin
|
||||
Trim:=RTrim(LTrim(S));
|
||||
end;
|
||||
|
||||
function CompareText(S1, S2: string): integer;
|
||||
var R: integer;
|
||||
begin
|
||||
S1:=Upcase(S1);
|
||||
S2:=Upcase(S2);
|
||||
if S1<S2 then R:=-1 else
|
||||
if S1>S2 then R:= 1 else
|
||||
R:=0;
|
||||
CompareText:=R;
|
||||
end;
|
||||
|
||||
function ExtOf(const S: string): string;
|
||||
var D: DirStr; E: ExtStr; N: NameStr;
|
||||
begin
|
||||
FSplit(S,D,N,E);
|
||||
ExtOf:=E;
|
||||
end;
|
||||
|
||||
function DirAndNameOf(const S: string): string;
|
||||
var D: DirStr; E: ExtStr; N: NameStr;
|
||||
begin
|
||||
FSplit(S,D,N,E);
|
||||
DirAndNameOf:=D+N;
|
||||
end;
|
||||
|
||||
{*****************************************************************************
|
||||
HTML-Index Generation
|
||||
*****************************************************************************}
|
||||
var
|
||||
indexdlg : phtmlindexdialog;
|
||||
|
||||
constructor thtmlindexdialog.Init(var Bounds: TRect; ATitle: TTitleStr);
|
||||
var
|
||||
r : trect;
|
||||
begin
|
||||
inherited init(bounds,atitle);
|
||||
R.Assign (4, 2,bounds.B.X-Bounds.A.X-2, 4);
|
||||
text:=new(pstatictext,init(r,'Please wait ...'));
|
||||
insert(text);
|
||||
end;
|
||||
|
||||
procedure TFPHTMLFileLinkScanner.ProcessDoc(Doc: PHTMLLinkScanFile);
|
||||
|
||||
var
|
||||
oldtext : pstring;
|
||||
begin
|
||||
oldtext:=indexdlg^.text^.text;
|
||||
indexdlg^.text^.text:=newstr('Processing '+Doc^.GetDocumentURL);
|
||||
indexdlg^.text^.drawview;
|
||||
inherited ProcessDoc(Doc);
|
||||
disposestr(indexdlg^.text^.text);
|
||||
indexdlg^.text^.text:=oldtext;
|
||||
indexdlg^.text^.drawview;
|
||||
end;
|
||||
|
||||
function TFPHTMLFileLinkScanner.CheckURL(const URL: string): boolean;
|
||||
var OK: boolean;
|
||||
const HTTPPrefix = 'http:';
|
||||
FTPPrefix = 'ftp:';
|
||||
begin
|
||||
OK:=inherited CheckURL(URL);
|
||||
if OK then OK:=DirAndNameOf(URL)<>'';
|
||||
if OK then OK:=CompareText(copy(ExtOf(URL),1,4),'.HTM')=0;
|
||||
if OK then OK:=CompareText(copy(URL,1,length(HTTPPrefix)),HTTPPrefix)<>0;
|
||||
if OK then OK:=CompareText(copy(URL,1,length(FTPPrefix)),FTPPrefix)<>0;
|
||||
CheckURL:=OK;
|
||||
end;
|
||||
|
||||
function TFPHTMLFileLinkScanner.CheckText(const Text: string): boolean;
|
||||
var OK: boolean;
|
||||
S: string;
|
||||
begin
|
||||
S:=Trim(Text);
|
||||
OK:=(S<>'') and (copy(S,1,1)<>'[');
|
||||
CheckText:=OK;
|
||||
end;
|
||||
|
||||
procedure writehlpindex(filename : string);
|
||||
|
||||
var
|
||||
LS : PFPHTMLFileLinkScanner;
|
||||
BS : PBufStream;
|
||||
S : String;
|
||||
Re : Word;
|
||||
params : array[0..0] of pointer;
|
||||
dir : searchrec;
|
||||
r : trect;
|
||||
|
||||
begin
|
||||
S:='HTML Index';
|
||||
r.assign(10,10,70,15);
|
||||
indexdlg:=new(phtmlindexdialog,init(r,'Creating HTML index file, please wait ...'));
|
||||
desktop^.insert(indexdlg);
|
||||
New(LS, Init);
|
||||
LS^.ProcessDocument(FileName,[soSubDocsOnly]);
|
||||
if LS^.GetDocumentCount=0 then
|
||||
begin
|
||||
params[0]:=@filename;
|
||||
MessageBox('Problem creating help index %1, abording',@params,
|
||||
mferror+mfyesbutton+mfnobutton);
|
||||
end
|
||||
else
|
||||
begin
|
||||
FileName:=DirAndNameOf(FileName)+HTMLIndexExt;
|
||||
findfirst(filename,AnyFile,dir);
|
||||
if doserror=0 then
|
||||
begin
|
||||
params[0]:=@filename;
|
||||
Re:=MessageBox('Help index %s already exists, overwrite it?',@params,
|
||||
mfinformation+mfyesbutton+mfnobutton);
|
||||
end;
|
||||
if Re<>cmNo then
|
||||
begin
|
||||
New(BS, Init(FileName, stCreate, 4096));
|
||||
if Assigned(BS)=false then
|
||||
begin
|
||||
MessageBox('Error while writing help index! '+
|
||||
'No help index is created',@params,
|
||||
mferror+mfokbutton);
|
||||
Re:=cmCancel;
|
||||
end
|
||||
else
|
||||
begin
|
||||
LS^.StoreDocuments(BS^);
|
||||
if BS^.Status<>stOK then
|
||||
begin
|
||||
MessageBox('Error while writing help index!'#13+
|
||||
'No help index is created',@params,
|
||||
mferror+mfokbutton);
|
||||
Re:=cmCancel;
|
||||
end;
|
||||
Dispose(BS, Done);
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
Dispose(LS, Done);
|
||||
desktop^.delete(indexdlg);
|
||||
dispose(indexdlg,done);
|
||||
end;
|
||||
|
||||
{*****************************************************************************
|
||||
Writing of ppc386.cfg
|
||||
*****************************************************************************}
|
||||
|
||||
procedure writedefcfg(const fn:string);
|
||||
procedure writedefcfg(const fn:string;const cfgdata : tcfgarray;count : longint);
|
||||
var
|
||||
t : text;
|
||||
i : longint;
|
||||
@ -432,10 +624,10 @@ program install;
|
||||
MessageBox(msg_problems_writing_cfg,@params,mfinformation+mfokbutton);
|
||||
exit;
|
||||
end;
|
||||
for i:=1 to cfg.defcfgs do
|
||||
if assigned(cfg.defcfg[i]) then
|
||||
for i:=1 to count do
|
||||
if assigned(cfgdata[i]) then
|
||||
begin
|
||||
s:=cfg.defcfg[i]^;
|
||||
s:=cfgdata[i]^;
|
||||
Replace(s,'$1',data.basepath);
|
||||
|
||||
{ error msg file entry? }
|
||||
@ -574,7 +766,10 @@ program install;
|
||||
EMXName: array [1..4] of char = 'EMX'#0;
|
||||
{$ENDIF}
|
||||
begin
|
||||
YB := 14;
|
||||
if haside then
|
||||
YB := 15
|
||||
else
|
||||
YB := 14;
|
||||
|
||||
{$IFNDEF LINUX}
|
||||
s:='';
|
||||
@ -624,17 +819,24 @@ program install;
|
||||
S := str_libpath+'''' + S + '\'+str_dll+''''
|
||||
else
|
||||
S := str_extend_libpath+'''' + S + '\'+str_dll+'''';
|
||||
R.Assign (2, YB - 13, 64, YB - 11);
|
||||
R.Assign (2, YB - 14, 64, YB - 12);
|
||||
P := New (PStaticText, Init (R, S));
|
||||
Insert (P);
|
||||
end;
|
||||
{$ENDIF}
|
||||
{$ENDIF}
|
||||
|
||||
R.Assign(2, YB - 11, 64, YB - 10);
|
||||
R.Assign(2, YB - 13, 64, YB - 12);
|
||||
P:=new(pstatictext,init(r,str_to_compile+''''+cfg.pack[1].ppc386+str_file2+''''));
|
||||
insert(P);
|
||||
|
||||
if haside then
|
||||
begin
|
||||
R.Assign(2, YB - 12, 64, YB - 10);
|
||||
P:=new(pstatictext,init(r,str_start_ide));
|
||||
insert(P);
|
||||
end;
|
||||
|
||||
R.Assign (29, YB - 9, 39, YB - 7);
|
||||
Control := New (PButton, Init (R,str_ok, cmOK, bfDefault));
|
||||
Insert (Control);
|
||||
@ -981,6 +1183,29 @@ program install;
|
||||
DSize,Space,ASpace : longint;
|
||||
S: DirStr;
|
||||
{$endif}
|
||||
|
||||
procedure doconfigwrite;
|
||||
|
||||
var
|
||||
i : longint;
|
||||
|
||||
begin
|
||||
for i:=1 to cfg.packs do
|
||||
if cfg.pack[i].defcfgfile<>'' then
|
||||
writedefcfg(data.basepath+cfg.pack[i].binsub+DirSep+cfg.pack[i].defcfgfile,cfg.defcfg,cfg.defcfgs);
|
||||
if haside then
|
||||
begin
|
||||
for i:=1 to cfg.packs do
|
||||
if cfg.pack[i].defidecfgfile<>'' then
|
||||
writedefcfg(data.basepath+cfg.pack[i].binsub+DirSep+cfg.pack[i].defidecfgfile,cfg.defidecfg,cfg.defidecfgs);
|
||||
for i:=1 to cfg.packs do
|
||||
if cfg.pack[i].defideinifile<>'' then
|
||||
writedefcfg(data.basepath+cfg.pack[i].binsub+DirSep+cfg.pack[i].defideinifile,cfg.defideini,cfg.defideinis);
|
||||
if hashtmlhelp then
|
||||
writehlpindex(data.basepath+DirSep+cfg.DocSub+DirSep+cfg.helpidx);
|
||||
end;
|
||||
end;
|
||||
|
||||
begin
|
||||
data.basepath:=cfg.basepath;
|
||||
data.cfgval:=0;
|
||||
@ -1054,11 +1279,7 @@ program install;
|
||||
result:=messagebox(msg_no_components_selected,nil,
|
||||
mfinformation+mfyesbutton+mfnobutton);
|
||||
if (result=cmYes) and createinstalldir(data.basepath) then
|
||||
begin
|
||||
for i:=1 to cfg.packs do
|
||||
if cfg.pack[i].defcfgfile<>'' then
|
||||
writedefcfg(data.basepath+cfg.pack[i].binsub+DirSep+cfg.pack[i].defcfgfile);
|
||||
end;
|
||||
doconfigwrite;
|
||||
exit;
|
||||
end
|
||||
else
|
||||
@ -1093,11 +1314,7 @@ program install;
|
||||
|
||||
{ write config }
|
||||
if (data.cfgval and 1)<>0 then
|
||||
begin
|
||||
for i:=1 to cfg.packs do
|
||||
if cfg.pack[i].defcfgfile<>'' then
|
||||
writedefcfg(data.basepath+cfg.pack[i].binsub+DirSep+cfg.pack[i].defcfgfile);
|
||||
end;
|
||||
doconfigwrite;
|
||||
|
||||
{ show end message }
|
||||
p3:=new(penddialog,init);
|
||||
@ -1179,6 +1396,12 @@ program install;
|
||||
else
|
||||
if item='BASEPATH' then
|
||||
cfg.basepath:=s
|
||||
else
|
||||
if item='HELPIDX' then
|
||||
cfg.helpidx:=s
|
||||
else
|
||||
if item='DOCSUB' then
|
||||
cfg.docsub:=s
|
||||
else
|
||||
if item='DEFAULTCFG' then
|
||||
begin
|
||||
@ -1193,6 +1416,32 @@ program install;
|
||||
end;
|
||||
until false;
|
||||
end
|
||||
else if item='DEFAULTIDECFG' then
|
||||
begin
|
||||
repeat
|
||||
readln(t,s);
|
||||
if upper(s)='ENDCFG' then
|
||||
break;
|
||||
if cfg.defidecfgs<maxdefcfgs then
|
||||
begin
|
||||
inc(cfg.defidecfgs);
|
||||
cfg.defidecfg[cfg.defidecfgs]:=newstr(s);
|
||||
end;
|
||||
until false;
|
||||
end
|
||||
else if item='DEFAULTIDEINI' then
|
||||
begin
|
||||
repeat
|
||||
readln(t,s);
|
||||
if upper(s)='ENDCFG' then
|
||||
break;
|
||||
if cfg.defideinis<maxdefcfgs then
|
||||
begin
|
||||
inc(cfg.defideinis);
|
||||
cfg.defideini[cfg.defideinis]:=newstr(s);
|
||||
end;
|
||||
until false;
|
||||
end
|
||||
else
|
||||
if item='PACK' then
|
||||
begin
|
||||
@ -1214,6 +1463,26 @@ program install;
|
||||
end;
|
||||
cfg.pack[cfg.packs].defcfgfile:=s
|
||||
end
|
||||
else
|
||||
if item='IDECFGFILE' then
|
||||
begin
|
||||
if cfg.packs=0 then
|
||||
begin
|
||||
writeln('No pack set');
|
||||
halt(1);
|
||||
end;
|
||||
cfg.pack[cfg.packs].defidecfgfile:=s
|
||||
end
|
||||
else
|
||||
if item='IDEINIFILE' then
|
||||
begin
|
||||
if cfg.packs=0 then
|
||||
begin
|
||||
writeln('No pack set');
|
||||
halt(1);
|
||||
end;
|
||||
cfg.pack[cfg.packs].defideinifile:=s
|
||||
end
|
||||
else
|
||||
if item='PPC386' then
|
||||
begin
|
||||
@ -1252,6 +1521,10 @@ program install;
|
||||
writeln('No pack set');
|
||||
halt(1);
|
||||
end;
|
||||
if copy(s,1,3)='ide' then
|
||||
haside:=true;
|
||||
if copy(s,1,7)='doc-htm' then
|
||||
hashtmlhelp:=true;
|
||||
with cfg.pack[cfg.packs] do
|
||||
begin
|
||||
j:=pos(',',s);
|
||||
@ -1407,6 +1680,8 @@ var
|
||||
i : longint;
|
||||
|
||||
begin
|
||||
{ register objects for help streaming }
|
||||
RegisterWHTMLScan;
|
||||
{$ifdef FPC}
|
||||
{$ifdef win32}
|
||||
Dos.Exec(GetEnv('COMSPEC'),'/C echo This dummy call gets the mouse to become visible');
|
||||
@ -1483,7 +1758,10 @@ begin
|
||||
end.
|
||||
{
|
||||
$Log$
|
||||
Revision 1.9 2000-10-08 18:43:17 hajny
|
||||
Revision 1.10 2000-10-11 15:57:47 peter
|
||||
* merged ide additions
|
||||
|
||||
Revision 1.9 2000/10/08 18:43:17 hajny
|
||||
* the language dialog repaired
|
||||
|
||||
Revision 1.8 2000/09/24 10:52:36 peter
|
||||
|
@ -49,7 +49,7 @@ unit inststr;
|
||||
|
||||
msg_nocomponents = 'No components selected.'#13#13'Abort installation?';
|
||||
msg_overwrite_cfg = 'Config %s already exists, continue writing default config?';
|
||||
msg_problems_writing_cfg = #3'Default config not written.'#13#3'%s'#13#3'couldn''t be created';
|
||||
msg_problems_writing_cfg = #3'A config not written.'#13#3'%s'#13#3'couldn''t be created';
|
||||
msg_problems_create_dir = 'A file with the name chosen as the installation '+
|
||||
'directory exists already. Cannot create this directory!';
|
||||
msg_no_components_selected = 'No components selected.'#13#13'Create a configfile ?';
|
||||
@ -81,6 +81,7 @@ unit inststr;
|
||||
str_is_not = 'is not';
|
||||
str_might_not_be = 'might not be';
|
||||
str_to_compile = 'To compile files enter ';
|
||||
str_start_ide = 'To start the IDE (Integrated Development Environment) type ''fp'' at a command line prompt';
|
||||
str_libpath = 'and your LIBPATH with ';
|
||||
str_extend_libpath = 'Extend your LIBPATH with ';
|
||||
str_dll = 'dll';
|
||||
@ -93,7 +94,10 @@ unit inststr;
|
||||
end.
|
||||
{
|
||||
$Log$
|
||||
Revision 1.3 2000-09-22 12:15:49 florian
|
||||
Revision 1.4 2000-10-11 15:57:47 peter
|
||||
* merged ide additions
|
||||
|
||||
Revision 1.3 2000/09/22 12:15:49 florian
|
||||
+ support of Russian (Windows)
|
||||
|
||||
Revision 1.2 2000/09/22 11:07:51 florian
|
||||
|
Loading…
Reference in New Issue
Block a user