| 1 | ###############################################################################
 | 
|---|
| 2 | # wmakefile - makefile for os2ahci driver using WATCOM compiler
 | 
|---|
| 3 | #
 | 
|---|
| 4 | # Copyright (c) 2010 Christian Mueller, Markus Thielen.
 | 
|---|
| 5 | # Parts copied from/inspired by the Linux AHCI driver; 
 | 
|---|
| 6 | # those parts are (c) Linux AHCI/ATA maintainers
 | 
|---|
| 7 | #
 | 
|---|
| 8 | #  This program is free software; you can redistribute it and/or modify
 | 
|---|
| 9 | #  it under the terms of the GNU General Public License as published by
 | 
|---|
| 10 | #  the Free Software Foundation; either version 2 of the License, or
 | 
|---|
| 11 | #  (at your option) any later version.
 | 
|---|
| 12 | #
 | 
|---|
| 13 | #  This program is distributed in the hope that it will be useful,
 | 
|---|
| 14 | #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
|---|
| 15 | #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
|---|
| 16 | #  GNU General Public License for more details.
 | 
|---|
| 17 | #
 | 
|---|
| 18 | #  You should have received a copy of the GNU General Public License
 | 
|---|
| 19 | #  along with this program; if not, write to the Free Software
 | 
|---|
| 20 | #  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 | 
|---|
| 21 | 
 | 
|---|
| 22 | 
 | 
|---|
| 23 | ###############################################################################
 | 
|---|
| 24 | # Environment
 | 
|---|
| 25 | 
 | 
|---|
| 26 | # main path to OS/2 DDK; this needs to be set before this makefile will work
 | 
|---|
| 27 | !ifndef DDK
 | 
|---|
| 28 | DDK          = i:\ddk
 | 
|---|
| 29 | !endif
 | 
|---|
| 30 | 
 | 
|---|
| 31 | # main path to WATCOM installation
 | 
|---|
| 32 | !ifndef WATCOM
 | 
|---|
| 33 | WATCOM       = i:\watcom
 | 
|---|
| 34 | !endif
 | 
|---|
| 35 | 
 | 
|---|
| 36 | CC_INCLUDE   = -I..\include \
 | 
|---|
| 37 |                -I$(DDK)\base\h \
 | 
|---|
| 38 |                -I$(DDK)\base\ibmh \
 | 
|---|
| 39 |                -I$(DDK)\base\src\dev\dasd\diskh \
 | 
|---|
| 40 |                -I$(WATCOM)\h
 | 
|---|
| 41 | 
 | 
|---|
| 42 | AS_INCLUDE   = -I:$(DDK)\base\inc \
 | 
|---|
| 43 |                -I:$(DDK)\base\src\dev\dasd\diskinc
 | 
|---|
| 44 | 
 | 
|---|
| 45 | LIB_DIRS     = $(DDK)\base\lib\ \
 | 
|---|
| 46 |                $(DDK)\base\src\dev\dasd\devhlp\ \
 | 
|---|
| 47 | 
 | 
|---|
| 48 | 
 | 
|---|
| 49 | ###############################################################################
 | 
|---|
| 50 | # Tool Chain
 | 
|---|
| 51 | #
 | 
|---|
| 52 | # This makefile uses the Watcom 16bit compiler. 
 | 
|---|
| 53 | # Linker and assembler are link.exe and alp.exe that ship with the OS/2 DDK
 | 
|---|
| 54 | #
 | 
|---|
| 55 | 
 | 
|---|
| 56 | AS            = $(DDK)\tools\alp.exe
 | 
|---|
| 57 | CC            = wcc
 | 
|---|
| 58 | LD            = $(DDK)\base\tools\link.exe
 | 
|---|
| 59 | 
 | 
|---|
| 60 | AFLAGS        = -Mb
 | 
|---|
| 61 | CFLAGS        = -d3 -hc -bt=os2 -ms -zu -5 -w2 -wcd=138 -zp1 -q -s -zgp -zfp -oi
 | 
|---|
| 62 | CFLAGS_DEBUG  = -d3 -hc
 | 
|---|
| 63 | LFLAGS        = /noe /nod /packd /a:16 /batch /map /line 
 | 
|---|
| 64 | 
 | 
|---|
| 65 | ###############################################################################
 | 
|---|
| 66 | # Main dependencies
 | 
|---|
| 67 | 
 | 
|---|
| 68 | TARGET   = os2ahci.add
 | 
|---|
| 69 | 
 | 
|---|
| 70 | LIBS     = addcalls doscalls rmcalls # dhcalls not needed, see local devhelp.h
 | 
|---|
| 71 | 
 | 
|---|
| 72 | SRCS     = init.asm math.asm libc.c os2ahci.c pci.c ahci.c ata.c atapi.c \
 | 
|---|
| 73 |            ctxhook.c
 | 
|---|
| 74 | 
 | 
|---|
| 75 | OBJS     = init.obj libc.obj os2ahci.obj pci.obj ahci.obj ata.obj atapi.obj \
 | 
|---|
| 76 |            ctxhook.obj
 | 
|---|
| 77 | 
 | 
|---|
| 78 | INCS     = os2ahci.h ahci.h
 | 
|---|
| 79 | 
 | 
|---|
| 80 | 
 | 
|---|
| 81 | all: $(TARGET)
 | 
|---|
| 82 | 
 | 
|---|
| 83 | clean:
 | 
|---|
| 84 |         rm -f $(OBJS) $(TARGET)
 | 
|---|
| 85 | 
 | 
|---|
| 86 | ###############################################################################
 | 
|---|
| 87 | # Object/source dependencies
 | 
|---|
| 88 | 
 | 
|---|
| 89 | init.obj:     init.asm   wmakefile
 | 
|---|
| 90 | 
 | 
|---|
| 91 | libc.obj:     libc.c     wmakefile $(INCS)
 | 
|---|
| 92 | 
 | 
|---|
| 93 | os2ahci.obj:  os2ahci.c  wmakefile $(INCS)
 | 
|---|
| 94 | 
 | 
|---|
| 95 | pci.obj:      pci.c      wmakefile $(INCS)
 | 
|---|
| 96 | 
 | 
|---|
| 97 | ahci.obj:     ahci.c     wmakefile $(INCS) ata.h atapi.h
 | 
|---|
| 98 | 
 | 
|---|
| 99 | ata.obj:      ata.c      wmakefile $(INCS) ata.h
 | 
|---|
| 100 | 
 | 
|---|
| 101 | atapi.obj:    atapi.c    wmakefile $(INCS) ata.h atapi.h
 | 
|---|
| 102 | 
 | 
|---|
| 103 | ctxhook.obj:  ctxhook.c  wmakefile $(INCS) ata.h atapi.h
 | 
|---|
| 104 | 
 | 
|---|
| 105 | ###############################################################################
 | 
|---|
| 106 | # Action definitions (compile/link commands)
 | 
|---|
| 107 | 
 | 
|---|
| 108 | .asm.obj:
 | 
|---|
| 109 |         $(AS) $(AFLAGS) $(AS_INCLUDE) $*.asm
 | 
|---|
| 110 | 
 | 
|---|
| 111 | .c.obj:
 | 
|---|
| 112 |         $(CC) $(CFLAGS) $(CC_INCLUDE) $*.c
 | 
|---|
| 113 |         wdis -l $*.obj
 | 
|---|
| 114 | 
 | 
|---|
| 115 | $(TARGET): $(OBJS) os2ahci.def wmakefile
 | 
|---|
| 116 |         $(LD) $(LFLAGS) $(OBJS),$(TARGET),$*.map,$(LIB_DIRS) $(LIBS),$*.def
 | 
|---|
| 117 |         mapsym os2ahci
 | 
|---|
| 118 | 
 | 
|---|
| 119 | 
 | 
|---|