############################################################################# # # 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"