291 lines
8.8 KiB
Makefile
291 lines
8.8 KiB
Makefile
#############################################################################
|
|
#
|
|
# Copyright (C) 1996 SciTech Software.
|
|
# All rights reserved.
|
|
#
|
|
# Descripton: Generic makefile for the PM library. Builds the library
|
|
# file and all test programs.
|
|
#
|
|
#############################################################################
|
|
|
|
.IMPORT .IGNORE : DEBUG_AGP_DRIVER TEST_HARNESS DEBUG_SDDPMI
|
|
|
|
#----------------------------------------------------------------------------
|
|
# Add DOS extender dependant flags to command line
|
|
#----------------------------------------------------------------------------
|
|
|
|
CFLAGS += $(DX_CFLAGS)
|
|
ASFLAGS += $(DX_ASFLAGS)
|
|
NO_PMLIB := 1
|
|
|
|
#----------------------------------------------------------------------------
|
|
# Include definitions specific for the target system
|
|
#----------------------------------------------------------------------------
|
|
|
|
.IF $(USE_VXD)
|
|
|
|
# Building for Win32 VxD (minimal PM library implementation)
|
|
|
|
LIBNAME = pm
|
|
OBJECTS = pm$O vflat$O ztimer$O cpuinfo$O mtrr$O fileio$O pcilib$O \
|
|
agp$O malloc$O vgastate$O gavxd$O _pm$O _mtrr$O _cpuinfo$O \
|
|
_int64$O _pcihelp$O
|
|
DEPEND_SRC := vxd;common;codepage;tests
|
|
.SOURCE: vxd common codepage tests
|
|
|
|
.ELIF $(USE_NTDRV)
|
|
|
|
# Building for NT device drivers (minimal PM library implementation)
|
|
|
|
LIBNAME = pm
|
|
OBJECTS = pm$O vflat$O ztimer$O cpuinfo$O mtrr$O mem$O irq$O int86$O \
|
|
stdio$O stdlib$O pcilib$O agp$O malloc$O vgastate$O gantdrv$O \
|
|
_pm$O _mtrr$O _cpuinfo$O _int64$O _pcihelp$O _irq$O
|
|
DEPEND_SRC := ntdrv;common;codepage;tests
|
|
.SOURCE: ntdrv common codepage tests
|
|
|
|
.ELIF $(USE_WIN32)
|
|
|
|
# Building for Win32
|
|
|
|
CFLAGS += -DUSE_OS_JOYSTICK
|
|
LIBNAME = pm
|
|
OBJECTS = pm$O vflat$O event$O ddraw$O ztimer$O cpuinfo$O pcilib$O \
|
|
agp$O malloc$O vgastate$O gawin32$O ntservc$O _joy$O _cpuinfo$O \
|
|
_int64$O _pcihelp$O
|
|
DEPEND_SRC := win32;common;codepage;tests
|
|
.SOURCE: win32 common codepage tests
|
|
|
|
.ELIF $(USE_OS232)
|
|
|
|
# Building for OS/2
|
|
|
|
.IF $(USE_OS2GUI)
|
|
LIBNAME = pm_pm
|
|
.ELSE
|
|
LIBNAME = pm
|
|
.ENDIF
|
|
OBJECTS = pm$O vflat$O event$O ztimer$O cpuinfo$O mtrr$O pcilib$O \
|
|
agp$O malloc$O vgastate$O gaos2$O _pmos2$O _joy$O _cpuinfo$O \
|
|
_int64$O _pcihelp$O dossctl$O
|
|
DEPEND_SRC := os2;common;codepage;tests
|
|
.SOURCE: os2 common codepage tests
|
|
|
|
.ELIF $(USE_QNX)
|
|
|
|
# Building for QNX
|
|
|
|
USE_BIOS := 1
|
|
.IF $(USE_PHOTON)
|
|
LIBNAME = pm_ph
|
|
.ELIF $(USE_X11)
|
|
LIBNAME = pm_x11
|
|
.ELSE
|
|
LIBNAME = pm
|
|
.ENDIF
|
|
OBJECTS = pm$O vflat$O event$O ztimer$O cpuinfo$O mtrr$O pcilib$O \
|
|
agp$O malloc$O mtrrqnx$O unixio$O vgastate$O gaqnx$O _joy$O \
|
|
_mtrrqnx$O _cpuinfo$O _int64$O _pcihelp$O
|
|
DEPEND_SRC := qnx;common;codepage;tests
|
|
.SOURCE: qnx common codepage tests
|
|
|
|
# Indicate that this program uses Nucleus device drivers (so needs I/O access)
|
|
USE_NUCLEUS := 1
|
|
|
|
.ELIF $(USE_LINUX)
|
|
|
|
# Building for Linux
|
|
|
|
CFLAGS += -DENABLE_MTRR -DUSE_OS_JOYSTICK
|
|
.IF $(USE_X11)
|
|
LIBNAME = pm_x11
|
|
.ELSE
|
|
LIBNAME = pm
|
|
.ENDIF
|
|
OBJECTS = pm$O vflat$O event$O ztimer$O cpuinfo$O pcilib$O \
|
|
agp$O malloc$O unixio$O vgastate$O galinux$O _cpuinfo$O \
|
|
_int64$O _pcihelp$O
|
|
DEPEND_SRC := linux;common;codepage;tests;x11
|
|
.SOURCE: linux common codepage tests x11
|
|
|
|
# Building a shared library
|
|
.IF $(SOFILE)
|
|
LIB := ld
|
|
LIBFLAGS := -r -o
|
|
CFLAGS += -fPIC
|
|
.ENDIF
|
|
|
|
.ELIF $(USE_BEOS)
|
|
|
|
# Building for BeOS GUI
|
|
|
|
LIBNAME = pm
|
|
OBJECTS = pm$O vflat$O event$O ztimer$O cpuinfo$O pcilib$O \
|
|
agp$O malloc$O vgastate$O gabeos$O _joy$O _cpuinfo$O \
|
|
_int64$O _pcihelp$O
|
|
DEPEND_SRC := beos;common;codepage;tests
|
|
.SOURCE: beos common codepage tests
|
|
|
|
.ELIF $(USE_SMX32)
|
|
|
|
# Building for SMX
|
|
|
|
LIBNAME = pm
|
|
OBJECTS = pm$O pmsmx$O vflat$O event$O ztimer$O cpuinfo$O mtrr$O pcilib$O \
|
|
agp$O malloc$O vgastate$O gasmx$O _pm$O _pmsmx$O _mtrr$O _event$O \
|
|
_joy$O _cpuinfo$O _int64$O _pcihelp$O _lztimer$O
|
|
DEPEND_SRC := smx;common;codepage;tests
|
|
.SOURCE: smx common codepage tests
|
|
|
|
.ELIF $(USE_RTTARGET)
|
|
|
|
# Building for RTTarget-32
|
|
|
|
LIBNAME = pm
|
|
OBJECTS = pm$O vflat$O event$O ztimer$O cpuinfo$O mtrr$O pcilib$O \
|
|
agp$O malloc$O vgastate$O gartt$O _mtrr$O _joy$O _cpuinfo$O \
|
|
_int64$O _pcihelp$O
|
|
DEPEND_SRC := rttarget;common;codepage;tests
|
|
.SOURCE: rttarget common codepage tests
|
|
|
|
.ELSE
|
|
|
|
# Building for MSDOS
|
|
|
|
LIBNAME = pm
|
|
OBJECTS = pm$O pmdos$O vflat$O event$O ztimer$O cpuinfo$O mtrr$O \
|
|
agp$O malloc$O pcilib$O vgastate$O gados$O \
|
|
_pm$O _pmdos$O _mtrr$O _vflat$O _event$O _joy$O _pcihelp$O \
|
|
_cpuinfo$O _int64$O _lztimer$O _dma$O
|
|
DEPEND_SRC := dos;common;codepage;tests
|
|
.SOURCE: dos common codepage tests
|
|
|
|
.ENDIF
|
|
|
|
# Object modules for keyboard code pages
|
|
|
|
OBJECTS += us_eng$O
|
|
|
|
# Common object modules
|
|
|
|
OBJECTS += common$O
|
|
.IF $(CHECKED)
|
|
OBJECTS += debug$O
|
|
.ENDIF
|
|
|
|
# Nucleus loader library object modules. Note that when compiling a test harness
|
|
# library we need to exclude the Nucleus loader library.
|
|
|
|
.IF $(TEST_HARNESS)
|
|
CFLAGS += -DTEST_HARNESS -DPMLIB
|
|
LIBNAME = pm_test
|
|
.ELSE
|
|
OBJECTS += galib$O _ga_imp$O
|
|
.ENDIF
|
|
|
|
.IF $(DEBUG_SDDPMI)
|
|
CFLAGS += -DDEBUG_SDDPMI
|
|
.ENDIF
|
|
|
|
# AGP library object modules
|
|
|
|
.IF $(DEBUG_AGP_DRIVER)
|
|
CFLAGS += -DDEBUG_AGP_DRIVER
|
|
OBJECTS += agplib$O
|
|
.ELSE
|
|
OBJECTS += agplib$O peloader$O libcimp$O _gatimer$O
|
|
.ENDIF
|
|
|
|
#----------------------------------------------------------------------------
|
|
# Name of library and generic object files required to build it
|
|
#----------------------------------------------------------------------------
|
|
|
|
.IF $(STKCALL)
|
|
LIBFILE = s$(LP)$(LIBNAME)$L
|
|
.ELSE
|
|
LIBFILE = $(LP)$(LIBNAME)$L
|
|
.ENDIF
|
|
LIBCLEAN = *.lib *.a
|
|
|
|
#----------------------------------------------------------------------------
|
|
# Change destination for library file depending the extender being used. This
|
|
# is only necessary for DOS extender since the file go into a subdirectory
|
|
# in the normal library directory, one for each supported extender. Other
|
|
# OS'es put the file into the regular library directory, since there is
|
|
# only one per OS in this case.
|
|
#----------------------------------------------------------------------------
|
|
|
|
MK_PMODE = 1
|
|
|
|
.IF $(TEST_HARNESS)
|
|
LIB_DEST := $(LIB_BASE)
|
|
.ELIF $(USE_TNT)
|
|
LIB_DEST := $(LIB_BASE)\tnt
|
|
.ELIF $(USE_DOS4GW)
|
|
LIB_DEST := $(LIB_BASE)\dos4gw
|
|
.ELIF $(USE_X32)
|
|
LIB_DEST := $(LIB_BASE)\x32
|
|
.ELIF $(USE_DPMI16)
|
|
LIB_DEST := $(LIB_BASE)\dpmi16
|
|
.ELIF $(USE_DPMI32)
|
|
LIB_DEST := $(LIB_BASE)\dpmi32
|
|
.ELIF $(USE_DOSX)
|
|
LIB_DEST := $(LIB_BASE)\dosx
|
|
.END
|
|
|
|
#----------------------------------------------------------------------------
|
|
# Names of all executable files built
|
|
#----------------------------------------------------------------------------
|
|
|
|
.IF $(USE_REALDOS)
|
|
EXEFILES = memtest$E biosptr$E video$E isvesa$E callreal$E \
|
|
mouse$E tick$E key$E key15$E brk$E altbrk$E \
|
|
critical$E altcrit$E vftest$E rtc$E getch$E \
|
|
cpu$E timerc$E timercpp$E showpci$E uswc$E block$E
|
|
.ELSE
|
|
EXEFILES = memtest$E video$E isvesa$E callreal$E vftest$E getch$E \
|
|
cpu$E timerc$E timercpp$E showpci$E uswc$E block$E \
|
|
save$E restore$E
|
|
.ENDIF
|
|
|
|
all: $(EXEFILES)
|
|
|
|
$(EXEFILES): $(LIBFILE)
|
|
|
|
memtest$E: memtest$O
|
|
biosptr$E: biosptr$O
|
|
video$E: video$O
|
|
isvesa$E: isvesa$O
|
|
mouse$E: mouse$O
|
|
tick$E: tick$O
|
|
key$E: key$O
|
|
key15$E: key15$O
|
|
brk$E: brk$O
|
|
altbrk$E: altbrk$O
|
|
critical$E: critical$O
|
|
altcrit$E: altcrit$O
|
|
callreal$E: callreal$O
|
|
vftest$E: vftest$O
|
|
rtc$E: rtc$O
|
|
getch$E: getch$O
|
|
cpu$E: cpu$O
|
|
timerc$E: timerc$O
|
|
timercpp$E: timercpp$O
|
|
showpci$E: showpci$O
|
|
uswc$E: uswc$O
|
|
block$E: block$O
|
|
save$E: save$O
|
|
restore$E: restore$O
|
|
test$E: test$O _test$O
|
|
|
|
#----------------------------------------------------------------------------
|
|
# Define the list of object files to create dependency information for
|
|
#----------------------------------------------------------------------------
|
|
|
|
DEPEND_OBJ := $(OBJECTS) memtest$O biosptr$O video$O isvesa$O mouse$O \
|
|
tick$O key$O key$O brk$O altbrk$O critical$O altcrit$O \
|
|
callreal$O vftest$O getch$O timercpp$O
|
|
|
|
.INCLUDE: "$(SCITECH)/makedefs/common.mk"
|
|
|