Separated out UNDI ROM location code into undirom.c, and use struct
[people/xl0/gpxe.git] / src / arch / i386 / Makefile
1 # i386-specific directories containing source files
2 #
3 SRCDIRS         += arch/i386/core arch/i386/transitions arch/i386/prefix
4 SRCDIRS         += arch/i386/firmware/pcbios
5 SRCDIRS         += arch/i386/image
6 SRCDIRS         += arch/i386/drivers/bus
7 SRCDIRS         += arch/i386/drivers/net
8 SRCDIRS         += arch/i386/drivers/disk
9 SRCDIRS         += arch/i386/interface/pcbios
10 SRCDIRS         += arch/i386/interface/pxe
11
12 # The various xxx_loader.c files are #included into core/loader.c and
13 # should not be compiled directly.
14 #
15 NON_AUTO_SRCS   += arch/i386/core/aout_loader.c
16 NON_AUTO_SRCS   += arch/i386/core/freebsd_loader.c
17 NON_AUTO_SRCS   += arch/i386/core/multiboot_loader.c
18 NON_AUTO_SRCS   += arch/i386/core/tagged_loader.c
19 NON_AUTO_SRCS   += arch/i386/core/wince_loader.c
20
21 # setup.S and unnrv2b.S are both used to generate 16-bit as well as
22 # 32-bit objects.
23 #
24 OBJS_setup              = setup setup16
25 CFLAGS_setup16          = -DCODE16
26 OBJS_unnrv2b            = unnrv2b unnrv2b16
27 CFLAGS_unnrv2b16        = -DCODE16
28
29 # We need to undefine the default macro "i386" when compiling .S
30 # files, otherwise ".arch i386" translates to ".arch 1"...
31 #
32 CFLAGS_S                += -Ui386
33
34 # The i386 linker script
35 #
36 LDSCRIPT                = arch/i386/scripts/i386.lds
37
38 # Media types.
39
40 # It's ugly that we have to define these repetitive combinations by
41 # hand.  Unforunately, $(eval ...) is available only in make >= 3.80,
42 # and using an external Makefile fragment doesn't work because
43 # OBJS_xxx need to be defined *before* the external Makefile fragments
44 # for the source files are generated...
45
46 CFLAGS_ZPREFIX          = -DCOMPRESS
47
48 MEDIA                   += rom
49 OBJS_romprefix          = romprefix zromprefix
50 CFLAGS_zromprefix       = $(CFLAGS_ZPREFIX)
51
52 MEDIA                   += pxe
53 OBJS_pxeprefix          = pxeprefix zpxeprefix
54 CFLAGS_zpxeprefix       = $(CFLAGS_ZPREFIX)
55
56 MEDIA                   += elf
57 OBJS_elfprefix          = elfprefix zelfprefix
58 CFLAGS_zelfprefix       = $(CFLAGS_ZPREFIX)
59
60 MEDIA                   += elfd
61 OBJS_elfdprefix         = elfdprefix zelfdprefix
62 CFLAGS_zelfdprefix      = $(CFLAGS_ZPREFIX)
63
64 MEDIA                   += lmelf
65 OBJS_lmelfprefix        = lmelfprefix zlmelfprefix
66 CFLAGS_zlmelfprefix     = $(CFLAGS_ZPREFIX)
67
68 MEDIA                   += lmelfd
69 OBJS_lmelfdprefix       = lmelfdprefix zlmelfdprefix
70 CFLAGS_zlmelfdprefix    = $(CFLAGS_ZPREFIX)
71
72 MEDIA                   += lilo
73 OBJS_liloprefix         = liloprefix zliloprefix
74 CFLAGS_zliloprefix      = $(CFLAGS_ZPREFIX)
75
76 MEDIA                   += bImage
77 OBJS_bImageprefix       = bImageprefix zbImageprefix
78 CFLAGS_zbImageprefix    = $(CFLAGS_ZPREFIX)
79
80 MEDIA                   += dsk
81 OBJS_dskprefix          = dskprefix zdskprefix
82 CFLAGS_zdskprefix       = $(CFLAGS_ZPREFIX)
83
84 MEDIA                   += hd
85 OBJS_hdprefix           = hdprefix zhdprefix
86 CFLAGS_zhdprefix        = $(CFLAGS_ZPREFIX)
87
88 MEDIA                   += raw
89 OBJS_rawprefix          = rawprefix zrawprefix
90 CFLAGS_zrawprefix       = $(CFLAGS_ZPREFIX)
91
92 # These media cannot handle compressed payloads
93
94 MEDIA                   += com
95
96 MEDIA                   += exe
97
98 # Some suffixes (e.g. %.zfd0) are generated directly from other
99 # finished files (e.g. %.zdsk), rather than having their own prefix.
100
101 # rule to write disk images to /dev/fd0
102 NON_AUTO_MEDIA          += fd0
103 %fd0 : %dsk
104         dd if=$< bs=512 conv=sync of=/dev/fd0
105         sync
106
107 # rule to make a non-emulation ISO boot image
108 NON_AUTO_MEDIA          += iso
109 %iso:   %lilo util/geniso
110         ISOLINUX_BIN=$(ISOLINUX_BIN) bash util/geniso $@ $<
111
112 # rule to make a floppy emulation ISO boot image
113 NON_AUTO_MEDIA          += liso
114 %liso:  %lilo util/genliso
115         bash util/genliso $@ $<
116
117 # Add NON_AUTO_MEDIA to the media list, so that they show up in the
118 # output of "make"
119 #
120 MEDIA           += $(NON_AUTO_MEDIA)
121
122 # Shortcut to allow typing just
123 #   make bin-kir/%
124 # rather than
125 #   make -f arch/i386/kir-Makefile bin-kir/%
126 # for building a KEEP_IT_REAL flavour.
127 #
128 $(BIN)-kir/% : kir-target
129         $(MAKE) -f arch/i386/kir-Makefile $(MAKECMDGOALS)
130
131 .PHONY : kir-target