Makefile 4.15 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
# Copyright 1998 Acorn Computers Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# Makefile for LanManFS
#
# Paths
#
EXP_HDR = <export$dir>

Stewart Brodie's avatar
Stewart Brodie committed
21 22 23 24
#
# Component specific options:
#
COMPONENT  = LanManFS
25 26 27 28
TARGET     = LanManFS
ROM_MODULE = aof.${TARGET}
RAM_MODULE = rm.${TARGET}
DBG_MODULE = rm.${TARGET}D
Stewart Brodie's avatar
Stewart Brodie committed
29

30 31 32
#
# Generic options:
#
33
include StdTools
34

35
DFLAGS    = -DCOMPAT_INET4 -DLONGNAMES ${OPTIONS}
36
AFLAGS    = -depend !Depend ${THROWBACK} -Stamp -quit -predefine "ROMSPRITES SETL {${ROMSPRITES}}"
Stewart Brodie's avatar
Stewart Brodie committed
37
CFLAGS    = -depend !Depend ${THROWBACK} -c -Wpcs -ff -zps1 -zM ${INCLUDES},. ${DFLAGS}
38
CMHGFLAGS = -depend !Depend ${THROWBACK} -p ${OPTIONS}
Stewart Brodie's avatar
Stewart Brodie committed
39 40
INCLUDES  = -ITCPIPLibs:,C:

41 42 43
#
# Libraries
#
44
include ModuleLibs
45

46 47 48
MAINOBJS  = LanMan.o Omni.o Logon.o CoreFn.o Printers.o NameCache.o \
            Xlate.o buflib.o Transact.o \
            LLC.o NetBIOS.o SMB.o Attr.o RPC.o NBIP.o Stats.o
49

50
NONCOBJS  = LanMan_MH.o Errors.o Interface.o
Stewart Brodie's avatar
Stewart Brodie committed
51

52
OBJS      = ${MAINOBJS} ${NONCOBJS}
Stewart Brodie's avatar
Stewart Brodie committed
53

54
ROM_OBJS  = ${NONCOBJS} ${MAINOBJS:%.o=or.%}
55

56
DBG_OBJS  = ${NONCOBJS} ${MAINOBJS:%.o=od.%}
Stewart Brodie's avatar
Stewart Brodie committed
57

58
OBJSI     = ${NONCOBJS} ${MAINOBJS:%.o=i.%}
Stewart Brodie's avatar
Stewart Brodie committed
59

60
OBJSINST  = ${NONCOBJS} ${MAINOBJS:%.o=inst.%}
Stewart Brodie's avatar
Stewart Brodie committed
61 62 63

LanMan_MH.h: LanMan_MH.o
	${CMHG} ${CMHGFLAGS} cmhg.$* -d $@
64 65 66 67

#
# Rule patterns
#
Stewart Brodie's avatar
Stewart Brodie committed
68
.SUFFIXES:  .o .od .or .s .c .i .h .cmhg .inst
69
.c.o:;      ${CC} ${CFLAGS} -o $@ $<
70 71 72 73
.c.or:;     ${CC} ${CFLAGS} -DROM -o $@ $<
.c.od:;     ${CC} ${CFLAGS} -DDEBUG -DDEBUGLIB -DTRACE -Dprintf=module_printf -o $@ $<
.c.i:;      $(CC) $(CFLAGS) -c -C -E $< >> $@
.i.inst:;   $(CC) $(CFLAGS) -C++ -o $@ $<
Stewart Brodie's avatar
Stewart Brodie committed
74
.cmhg.o:;   ${CMHG} ${CMHGFLAGS} -o $@ $< -d $*.h
75
.cmhg.h:;   ${CMHG} ${CMHGFLAGS} -o $@ -d $<
76
.s.o:;      ${AS} ${AFLAGS} $< $@
Neil Bingham's avatar
Neil Bingham committed
77

78 79 80
#
# Build target
#
Stewart Brodie's avatar
Stewart Brodie committed
81
all: ${RAM_MODULE}
82 83
	@echo ${COMPONENT}: all complete

Neil Bingham's avatar
Neil Bingham committed
84 85 86 87 88 89 90
install: ${RAM_MODULE} dirs
	${CP} ${RAM_MODULE} ${INSTDIR}.${COMPONENT} ${CPFLAGS}
	@echo ${COMPONENT}: all complete

dirs:
	${MKDIR} ${INSTDIR}

91 92 93 94 95
o.LanMan o.LLC o.Logon o.NBIP o.Omni: LanMan_MH.h
or.LanMan or.LLC or.Logon or.NBIP or.Omni: LanMan_MH.h
od.LanMan od.LLC od.Logon od.NBIP od.Omni: LanMan_MH.h
i.LanMan i.LLC i.Logon i.NBIP i.Omni: LanMan_MH.h

96 97 98
#
# RISC OS ROM build rules:
#
Stewart Brodie's avatar
Stewart Brodie committed
99
rom: ${ROM_MODULE}
100 101
	@echo ${COMPONENT}: rom module built

Stewart Brodie's avatar
Stewart Brodie committed
102
resources:
103
	@echo ${COMPONENT}: no resource files to copy
Stewart Brodie's avatar
Stewart Brodie committed
104

Stewart Brodie's avatar
Stewart Brodie committed
105
preprocess: ${OBJSI} i.dirs
106 107
	@echo ${COMPONENT}: preprocess build complete

Stewart Brodie's avatar
Stewart Brodie committed
108 109
instrument: ${OBJSINST} inst.instlib i.dirs o.dirs 
	$(LD) -rmf -o $@ $(OBJSINST) inst.instlib $(STUBS)
110
	${MODSQZ} $@
111 112
	@echo ${COMPONENT}: instrument build complete

Stewart Brodie's avatar
Stewart Brodie committed
113
o.dirs:
114
	${MKDIR} o
Stewart Brodie's avatar
Stewart Brodie committed
115 116 117 118 119
	${MKDIR} od
	${MKDIR} or
	create o.dirs

i.dirs:
120 121 122 123 124 125
	${MKDIR} i
	${MKDIR} inst

export: 
	@echo ${COMPONENT}: export complete

Stewart Brodie's avatar
Stewart Brodie committed
126 127
install_rom: ${ROM_MODULE}
	${CP} ${ROM_MODULE} ${INSTDIR}.${COMPONENT} ${CPFLAGS}
128 129 130
	@echo ${COMPONENT}: rom module installed

clean:
Stewart Brodie's avatar
Stewart Brodie committed
131 132 133 134 135 136 137 138 139 140 141
	${WIPE} o ${WFLAGS}
	${WIPE} od ${WFLAGS}
	${WIPE} or ${WFLAGS}
	${WIPE} i ${WFLAGS}
	${WIPE} inst ${WFLAGS}
	${WIPE} map ${WFLAGS}
	${WIPE} linked ${WFLAGS}
	${WIPE} aof ${WFLAGS}
	${WIPE} rm ${WFLAGS}
	${RM} h.LanMan_MH
	${RM} NameCache
142 143 144 145 146
	@echo ${COMPONENT}: cleaned

#
# Target 
#
Stewart Brodie's avatar
Stewart Brodie committed
147 148
${RAM_MODULE}: ${OBJS} o.dirs
	${MKDIR} rm
149
	${LD} -o $@ -rmf ${OBJS} ${NET4LIBS} ${CLIB} ${ASMUTILS}
Stewart Brodie's avatar
Stewart Brodie committed
150 151 152 153 154
	${MODSQZ} $@
	Access $@ RW/R

${DBG_MODULE}: ${DBG_OBJS} o.dirs
	${MKDIR} rm
155
	${LD} -o $@ -rmf ${DBG_OBJS} ${DEBUGLIB} ${NET4LIBS} ${CLIB} ${ASMUTILS}
Stewart Brodie's avatar
Stewart Brodie committed
156
	${MODSQZ} $@
157 158 159 160

#
# ROM Target 
#
161
${ROM_MODULE}: ${ROM_OBJS} ${NET4LIBS} o.dirs
Stewart Brodie's avatar
Stewart Brodie committed
162
	${MKDIR} aof
163
	${LD} -o $@ -aof ${ROM_OBJS} ${ROMCSTUBS} ${NET4LIBS} ${ASMUTILS}
164 165 166 167 168 169
	
#
# Final link for the ROM Image (using given base address)
#
rom_link:
	${MKDIR} linked
Stewart Brodie's avatar
Stewart Brodie committed
170
	${LD} -o linked.${COMPONENT} -rmf -base ${ADDRESS} ${ROM_MODULE} ${ABSSYM}
171 172 173 174
	${CP} linked.${COMPONENT} ${LINKDIR}.${COMPONENT} ${CPFLAGS}
	@echo ${COMPONENT}: rom_link complete

# Dynamic dependencies: