Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / fpc-devel / 2003-10

fpcmake

11 messages · 7 people · –

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

darekM

If we change FPCMAKE to generate code like this:
---------------------
#add dir of make.exe to PATH
override PATH +=$(dir $(MAKE)) <----------------- override PATH:=$(subst \,/,$(PATH))
#$(error $(PATH))
ifeq ($(findstring ;,$(PATH)),)
inUnix=1
SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH)))
else
SEARCHPATH:=$(subst ;, ,$(PATH))
endif
PWD:=$(strip $(wildcard $(addsuffix /pwd.exe,$(SEARCHPATH))))

# if dir has backslash on the end then search fail ifeq ($(PWD),) <-------------
PWD:=$(strip $(wildcard $(addsuffix pwd.exe,$(SEARCHPATH)))) <----------- endif <---------------

ifeq ($(PWD),)
PWD:=$(strip $(wildcard $(addsuffix /pwd,$(SEARCHPATH)))) ifeq ($(PWD),)
$(error You need the GNU utils package to use this Makefile) else

---------------
then we will be able to do MAKE without change PATH in AUTOEXEC.BAT

with this command:
C:\PP\BIN\WIN32\MAKE

Darek

Reply by email

Marco van de Voort
to Yakov Sudeikin
Let's get rid of fpcmake. Pascal is good because you do not need this old-crap-make-utility to compile your programs!

For simple things: yes, for more complicated stuff, make is quite ideal.

Even Borland's products all come with make.

Reply by email

James Mills
to Florian Klaempfl
Florian Klaempfl wrote 6 lines
Yakov Sudeikin wrote: >Let's get rid of fpcmake. Pascal is good because you do not need this >old-crap-make-utility to compile your programs! All you need is a compiler! Not of you have hundred of files in a dozens of directories and you want to compile these source for more than one target.

The trouble I've found with fpcmake, is it's not that easy to create the make files with. Quite difficult indeed. Mind you though, I've never used any of the GNU Make utils either, eg: autoconf, etc...

cheers
James

- -Zero Defect Software Engineers Group - ZDSEG - -You need only two tools. WD-40 and duct tape. -If it doesn't move and it should, use WD-40. -If it moves and shouldn't, use the tape.

Reply by email

darekM
to James Mills

I've presented small improve in fcpmake, witch can modified all MAKE files in FCP project, no one must use MAKE for own project but to recompile COMPILATOR better use it and with my patch even simpler (I think so).

Darek
PS. I'm sorry for my last post in HTML format.

Earlier message 35 lines
----- Original Message ----- From: "James Mills" To: Sent: Sunday, October 12, 2003 3:14 PM Subject: Re: [fpc-devel]fpcmake > On Sun, Oct 12, 2003 at 01:55:41PM +0200, Florian Klaempfl wrote: > > Yakov Sudeikin wrote: > > >Let's get rid of fpcmake. Pascal is good because you do not need this > > >old-crap-make-utility to compile your programs! All you need is a compiler! > > > > Not of you have hundred of files in a dozens of directories and you want > > to compile these source for more than one target. > > The trouble I've found with fpcmake, is it's not that easy to create the > make files with. Quite difficult indeed. Mind you though, I've never > used any of the GNU Make utils either, eg: autoconf, etc... > > cheers > James > > -- > - > -Zero Defect Software Engineers Group - ZDSEG > - > -You need only two tools. WD-40 and duct tape. > -If it doesn't move and it should, use WD-40. > -If it moves and shouldn't, use the tape. > > _______________________________________________ > fpc-devel maillist - > http://lists.freepascal.org/mailman/listinfo/fpc-devel >

Reply by email

Marco van de Voort
to James Mills: The trouble I've found with fpcmake, is it's not that easy to create the make files with.…
Show quoted text 11 lines
On Sun, Oct 12, 2003 at 01:55:41PM +0200, Florian Klaempfl wrote: > Yakov Sudeikin wrote: > >Let's get rid of fpcmake. Pascal is good because you do not need this > >old-crap-make-utility to compile your programs! All you need is a compiler! > > Not of you have hundred of files in a dozens of directories and you want > to compile these source for more than one target. The trouble I've found with fpcmake, is it's not that easy to create the make files with. Quite difficult indeed. Mind you though, I've never used any of the GNU Make utils either, eg: autoconf, etc...

FPC uses makefiles for the _core_ distribution for some reasons:

The primary reason is to build a sequence of packages with complex directories. More over the RTL also has dependancies within directories. (some units must be built first).

FPCMAKE is a way to keep makefile maintenance lower.

Other reasons are:

- to combine compiler processing with non-compiler processing (e.g. generate an includefile from some other file)
- to parameterise the build process (you can build full cross-snapshots with one command currently in 1.1).
- make is a fairly standard tool, and available on most platforms. FPCMAKE is only needed after alterations and while installing. This eases bootstrapping on totally foreign systems.

autoconf and automake are much more complicated, but do a lot more (interrogate the operating system about it's possbilities) So part of the "lower" parts of the RTL are configured by these tools for many platforms.

This is currently not possible for non C/C++ systems, since C headers can't 100% reliable autoconverted to Pascal. Maybe in the future if some OSes start providing the API in a more accessable format, this becomes possible.

Reply by email

Florian Klaempfl
to James Mills: The trouble I've found with fpcmake, is it's not that easy to create the make files with.…
James Mills wrote 13 lines
On Sun, Oct 12, 2003 at 01:55:41PM +0200, Florian Klaempfl wrote: >Yakov Sudeikin wrote: > >>Let's get rid of fpcmake. Pascal is good because you do not need this >>old-crap-make-utility to compile your programs! All you need is a compiler! > >Not of you have hundred of files in a dozens of directories and you want >to compile these source for more than one target. The trouble I've found with fpcmake, is it's not that easy to create the make files with. Quite difficult indeed.

It's only usefull for large projects.

Mind you though, I've never used any of the GNU Make utils either, eg: autoconf, etc...

Reply by email

Lee, John

I agree with the complainant to some extent... the fpcmake files are very complicated, and make itself isn't the easiest utility to use for non (l)unix'ites -that's putting it vvvv mildly!-. However, I suppose whatever we do is going to be complicated, so we have to live with it.

The main problem is when someone mods the make process (as has happened a few times recently eg re cross, re the paths to utilities), and accidentally breaks something - as is currently the case with go32v2 & win32 snapshot making under win9x (still broken!). The big problem is, because it's so complicated, that there are only only a few developers who have access to all the various operating systems/targets can who can fix it.

Regards John

On Sun, Oct 12, 2003 at 01:55:41PM +0200, Florian Klaempfl wrote: > Yakov Sudeikin wrote: > >Let's get rid of fpcmake. Pascal is good because you do not need this > >old-crap-make-utility to compile your programs! All you need is a

compiler!

Show quoted text 8 lines
> > Not of you have hundred of files in a dozens of directories and you want > to compile these source for more than one target. The trouble I've found with fpcmake, is it's not that easy to create the make files with. Quite difficult indeed. Mind you though, I've never used any of the GNU Make utils either, eg: autoconf, etc...

FPC uses makefiles for the _core_ distribution for some reasons:

The primary reason is to build a sequence of packages with complex directories. More over the RTL also has dependancies within directories. (some units must be built first).

FPCMAKE is a way to keep makefile maintenance lower.

Other reasons are:

- to combine compiler processing with non-compiler processing (e.g. generate an includefile from some other file)
- to parameterise the build process (you can build full cross-snapshots with one command currently in 1.1).
- make is a fairly standard tool, and available on most platforms. FPCMAKE is only needed after alterations and while installing. This eases bootstrapping on totally foreign systems.

autoconf and automake are much more complicated, but do a lot more (interrogate the operating system about it's possbilities) So part of the "lower" parts of the RTL are configured by these tools for many platforms.

This is currently not possible for non C/C++ systems, since C headers can't 100% reliable autoconverted to Pascal. Maybe in the future if some OSes start providing the API in a more accessable format, this becomes possible.

Reply by email

Peter Vreman
you wrote 11 lines
I agree with the complainant to some extent... the fpcmake files are very complicated, and make itself isn't the easiest utility to use for non (l)unix'ites -that's putting it vvvv mildly!-. However, I suppose whatever we do is going to be complicated, so we have to live with it. The main problem is when someone mods the make process (as has happened a few times recently eg re cross, re the paths to utilities), and accidentally breaks something - as is currently the case with go32v2 & win32 snapshot making under win9x (still broken!). The big problem is, because it's so complicated, that there are only only a few developers who have access to all the various operating systems/targets can who can fix it.

fpcmake is only a helper application specially made for fpc itself. For normal pascal 'projects' that only exists of a couple of units in the same directory there is no reason to use fpcmake.

if you know a better alternative to build big projects like fpc please share it with us.

Peter

Reply by email

Peter Vreman
to darekM: If we change FPCMAKE to generate code like this: --------------------- #add dir of…
you wrote 18 lines
If we change FPCMAKE to generate code like this: --------------------- #add dir of make.exe to PATH override PATH +=$(dir $(MAKE)) <----------------- override PATH:=$(subst \,/,$(PATH)) #$(error $(PATH)) ifeq ($(findstring ;,$(PATH)),) inUnix=1 SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH))) else SEARCHPATH:=$(subst ;, ,$(PATH)) endif PWD:=$(strip $(wildcard $(addsuffix /pwd.exe,$(SEARCHPATH)))) # if dir has backslash on the end then search fail ifeq ($(PWD),) <------------- PWD:=$(strip $(wildcard $(addsuffix pwd.exe,$(SEARCHPATH)))) <----------- endif <---------------

Added to fpcmake.ini

Peter

Reply by email