# 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> # # Component specific options: # COMPONENT = LanManFS TARGET = LanManFS ROM_MODULE = aof.${TARGET} RAM_MODULE = rm.${TARGET} DBG_MODULE = rm.${TARGET}D # # Generic options: # include StdTools DFLAGS = -DCOMPAT_INET4 -DLONGNAMES ${OPTIONS} AFLAGS = -depend !Depend ${THROWBACK} -Stamp -quit -predefine "ROMSPRITES SETL {${ROMSPRITES}}" CFLAGS = -depend !Depend ${THROWBACK} -c -Wpcs -ff -zps1 -zM ${INCLUDES},. ${DFLAGS} CMHGFLAGS = -depend !Depend ${THROWBACK} -p ${OPTIONS} INCLUDES = -ITCPIPLibs:,C: # # Libraries # include ModuleLibs 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 NONCOBJS = LanMan_MH.o Errors.o Interface.o OBJS = ${MAINOBJS} ${NONCOBJS} ROM_OBJS = ${NONCOBJS} ${MAINOBJS:%.o=or.%} DBG_OBJS = ${NONCOBJS} ${MAINOBJS:%.o=od.%} OBJSI = ${NONCOBJS} ${MAINOBJS:%.o=i.%} OBJSINST = ${NONCOBJS} ${MAINOBJS:%.o=inst.%} LanMan_MH.h: LanMan_MH.o ${CMHG} ${CMHGFLAGS} cmhg.$* -d $@ # # Rule patterns # .SUFFIXES: .o .od .or .s .c .i .h .cmhg .inst .c.o:; ${CC} ${CFLAGS} -o $@ $< .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 $@ $< .cmhg.o:; ${CMHG} ${CMHGFLAGS} -o $@ $< -d $*.h .cmhg.h:; ${CMHG} ${CMHGFLAGS} -o $@ -d $< .s.o:; ${AS} ${AFLAGS} $< $@ # # Build target # all: ${RAM_MODULE} @echo ${COMPONENT}: all complete install: ${RAM_MODULE} dirs ${CP} ${RAM_MODULE} ${INSTDIR}.${COMPONENT} ${CPFLAGS} @echo ${COMPONENT}: all complete dirs: ${MKDIR} ${INSTDIR} 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 # # RISC OS ROM build rules: # rom: ${ROM_MODULE} @echo ${COMPONENT}: rom module built resources: @echo ${COMPONENT}: no resource files to copy preprocess: ${OBJSI} i.dirs @echo ${COMPONENT}: preprocess build complete instrument: ${OBJSINST} inst.instlib i.dirs o.dirs $(LD) -rmf -o $@ $(OBJSINST) inst.instlib $(STUBS) ${MODSQZ} $@ @echo ${COMPONENT}: instrument build complete o.dirs: ${MKDIR} o ${MKDIR} od ${MKDIR} or create o.dirs i.dirs: ${MKDIR} i ${MKDIR} inst export: @echo ${COMPONENT}: export complete install_rom: ${ROM_MODULE} ${CP} ${ROM_MODULE} ${INSTDIR}.${COMPONENT} ${CPFLAGS} @echo ${COMPONENT}: rom module installed clean: ${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 @echo ${COMPONENT}: cleaned # # Target # ${RAM_MODULE}: ${OBJS} o.dirs ${MKDIR} rm ${LD} -o $@ -rmf ${OBJS} ${NET4LIBS} ${CLIB} ${ASMUTILS} ${MODSQZ} $@ Access $@ RW/R ${DBG_MODULE}: ${DBG_OBJS} o.dirs ${MKDIR} rm ${LD} -o $@ -rmf ${DBG_OBJS} ${DEBUGLIB} ${NET4LIBS} ${CLIB} ${ASMUTILS} ${MODSQZ} $@ # # ROM Target # ${ROM_MODULE}: ${ROM_OBJS} ${NET4LIBS} o.dirs ${MKDIR} aof ${LD} -o $@ -aof ${ROM_OBJS} ${ROMCSTUBS} ${NET4LIBS} ${ASMUTILS} # # Final link for the ROM Image (using given base address) # rom_link: ${MKDIR} linked ${LD} -o linked.${COMPONENT} -rmf -base ${ADDRESS} ${ROM_MODULE} ${ABSSYM} ${CP} linked.${COMPONENT} ${LINKDIR}.${COMPONENT} ${CPFLAGS} @echo ${COMPONENT}: rom_link complete # Dynamic dependencies: