[lazarus] More Make problems

Peter Vreman peter at freepascal.org
Wed Feb 21 03:40:39 EST 2001


> Greetings,
> 
> Maybe some of the FPC people reading this can shed some light. I have
> been having problems using Make. For some reason when I am doing a
> 
>   make zipinstall
> 
> it processes the *.ppu files correctly but when it generates the path
> for the *.o files it doubles up on the path so it looks like
> 
>    ./units/./units/*.o
> 
> This of course doesn't work. I thought that was my only problem until
> today. I decided to move Lazarus out of the FPC tree and use FPC in
> installed mode. I set everything up and was going to try the zipinstall
> again. However I checked out the directories after doing a
> 
>    make clean
> 
> and now discovered that the .ppu files are not being cleaned out of the
> lcl/units directory. When I check the clean command it appears that it
> is now trying to clean
> 
>       ./units/.units/*.ppu   (where the * is the individual names)
> 
> The rm for the *.o that follows the .ppu is correct.
> 
> What the heck is going on. It appears to be just my system but I don't
> understand what is set incorrectly.

It's a bug in fpcmake.ini. Here's a good [installrules] section:

[installrules]
#####################################################################
# Install rules
#####################################################################

PHONY: fpc_showinstall fpc_install

ifdef EXTRAINSTALLUNITS
override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
endif

ifdef INSTALLPPUFILES
ifdef PPUFILES
override INSTALLPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(INSTALLPPUFILES))
override INSTALLPPULINKFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(shell $(PPUFILES) -S -O
$(INSTALLPPUFILES)))
else
override INSTALLPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(INSTALLPPUFILES)) $(addprefix
$(LIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES)))
override INSTALLPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(INSTALLPPUFILES))
override INSTALLPPULINKFILES:=$(wildcard $(addprefix
$(UNITTARGETDIRPREFIX),$(INSTALLPPULINKFILES)))
endif
endif

ifdef INSTALLEXEFILES
override INSTALLEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(INSTALLEXEFILES))
endif

fpc_showinstall: $(SHOWINSTALLTARGET)
ifdef INSTALLEXEFILES
        @$(ECHO) -e $(addprefix "\n"$(BININSTALLDIR)/,$(INSTALLEXEFILES))
endif
ifdef INSTALLPPUFILES
        @$(ECHO) -e $(addprefix "\n"$(UNITINSTALLDIR)/,$(INSTALLPPUFILES))
ifneq ($(INSTALLPPULINKFILES),)
        @$(ECHO) -e $(addprefix "\n"$(UNITINSTALLDIR)/,$(INSTALLPPULINKFILES))
endif
ifneq ($(wildcard $(LIBFULLNAME)),)
        @$(ECHO) $(LIBINSTALLDIR)/$(LIBFULLNAME)
ifdef HASSHAREDLIB
        @$(ECHO) $(LIBINSTALLDIR)/$(LIBNAME)
endif
endif
endif
ifdef EXTRAINSTALLFILES
        @$(ECHO) -e $(addprefix "\n"$(DATAINSTALLDIR)/,$(EXTRAINSTALLFILES))
endif

fpc_install: $(INSTALLTARGET)
# Create UnitInstallFiles
ifdef INSTALLEXEFILES
        $(MKDIR) $(BININSTALLDIR)
# Compress the exes if upx is defined
ifdef UPXPROG
        -$(UPXPROG) $(INSTALLEXEFILES)
endif
        $(INSTALLEXE) $(INSTALLEXEFILES) $(BININSTALLDIR)
endif
ifdef INSTALLPPUFILES
        $(MKDIR) $(UNITINSTALLDIR)
        $(INSTALL) $(INSTALLPPUFILES) $(UNITINSTALLDIR)
ifneq ($(INSTALLPPULINKFILES),)
        $(INSTALL) $(INSTALLPPULINKFILES) $(UNITINSTALLDIR)
endif
ifneq ($(wildcard $(LIBFULLNAME)),)
        $(MKDIR) $(LIBINSTALLDIR)
        $(INSTALL) $(LIBFULLNAME) $(LIBINSTALLDIR)
ifdef inUnix
        ln -sf $(LIBFULLNAME) $(LIBINSTALLDIR)/$(LIBNAME)
endif
endif
endif
ifdef EXTRAINSTALLFILES
        $(MKDIR) $(DATAINSTALLDIR)
        $(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR)
endif







More information about the Lazarus mailing list