[make_system] DOS2UNIX the main Makefile
[people/sha0/winvblock.git] / Makefile
1 INCLUDES := $(shell echo | cpp -v 2>&1 | sed -n '/\#include "..." search starts here:/,/End of search list./p' | grep "^ " | sed "s/^ \(.*\)$$/-I\1\/ddk/" | tr "\n" " " | sed "s/ $$//" | sed ":start;s/\/[^\/]*\/\.\.\//\//;t start")
2
3 # Next line is duplicated in config.bat, edit both when adding files.
4 c := driver.c registry.c bus.c disk.c aoe.c protocol.c debug.c
5 h := driver.h aoe.h protocol.h mount.h portable.h
6
7 # This is also duplicated in config.bat.
8 # The c style aoe.0 is not yet stable enough to use.
9 PXESTYLE := asm
10 #PXESTYLE := c
11
12 all: bin/aoe.0 bin/loader32.exe bin/aoe32.sys bin/aoe.exe bin/aoe.inf bin/txtsetup.oem
13
14 clean:
15         @rm -rf src/obj src/pxe.asm/obj src/pxe.c/obj bin
16
17 dist:
18         @sh -c "unset \`set | cut -f 1 -d \"=\" | egrep -v \"PATH|COMSPEC\"\` 2> /dev/null ; cmd /c makedist.bat"
19
20 free: bin/aoe.inf bin/txtsetup.oem $(addprefix src/,$c $h) Makefile
21         @sh -c "unset \`set | cut -f 1 -d \"=\" | egrep -v \"PATH|COMSPEC\"\` 2> /dev/null ; cmd /c makefree.bat"
22         @touch -r Makefile $(wildcard bin/*.sys)
23         
24 checked: bin/aoe.inf bin/txtsetup.oem $(addprefix src/,$c $h) Makefile
25         @sh -c "unset \`set | cut -f 1 -d \"=\" | egrep -v \"PATH|COMSPEC\"\` 2> /dev/null ; cmd /c makechecked.bat"
26         @touch -r Makefile $(wildcard bin/*.sys)
27
28 bin/aoe.0: src/pxe.$(PXESTYLE)/aoe.0 Makefile
29         @mkdir -p bin
30         cp src/pxe.$(PXESTYLE)/aoe.0 bin
31
32 src/pxe.$(PXESTYLE)/aoe.0: $(wildcard src/pxe.$(PXESTYLE)/*.c) $(wildcard src/pxe.$(PXESTYLE)/*.h) $(wildcard src/pxe.$(PXESTYLE)/*.S) src/pxe.$(PXESTYLE)/aoe.ld src/pxe.$(PXESTYLE)/Makefile Makefile
33         rm -rf src/pxe.$(PXESTYLE)/aoe.0
34         make -C src/pxe.$(PXESTYLE)
35
36 bin/aoe.inf bin/txtsetup.oem: makeinf.bat Makefile
37         @sh -c "unset \`set | cut -f 1 -d \"=\" | egrep -v \"PATH|COMSPEC\"\` 2> /dev/null ; cmd /c makeinf.bat ; exit 0" >/dev/null 2>&1
38         touch bin/aoe.inf
39         touch bin/txtsetup.oem
40
41 src/obj/loader32.o: src/loader.c src/portable.h Makefile
42         @mkdir -p src/obj
43         @rm -rf src/obj/loader32.o bin/loader32.exe bin/loader64.exe
44         gcc $(INCLUDES) -c -Wall src/loader.c -o src/obj/loader32.o
45
46 bin/loader32.exe: src/obj/loader32.o Makefile
47         @mkdir -p bin
48         @rm -rf bin/loader32.exe bin/loader64.exe
49         gcc $(INCLUDES) -Wall src/obj/loader32.o -o bin/loader32.exe -lsetupapi
50         strip bin/loader32.exe
51
52 src/obj/mount.o: src/mount.c src/portable.h src/mount.h Makefile
53         @mkdir -p src/obj
54         @rm -rf src/obj/mount.o bin/aoe.exe
55         gcc -Wall -c src/mount.c -o src/obj/mount.o
56
57 bin/aoe.exe: src/obj/mount.o Makefile
58         @mkdir -p bin
59         @rm -rf bin/aoe.exe
60         gcc -Wall src/obj/mount.o -o bin/aoe.exe
61         strip bin/aoe.exe
62
63 src/obj/driver.o: src/driver.c src/portable.h src/driver.h Makefile
64         @mkdir -p src/obj
65         @rm -rf src/obj/driver.o src/obj/aoe.tmp src/obj/aoe.exp bin/aoe32.sys bin/aoe64.sys bin/aoe32.pdb bin/aoe64.pdb bin/loader64.exe
66         gcc $(INCLUDES) -c -Wall src/driver.c -o src/obj/driver.o
67
68 src/obj/registry.o: src/registry.c src/portable.h Makefile
69         @mkdir -p src/obj
70         @rm -rf src/obj/registry.o src/obj/aoe.tmp src/obj/aoe.exp bin/aoe32.sys bin/aoe64.sys bin/aoe32.pdb bin/aoe64.pdb bin/loader64.exe
71         gcc $(INCLUDES) -c -Wall src/registry.c -o src/obj/registry.o
72
73 src/obj/bus.o: src/bus.c src/portable.h src/driver.h src/aoe.h src/mount.h Makefile
74         @mkdir -p src/obj
75         @rm -rf src/obj/bus.o src/obj/aoe.tmp src/obj/aoe.exp bin/aoe32.sys bin/aoe64.sys bin/aoe32.pdb bin/aoe64.pdb bin/loader64.exe
76         gcc $(INCLUDES) -c -Wall src/bus.c -o src/obj/bus.o
77
78 src/obj/disk.o: src/disk.c src/portable.h src/driver.h src/aoe.h Makefile
79         @mkdir -p src/obj
80         @rm -rf src/obj/disk.o src/obj/aoe.tmp src/obj/aoe.exp bin/aoe32.sys bin/aoe64.sys bin/aoe32.pdb bin/aoe64.pdb bin/loader64.exe
81         gcc $(INCLUDES) -c -Wall src/disk.c -o src/obj/disk.o
82
83 src/obj/aoe.o: src/aoe.c src/portable.h src/driver.h src/aoe.h src/protocol.h Makefile
84         @mkdir -p src/obj
85         @rm -rf src/obj/aoe.o src/obj/aoe.tmp src/obj/aoe.exp bin/aoe32.sys bin/aoe64.sys bin/aoe32.pdb bin/aoe64.pdb bin/loader64.exe
86         gcc $(INCLUDES) -c -Wall src/aoe.c -o src/obj/aoe.o
87
88 src/obj/protocol.o: src/protocol.c src/portable.h src/driver.h src/aoe.h src/protocol.h Makefile
89         @mkdir -p src/obj
90         @rm -rf src/obj/protocol.o src/obj/aoe.tmp src/obj/aoe.exp bin/aoe32.sys bin/aoe64.sys bin/aoe32.pdb bin/aoe64.pdb bin/loader64.exe
91         gcc $(INCLUDES) -c -Wall src/protocol.c -o src/obj/protocol.o
92
93 src/obj/debug.o: src/debug.c src/portable.h src/driver.h src/mount.h Makefile
94         @mkdir -p src/obj
95         @rm -rf src/obj/debug.o src/obj/aoe.tmp src/obj/aoe.exp bin/aoe32.sys bin/aoe64.sys bin/aoe32.pdb bin/aoe64.pdb bin/loader64.exe
96         gcc $(INCLUDES) -c -Wall src/debug.c -o src/obj/debug.o
97
98 src/obj/aoe.tmp: src/obj/driver.o src/obj/registry.o src/obj/bus.o src/obj/disk.o src/obj/aoe.o src/obj/protocol.o src/obj/debug.o Makefile
99         @mkdir -p src/obj
100         @rm -rf src/obj/aoe.tmp src/obj/aoe.exp bin/aoe32.sys bin/aoe64.sys bin/aoe32.pdb bin/aoe64.pdb bin/loader64.exe
101         @gcc -Wall src/obj/driver.o src/obj/registry.o src/obj/bus.o src/obj/disk.o src/obj/aoe.o src/obj/protocol.o src/obj/debug.o -Wl,--base-file,src/obj/aoe.tmp -Wl,--entry,_DriverEntry@8 -nostartfiles -nostdlib -lntoskrnl -lhal -lndis -o null
102         @rm -rf null.exe
103
104 src/obj/aoe.exp: src/obj/aoe.tmp Makefile
105         @mkdir -p src/obj
106         @rm -rf src/obj/aoe.exp bin/aoe32.sys bin/aoe64.sys bin/aoe32.pdb bin/aoe64.pdb bin/loader64.exe
107         @dlltool --dllname aoe32.sys --base-file src/obj/aoe.tmp --output-exp src/obj/aoe.exp
108
109 bin/aoe32.sys: src/obj/driver.o src/obj/registry.o src/obj/bus.o src/obj/disk.o src/obj/aoe.o src/obj/protocol.o src/obj/debug.o src/obj/aoe.exp Makefile
110         @mkdir -p bin
111         @rm -rf bin/aoe32.sys bin/aoe64.sys bin/aoe32.pdb bin/aoe64.pdb bin/loader64.exe
112         @gcc -Wall src/obj/driver.o src/obj/registry.o src/obj/bus.o src/obj/disk.o src/obj/aoe.o src/obj/protocol.o src/obj/debug.o -Wl,--subsystem,native -Wl,--entry,_DriverEntry@8 -Wl,src/obj/aoe.exp -mdll -nostartfiles -nostdlib -lntoskrnl -lhal -lndis -o bin/aoe32.sys
113 #       strip bin/aoe32.sys