This commit is contained in:
Ryan C. Gordon 2000-11-18 07:10:27 +00:00
parent 0112902e54
commit deb98b6e64
2 changed files with 78 additions and 20 deletions

View File

@ -1,21 +1,24 @@
2000-11-18 Ryan C. Gordon <icculus@lokigames.com>
* Stubbed DOSism in file2.pas.
* Hacked the FreePascal runtime library to convert DOS paths to Unix on
the fly. Have not checked it, yet.
* upgraded to FreePascal 1.1 CVS. Stuff won't build anymore. Complex AND
and OR statements cause misgenerated ASM code. Attempting to backport
the RTL changes to 1.0.2 ...
* Updated Makefile to be more sane. Compiles just programs (not units),
doesn't smartlink on debug builds, etc...
2000-11-17 Ryan C. Gordon <icculus@lokigames.com> 2000-11-17 Ryan C. Gordon <icculus@lokigames.com>
* Initial work. * Initial work.
* Wrote Makefile. * Wrote Makefile.
* filenames -> lowercase, dos2unix'd them. * filenames -> lowercase, dos2unix'd them.
* Stubbed offending DOSisms, like direct video writes and serial port i/o. * Stubbed offending DOSisms, like direct video writes and serial port i/o.
* Commented out "uses overlay" commands. * Commented out "uses overlay" commands.
* Renamed newcommm.pas to newcom.pas ... * Renamed newcommm.pas to newcom.pas ...
* Fixed some other syntax stuff that doesn't fly under Free Pascal. * Fixed some other syntax stuff that doesn't fly under Free Pascal.
* Thing builds, has startup issues, since init.pas tries to use DOS paths.
// end of CHANGELOG ... // end of CHANGELOG ...

View File

@ -24,8 +24,21 @@ PPC386=ppc386
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
# don't touch anything below this line. # don't touch anything below this line.
# This is the name of the produced binary. "bbs" should suffice. # This are the names of the produced binaries.
MAINEXE=bbs MAINEXE=bbs
MINITERMEXE=miniterm
INITEXE=init
TPAGEEXE=tpage
IFLEXE=ifl
FINDITEXE=findit
T2TEXE=t2t
OBLITEXE=oblit
MTESTEXE=mtest
BBEXE=bb
CBBSEXE=cbbs
MABSEXE=mabs
COCONFIGEXE=coconfig
SPDATEEXE=spdate
ifeq ($(strip $(verbose)),true) ifeq ($(strip $(verbose)),true)
PPC386FLAGS += -vwnh PPC386FLAGS += -vwnh
@ -44,6 +57,8 @@ else
PPC386FLAGS += -Xs # strip the binary. PPC386FLAGS += -Xs # strip the binary.
PPC386FLAGS += -O2 # Level 2 optimizations. PPC386FLAGS += -O2 # Level 2 optimizations.
PPC386FLAGS += -OG # Optimize for speed, not size. PPC386FLAGS += -OG # Optimize for speed, not size.
PPC386FLAGS += -XD # Dynamic linkage.
PPC386FLAGS += -CX # Smartlink the binary, removing unused code.
ifeq ($(strip $(cpu)),386) ifeq ($(strip $(cpu)),386)
PPC386FLAGS += -OP1 PPC386FLAGS += -OP1
@ -58,26 +73,26 @@ else
endif endif
endif endif
# Borland TP7.0 compatibility flag.
PPC386FLAGS += -B
# Borland TP7.0 compatibility flag. # Borland TP7.0 compatibility flag.
PPC386FLAGS += -So PPC386FLAGS += -So
# Allow LABEL and GOTO. STRIVE TO REMOVE THIS COMMAND LINE PARAMETER!
PPC386FLAGS += -Sg
# Support C-style macros. # Support C-style macros.
#PPC386FLAGS += -Sm #PPC386FLAGS += -Sm
# Assembly statements are Intel-like (instead of AT&T-like). # Assembly statements are Intel-like (instead of AT&T-like).
PPC386FLAGS += -Rintel PPC386FLAGS += -Rintel
# Dynamic linkage.
PPC386FLAGS += -XD
# Output target Linux. !!! FIXME: Want win32 compiles? # Output target Linux. !!! FIXME: Want win32 compiles?
PPC386FLAGS += -TLINUX PPC386FLAGS += -TLINUX
# Smartlink the binary, removing unused code.
PPC386FLAGS += -CX
# Pipe output to assembler, rather than to temp file. This is a little faster. # Pipe output to assembler, rather than to temp file. This is a little faster.
PPC386FLAGS += -P #PPC386FLAGS += -P
# Write bins to this directory... # Write bins to this directory...
PPC386FLAGS += -FE$(BUILDDIR) PPC386FLAGS += -FE$(BUILDDIR)
@ -85,19 +100,59 @@ PPC386FLAGS += -FE$(BUILDDIR)
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
# Build rules...don't touch this, either. # Build rules...don't touch this, either.
include sources #include sources
#OBJSx := $(SRCS:.pas=.o)
OBJSx := $(SRCS:.pas=.o) #OBJS := $(foreach feh,$(OBJSx),$(BUILDDIR)/$(feh))
OBJS := $(foreach feh,$(OBJSx),$(BUILDDIR)/$(feh))
$(BUILDDIR)/%.o : %.pas $(BUILDDIR)/%.o : %.pas
$(PPC386) $(PPC386FLAGS) $< $(PPC386) $(PPC386FLAGS) $<
all: $(MAINEXE) all: $(BUILDDIR) $(MAINEXE) $(MINITERMEXE) $(INITEXE) $(TPAGEEXE) $(IFLEXE) \
$(FINDITEXE) $(T2TEXE) $(OBLITEXE) $(MTESTEXE) $(BBEXE) $(CBBSEXE) \
$(MABSEXE) $(COCONFIGEXE) $(SPDATEEXE)
$(MAINEXE) : $(BUILDDIR) $(OBJS) bbs.pas $(MAINEXE) : $(BUILDDIR) $(OBJS) bbs.pas
$(PPC386) $(PPC386FLAGS) bbs.pas $(PPC386) $(PPC386FLAGS) bbs.pas
$(MINITERMEXE) : $(BUILDDIR) $(OBJS) miniterm.pas
$(PPC386) $(PPC386FLAGS) miniterm.pas
$(INITEXE) : $(BUILDDIR) $(OBJS) init.pas
$(PPC386) $(PPC386FLAGS) init.pas
$(TPAGEEXE) : $(BUILDDIR) $(OBJS) tpage.pas
$(PPC386) $(PPC386FLAGS) tpage.pas
$(IFLEXE) : $(BUILDDIR) $(OBJS) ifl.pas
$(PPC386) $(PPC386FLAGS) ifl.pas
$(FINDITEXE) : $(BUILDDIR) $(OBJS) findit.pas
$(PPC386) $(PPC386FLAGS) findit.pas
$(T2TEXE) : $(BUILDDIR) $(OBJS) t2t.pas
$(PPC386) $(PPC386FLAGS) t2t.pas
$(OBLITEXE) : $(BUILDDIR) $(OBJS) t2t.pas
$(PPC386) $(PPC386FLAGS) t2t.pas
$(MTESTEXE) : $(BUILDDIR) $(OBJS) mtest.pas
$(PPC386) $(PPC386FLAGS) mtest.pas
$(BBEXE) : $(BUILDDIR) $(OBJS) bb.pas
$(PPC386) $(PPC386FLAGS) bb.pas
$(CBBSEXE) : $(BUILDDIR) $(OBJS) cbbs.pas
$(PPC386) $(PPC386FLAGS) cbbs.pas
$(MABSEXE) : $(BUILDDIR) $(OBJS) mabs.pas
$(PPC386) $(PPC386FLAGS) mabs.pas
$(COCONFIGEXE) : $(BUILDDIR) $(OBJS) coconfig.pas
$(PPC386) $(PPC386FLAGS) coconfig.pas
$(SPDATEEXE) : $(BUILDDIR) $(OBJS) spdate.pas
$(PPC386) $(PPC386FLAGS) spdate.pas
$(BUILDDIR): $(cpu) $(BUILDDIR): $(cpu)
mkdir $(BUILDDIR) mkdir $(BUILDDIR)