[fpc-pascal] FPC x86+x64 win trunk failing to build (using fpcup): 2 different errors
Jonas Maebe
jonas.maebe at elis.ugent.be
Thu Sep 20 17:25:15 CEST 2012
On 20 Sep 2012, at 17:18, Reinier Olislagers wrote:
> Would looking into the actual fpmake bug make sense (i.e. is it doable
> for mere mortals like me?) Where would I look?
It's probably related to how the makefiles clean the packages since fpmake was introduced. Pierre posted a not really clean workaround recently to the core list, see below (I don't think the patch will apply as is though, because the formatting was changed by the mail client).
Jonas
***
E:\pas\trunk\fpcsrc\packages>svn diff Makefile.fpc
Index: Makefile.fpc
===================================================================
--- Makefile.fpc (revision 22381)
+++ Makefile.fpc (working copy)
@@ -13,11 +13,11 @@
fpcdir=..
[prerules]
-# Translate INSTALL_UNITDIR to fpmake's --unitinstalldir parameter
+# Translate INSTALL_UNITDIR to fpmake's --unitinstalldir parameter
ifdef INSTALL_UNITDIR
FPMAKE_INSTALL_OPT+=--unitinstalldir=$(INSTALL_UNITDIR)
endif
-# Translate OS_TARGET and CPU_TARGET to fpmake's --os and --cpu parameters
+# Translate OS_TARGET and CPU_TARGET to fpmake's --os and --cpu parameters
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
endif
@@ -63,7 +63,7 @@
fpmake: fpmake.pp fpmkunit_bootstrap
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix
-Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT)
all: fpmake
- $(LOCALFPMAKE) compile $(FPMAKE_OPT)
+ $(LOCALFPMAKE) compile $(FPMAKE_OPT)
smart: fpmake
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
release: fpmake
@@ -79,17 +79,29 @@
clean:
$(FPMAKE_BIN_CLEAN) clean $(FPMAKE_OPT)
endif
+
+
+ifeq ($(TARGET_DIRS),)
+TARGET_DIRS=$(subst /Makefile, ,$(wildcard */Makefile))
+endif
+
+%_distclean:
+ $(ECHO) calling distclean in $*
+ $(MAKE) -C $* distclean
+
# In case of a distclean, perform an 'old'-style distclean. This to avoid
problems
# when the package is compiled using fpcmake prior to running this clean
using fpmake
# It does not work well, though, since the sub-directories are not cleaned
at all.
ifeq ($(FPMAKE_BIN_CLEAN),)
-distclean: $(addsuffix _distclean,$(TARGET_DIRS)) fpc_cleanall
+distclean: fpc_cleanall $(addsuffix _distclean,$(TARGET_DIRS))
+ @$(ECHO) Subdirs are $(TARGET_DIRS)
+
else
distclean:
ifdef inUnix
- { $(FPMAKE_BIN_CLEAN) distclean $(FPMAKE_OPT); if [ $$? != "0" ];
then { echo Something wrong with fpmake exect
able. Remove the executable and call make recursively to recover.; $(DEL)
$(FPMAKE_BIN_CLEAN); $(MAKE) fpc_cleanall; };
fi; }
+ { $(FPMAKE_BIN_CLEAN) distclean $(FPMAKE_OPT); if [ $$? != "0" ];
then { echo Something wrong with fpmake execta
ble. Remove the executable and call make recursively to recover.; $(DEL)
$(FPMAKE_BIN_CLEAN); $(MAKE) fpc_cleanall; }; f
i; }
else
- $(FPMAKE_BIN_CLEAN) distclean $(FPMAKE_OPT)
+ $(FPMAKE_BIN_CLEAN) distclean $(FPMAKE_OPT)
endif
-$(DEL) $(LOCALFPMAKE)
endif
More information about the fpc-pascal
mailing list