Makefile 3.94 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}
Stewart Brodie's avatar
Stewart Brodie committed
36 37
AFLAGS    = -depend !Depend ${THROWBACK} -Stamp -quit
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 $@ $<
Stewart Brodie's avatar
Stewart Brodie committed
70
.c.or:;      ${CC} ${CFLAGS} -DROM -o $@ $<
Stewart Brodie's avatar
Stewart Brodie committed
71
.c.od:;      ${CC} ${CFLAGS} -DDEBUG -DDEBUGLIB -DTRACE -Dprintf=module_printf -o $@ $<
72 73
.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
.s.o:;      ${AS} ${AFLAGS} $< $@
Neil Bingham's avatar
Neil Bingham committed
76

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

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

dirs:
	${MKDIR} ${INSTDIR}

90 91 92
#
# RISC OS ROM build rules:
#
Stewart Brodie's avatar
Stewart Brodie committed
93
rom: ${ROM_MODULE}
94 95
	@echo ${COMPONENT}: rom module built

Stewart Brodie's avatar
Stewart Brodie committed
96
resources:
97 98
	${MKDIR} ${RESDIR}.${TARGET}
	${CP} LocalRes:Sprites ${RESDIR}.${TARGET}.Sprites  ${CPFLAGS}
Stewart Brodie's avatar
Stewart Brodie committed
99 100
	@echo ${COMPONENT}: resource files copied

Stewart Brodie's avatar
Stewart Brodie committed
101
preprocess: ${OBJSI} i.dirs
102 103
	@echo ${COMPONENT}: preprocess build complete

Stewart Brodie's avatar
Stewart Brodie committed
104 105
instrument: ${OBJSINST} inst.instlib i.dirs o.dirs 
	$(LD) -rmf -o $@ $(OBJSINST) inst.instlib $(STUBS)
106
	${MODSQZ} $@
107 108
	@echo ${COMPONENT}: instrument build complete

Stewart Brodie's avatar
Stewart Brodie committed
109
o.dirs:
110
	${MKDIR} o
Stewart Brodie's avatar
Stewart Brodie committed
111 112 113 114 115
	${MKDIR} od
	${MKDIR} or
	create o.dirs

i.dirs:
116 117 118 119 120 121
	${MKDIR} i
	${MKDIR} inst

export: 
	@echo ${COMPONENT}: export complete

Stewart Brodie's avatar
Stewart Brodie committed
122 123
install_rom: ${ROM_MODULE}
	${CP} ${ROM_MODULE} ${INSTDIR}.${COMPONENT} ${CPFLAGS}
124 125 126
	@echo ${COMPONENT}: rom module installed

clean:
Stewart Brodie's avatar
Stewart Brodie committed
127 128 129 130 131 132 133 134 135 136 137
	${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
138 139 140 141 142
	@echo ${COMPONENT}: cleaned

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

${DBG_MODULE}: ${DBG_OBJS} o.dirs
	${MKDIR} rm
151
	${LD} -o $@ -rmf ${DBG_OBJS} ${DEBUGLIB} ${NET4LIBS} ${CLIB} ${ASMUTILS}
Stewart Brodie's avatar
Stewart Brodie committed
152
	${MODSQZ} $@
153 154 155 156

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

# Dynamic dependencies: