1
1
2
2
CSRCS = ttydw.c dwtime.c devsys.c
3
- CSRCS += devices.c main.c libc.c devsdc.c devlpr.c devrtsd.c mbr.c
3
+ CSRCS += devices.c main.c libc.c devlpr.c mbr.c
4
+ CSRCS_OPTIONAL = devsdc.c devrtsd.c
4
5
5
- CDSRCS = ../../dev/tinyide_discard.c ../../dev/tinysd_discard.c ../../dev/tinydisk_discard .c
6
+ CSRCS_O0 = devtty .c
6
7
7
- DSRCS = ../../dev/devdw.c ../../dev/tinydisk.c ../../dev/tinyide.c ../../dev/tinysd.c
8
+ CDSRCS = ../../dev/tinydisk_discard.c
9
+ CDSRCS_OPTIONAL = ../../dev/tinyide_discard.c ../../dev/tinysd_discard.c
10
+
11
+ DSRCS = ../../dev/devdw.c ../../dev/tinydisk.c
12
+ DSRCS_OPTIONAL = ../../dev/tinyide.c ../../dev/tinysd.c
8
13
9
14
NSRCS = ../../dev/net/net_native.c
10
15
11
- ASRCS = coco3.s crt0.s ide.s sd.s rtsd.s
12
- ASRCS += tricks.s commonmem.s usermem_gime.s ../../dev/drivewire/drivewire.s sdc.s videoll.s
16
+ ASRCS = coco3.s crt0.s
17
+ ASRCS += tricks.s commonmem.s usermem_gime.s ../../dev/drivewire/drivewire.s videoll.s
18
+ ASRCS_OPTIONAL = ide.s sd.s rtsd.s sdc.s
19
+
20
+ VSRCS_O0 = video.c
13
21
14
22
COBJS = $(CSRCS:.c=$(BINEXT ) )
23
+ COBJS_OPTIONAL = $(CSRCS_OPTIONAL:.c=$(BINEXT ) )
24
+ COBJS_O0 = $(CSRCS_O0:.c=$(BINEXT ) )
15
25
AOBJS = $(ASRCS:.s=$(BINEXT ) )
16
- DOBJS = $(patsubst ../../dev/% .c,% .o, $(DSRCS ) )
17
- NOBJS = $(patsubst ../../dev/net/% .c,% .o, $(NSRCS ) )
18
- CDOBJS = $(CDSRCS:.c=$(BINEXT ) )
19
- OBJS = $(COBJS ) $(AOBJS ) $(DOBJS ) $(CDOBJS ) $(NOBJS )
26
+ AOBJS_OPTIONAL = $(ASRCS_OPTIONAL:.s=$(BINEXT ) )
27
+ DOBJS = $(patsubst ../../dev/% .c,% $(BINEXT ) , $(DSRCS ) )
28
+ DOBJS_OPTIONAL = $(patsubst ../../dev/% .c,% $(BINEXT ) , $(DSRCS_OPTIONAL ) )
29
+ NOBJS = $(patsubst ../../dev/net/% .c,% $(BINEXT ) , $(NSRCS ) )
30
+ CDOBJS = $(patsubst ../../dev/% .c,% $(BINEXT ) , $(CDSRCS ) )
31
+ CDOBJS_OPTIONAL = $(patsubst ../../dev/% .c,% $(BINEXT ) , $(CDSRCS_OPTIONAL ) )
32
+ VOBJS_O0 = $(VSRCS_O0:.c=$(BINEXT ) )
33
+
34
+ OBJS = $(COBJS ) $(COBJS_O0 ) $(AOBJS ) $(DOBJS ) $(CDOBJS ) $(NOBJS ) $(VOBJS_O0 )
35
+ OBJS_OPTIONAL = $(COBJS_OPTIONAL ) $(AOBJS_OPTIONAL ) $(DOBJS_OPTIONAL ) $(CDOBJS_OPTIONAL )
20
36
21
37
CROSS_CCOPTS += -I../../dev/
22
38
23
39
HIGH = -mcode-section=.text3
24
40
25
- JUNK = $(CSRCS:.c=.o ) $(ASRCS:.s=.o ) $(DSRCS:.c=.o )
26
-
27
41
# Set 'SUBTARGET' to one of: emu, real, fpga, nano.
28
42
29
43
ifndef SUBTARGET
75
89
ASOPTS = --defsym BECKER=0
76
90
endif
77
91
78
- all : $(OBJS )
92
+ .PHONY : all
93
+ all :
79
94
80
- $(COBJS ) : % $(BINEXT ) : % .c
81
- $(CROSS_CC ) $(CROSS_CCOPTS ) -c $<
95
+ $(COBJS ) $( COBJS_OPTIONAL ) : % $(BINEXT ) : % .c
96
+ $(QUIET_CC )$( CROSS_CC ) $(CROSS_CCOPTS ) -o $@ $<
82
97
83
- $(CDOBJS ) : % $(BINEXT ) : % .c
84
- $(CROSS_CC ) $( CROSS_CCOPTS ) $(CROSS_CC_SEGDISC ) -c $<
98
+ $(COBJS_O0 ) : % $(BINEXT ) : % .c
99
+ $(QUIET_CC )$( CROSS_CC ) $(CROSS_CCOPTS ) -O0 -o $@ $<
85
100
86
- $(DOBJS ) : % $(BINEXT ) : ../../dev/% .c
87
- $(CROSS_CC ) $(CROSS_CCOPTS ) $(HIGH ) -c $<
101
+ $(CDOBJS ) $(CDOBJS_OPTIONAL ) : % $(BINEXT ) : ../../dev/% .c
102
+ $(QUIET_CC )$(CROSS_CC ) $(CROSS_CCOPTS ) $(CROSS_CC_SEGDISC ) -o $@ $<
103
+
104
+ $(DOBJS ) $(DOBJS_OPTIONAL ) : % $(BINEXT ) : ../../dev/% .c
105
+ $(QUIET_CC )$(CROSS_CC ) $(CROSS_CCOPTS ) $(HIGH ) -o $@ $<
88
106
89
107
$(NOBJS ) : % $(BINEXT ) : ../../dev/net/% .c
90
- $(CROSS_CC ) $(CROSS_CCOPTS ) -c $<
108
+ $(QUIET_CC )$( CROSS_CC ) $(CROSS_CCOPTS ) -O0 -o $@ $<
91
109
92
- $(AOBJS ) : % $(BINEXT ) : % .s
93
- $(CROSS_AS ) $(ASOPTS ) $< -o $* .o
110
+ $(AOBJS ) $( AOBJS_OPTIONAL ) : % $(BINEXT ) : % .s
111
+ $(QUIET_AS )$( CROSS_AS ) $(ASOPTS ) $< -o $@
94
112
113
+ $(VOBJS_O0 ) : % $(BINEXT ) : % .c
114
+ $(QUIET_CC )$(CROSS_CC ) $(CROSS_CC_VIDEO ) $(CROSS_CCOPTS ) -O0 -o $@ $<
95
115
96
- clean :
97
- rm -f $(OBJS ) $(JUNK ) fuzix.dsk boot.bin core * ~
98
- rm -f fuzix.tmp
116
+ # Note: compile flags for some of these are overridden during the top-level
117
+ # build in rules.mk (otherwise we'd have to rebuild them locally here).
99
118
100
- image : boot.bin
101
- $(CROSS_CC ) $(CROSS_CCOPTS ) -O0 -c -o ../../bank16k.o ../../mm/bank16k.c
102
- $(CROSS_CC ) $(CROSS_CCOPTS ) -O0 -c -o devtty.o devtty.c
103
- $(CROSS_CC ) $(CROSS_CCOPTS ) -O0 -c -o ../../timer.o ../../timer.c
104
- $(CROSS_CC ) $(CROSS_CCOPTS ) -O0 -c -o net_native.o ../../dev/net/net_native.c
105
- $(CROSS_CC ) $(CROSS_CC_VIDEO ) $(CROSS_CCOPTS ) -O0 -c -o video.o video.c
106
- $(CROSS_CC ) $(CROSS_CC_VIDEO ) $(CROSS_CCOPTS ) -O0 -c -o ../../usermem.o ../../usermem.c
107
- $(CROSS_LD ) -o ../../fuzix.bin -Map=../../fuzix.map --script=fuzix.link --oformat=decb \
119
+ ../../fuzix.bin : $(OBJS ) $(DRIVERS )
120
+ $(QUIET_LD )$(CROSS_LD ) -o $@ -Map=../../fuzix.map --script=fuzix.link --oformat=decb \
108
121
crt0.o commonmem.o \
109
122
coco3.o ../../start.o ../../version.o ../../cpu-6809/lowlevel-6809.o \
110
123
tricks.o main.o ../../timer.o ../../kdata.o devices.o \
@@ -116,18 +129,29 @@ image: boot.bin
116
129
../../cpu-6809/usermem_std-6809.o devtty.o libc.o ../../vt.o usermem_gime.o video.o \
117
130
videoll.o dwtime.o devsys.o mbr.o ../../network.o \
118
131
../../syscall_net.o net_native.o $(DRIVERS )
132
+
133
+ fuzix.dsk : ../../fuzix.bin boot.bin AUTOEXEC.BAS
119
134
# make DECB disk w/ new kernel
120
- rm -f fuzix.dsk
121
- decb dskini fuzix.dsk
122
- decb copy -2 -b ../../fuzix.bin ./fuzix.dsk,FUZIX.BIN
123
- decb copy -2 -b boot.bin ./fuzix.dsk,BOOT.BIN
124
- decb copy -l -0 -a AUTOEXEC.BAS ./fuzix.dsk,AUTOEXEC.BAS
135
+ rm -f $@
136
+ decb dskini $@
137
+ decb copy -2 -b ../../fuzix.bin $@,FUZIX.BIN
138
+ decb copy -2 -b boot.bin $@,BOOT.BIN
139
+ decb copy -l -0 -a AUTOEXEC.BAS $@,AUTOEXEC.BAS
140
+
141
+ .PHONY : image
142
+ image : fuzix.dsk
125
143
126
144
boot.bin : boot/boot.s
127
145
lwasm -lboot.list -oboot.bin boot/boot.s
128
146
147
+ .PHONY : clean
148
+ clean :
149
+ rm -f $(OBJS ) $(OBJS_OPTIONAL ) fuzix.dsk boot.bin boot.list core * ~
150
+ rm -f fuzix.tmp
151
+
129
152
IMAGES = $(FUZIX_ROOT ) /Images/$(TARGET )
130
153
154
+ .PHONY : diskimage
131
155
diskimage :
132
156
# Make a blank disk image with partition
133
157
dd if=$(FUZIX_ROOT ) /Standalone/filesystem-src/parttab.40M of=$(IMAGES ) /disk.img bs=40017920 conv=sync
@@ -138,3 +162,5 @@ diskimage:
138
162
dd if=fuzix.tmp of=$(IMAGES ) /disk.img bs=512 seek=339420 conv=notrunc
139
163
# Make an emulator image of it
140
164
cat $(FUZIX_ROOT ) /Standalone/filesystem-src/idehdr.40M $(IMAGES ) /disk.img > $(IMAGES ) /emu-ide.img
165
+
166
+ include ../../quiet.mk
0 commit comments