Browse Source

* a working makefile

pierre 25 years ago
parent
commit
d3efe7df4d
1 changed files with 68 additions and 24 deletions
  1. 68 24
      rtl/win32/Makefile

+ 68 - 24
rtl/win32/Makefile

@@ -1,5 +1,5 @@
 #
-# Makefile generated by fpcmake v0.99.13 [2000/01/17]
+# Makefile generated by fpcmake v0.99.13 [2000/03/22]
 #
 
 defaultrule: all
@@ -84,12 +84,14 @@ ifdef PP
 FPC=$(PP)
 else
 ifdef inOS2
-FPC=ppos2$(EXEEXT)
+FPC=ppos2
 else
-FPC=ppc386$(EXEEXT)
+FPC=ppc386
 endif
 endif
 endif
+override FPC:=$(subst $(EXEEXT),,$(FPC))
+override FPC:=$(subst \,/,$(FPC))$(EXEEXT)
 
 # Target OS
 ifndef OS_TARGET
@@ -147,8 +149,10 @@ WINDOWS_SOURCE_FILES=$(addprefix $(WININC)/,$(addsuffix .inc,$(WINDOWS_FILES)))
 ifdef FPCDIR
 override FPCDIR:=$(subst \,/,$(FPCDIR))
 ifeq ($(wildcard $(FPCDIR)/rtl),)
+ifeq ($(wildcard $(FPCDIR)/units),)
 override FPCDIR=wrong
 endif
+endif
 else
 override FPCDIR=wrong
 endif
@@ -157,16 +161,32 @@ endif
 ifeq ($(FPCDIR),wrong)
 override FPCDIR=.
 ifeq ($(wildcard $(FPCDIR)/rtl),)
+ifeq ($(wildcard $(FPCDIR)/units),)
 override FPCDIR=wrong
 endif
 endif
+endif
 
 # Detect FPCDIR
 ifeq ($(FPCDIR),wrong)
 ifdef inlinux
+override FPCDIR=/usr/local/lib/fpc/$(FPC_VERSION)
+ifeq ($(wildcard $(FPCDIR)/units),)
 override FPCDIR=/usr/lib/fpc/$(FPC_VERSION)
+endif
 else
-override FPCDIR:=$(subst /$(FPC)$(EXEEXT),,$(firstword $(strip $(wildcard $(addsuffix /$(FPC)$(EXEEXT),$(SEARCHPATH))))))
+override FPCDIR:=$(subst /$(FPC),,$(firstword $(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH))))))
+override FPCDIR:=$(FPCDIR)/..
+ifeq ($(wildcard $(FPCDIR)/rtl),)
+ifeq ($(wildcard $(FPCDIR)/units),)
+override FPCDIR:=$(FPCDIR)/..
+ifeq ($(wildcard $(FPCDIR)/rtl),)
+ifeq ($(wildcard $(FPCDIR)/units),)
+override FPCDIR=c:/pp
+endif
+endif
+endif
+endif
 endif
 endif
 
@@ -330,13 +350,6 @@ PPAS=ppas.bat
 endif
 endif
 
-# also call ppas if with command option -s
-ifeq (,$(findstring -s ,$(COMPILER)))
-EXECPPAS=
-else
-EXECPPAS:=@$(PPAS)
-endif
-
 # ldconfig to rebuild .so cache
 ifdef inlinux
 LDCONFIG=ldconfig
@@ -394,7 +407,7 @@ ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(EXEEXT),$(SEARCHPATH))))
 ifeq ($(ZIPPROG),)
 ZIPPROG=
 else
-ZIPPROG:=$(firstword $(ZIPPROG)) -D9 -r
+ZIPPROG:=$(firstword $(ZIPPROG))
 endif
 endif
 export ZIPPROG
@@ -594,7 +607,6 @@ endif
 # Redirection
 #####################################################################
 
-# Release ? Then force OPT and don't use extra opts via commandline
 ifndef REDIRFILE
 REDIRFILE=log
 endif
@@ -636,19 +648,39 @@ override FPCOPT+=-FE$(TARGETDIR)
 endif
 
 # Smartlinking
-ifdef SMARTLINK
+ifdef LINKSMART
 override FPCOPT+=-CX
 endif
 
+# Smartlinking
+ifdef CREATESMART
+override FPCOPT+=-XX
+endif
+
 # Debug
 ifdef DEBUG
 override FPCOPT+=-g -dDEBUG
 endif
 
 # Release mode (strip, optimize and don't load ppc386.cfg)
+# 0.99.12b has a bug in the optimizer so don't use it by default
 ifdef RELEASE
+ifeq ($(FPC_VERSION),0.99.12)
+override FPCOPT+=-Xs -OGp3 -n
+else
 override FPCOPT+=-Xs -OG2p3 -n
 endif
+endif
+
+# Strip
+ifdef STRIP
+override FPCOPT+=-Xs
+endif
+
+# Optimizer
+ifdef OPTIMIZE
+override FPCOPT+=-OG2p3
+endif
 
 # Verbose settings (warning,note,info)
 ifdef VERBOSE
@@ -691,11 +723,19 @@ endif
 ifeq ($(OS_SOURCE),win32)
 override FPCEXTCMD:=$(FPCOPT)
 override FPCOPT:=!FPCEXTCMD
+export FPCEXTCMD
 endif
 
 # Compiler commandline
 override COMPILER:=$(FPC) $(FPCOPT)
 
+# also call ppas if with command option -s
+ifeq (,$(findstring -s ,$(COMPILER)))
+EXECPPAS=
+else
+EXECPPAS:=@$(PPAS)
+endif
+
 #####################################################################
 # Standard rules
 #####################################################################
@@ -720,11 +760,13 @@ zipsourceinstall: fpc_zipsourceinstall
 
 clean: fpc_clean
 
+distclean: fpc_distclean
+
 cleanall: fpc_cleanall
 
 info: fpc_info
 
-.PHONY:  all debug smart shared showinstall install sourceinstall zipinstall zipsourceinstall clean cleanall info
+.PHONY:  all debug smart shared showinstall install sourceinstall zipinstall zipsourceinstall clean distclean cleanall info
 
 #####################################################################
 # Loaders
@@ -790,19 +832,19 @@ fpc_debug:
 
 %$(PPUEXT): %.pp
 	$(COMPILER) $< $(REDIR)
-	$(EXECPASS)
+	$(EXECPPAS)
 
 %$(PPUEXT): %.pas
 	$(COMPILER) $< $(REDIR)
-	$(EXECPASS)
+	$(EXECPPAS)
 
 %$(EXEEXT): %.pp
 	$(COMPILER) $< $(REDIR)
-	$(EXECPASS)
+	$(EXECPPAS)
 
 %$(EXEEXT): %.pas
 	$(COMPILER) $< $(REDIR)
-	$(EXECPASS)
+	$(EXECPPAS)
 
 #####################################################################
 # Library
@@ -816,7 +858,7 @@ SHAREDLIBUNITOBJECTS:=$(UNITOBJECTS)
 endif
 
 fpc_smart:
-	$(MAKE) all SMARTLINK=1
+	$(MAKE) all LINKSMART=1 CREATESMART=1
 
 fpc_shared: all
 ifdef inlinux
@@ -959,7 +1001,7 @@ ifdef USETAR
 	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)$(TAREXT)
 	cd $(PACKDIR) ; $(TARPROG) c$(TAROPT) --file $(DESTZIPDIR)/$(ZIPNAME)$(TAREXT) * ; cd $(BASEDIR)
 else
-	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)/$(ZIPEXT)
+	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)$(ZIPEXT)
 	cd $(PACKDIR) ; $(ZIPPROG) -Dr $(ZIPOPT) $(DESTZIPDIR)/$(ZIPNAME)$(ZIPEXT) * ; cd $(BASEDIR)
 endif
 	$(DELTREE) $(PACKDIR)
@@ -974,7 +1016,7 @@ fpc_zipsourceinstall:
 # Clean rules
 #####################################################################
 
-.PHONY: fpc_clean fpc_cleanall
+.PHONY: fpc_clean fpc_cleanall fpc_distclean
 
 ifdef EXTRACLEANUNITS
 override CLEANPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRACLEANUNITS))
@@ -1004,7 +1046,9 @@ endif
 ifdef EXTRACLEANFILES
 	-$(DEL) $(EXTRACLEANFILES)
 endif
-	-$(DEL) $(FPCMADE) $(PPAS) link.res $(FPCEXTCMD) $(REDIRFILE)
+	-$(DEL) $(FPCMADE) $(PPAS) link.res $(FPCEXTFILE) $(REDIRFILE)
+
+fpc_distclean: fpc_clean
 
 fpc_cleanall: $(CLEANTARGET)
 ifdef CLEANEXEFILES
@@ -1012,7 +1056,7 @@ ifdef CLEANEXEFILES
 endif
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
 	-$(DELTREE) *$(SMARTEXT)
-	-$(DEL) $(FPCMADE) $(PPAS) link.res $(FPCEXTCMD) $(REDIRFILE)
+	-$(DEL) $(FPCMADE) $(PPAS) link.res $(FPCEXTFILE) $(REDIRFILE)
 
 #####################################################################
 # Info rules