# # Makefile - makefile for boot rom network drivers # # Copyright (C) 1998-2003 Gero Kuhlmann # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. # # $Id: Makefile,v 1.7 2003/01/25 23:29:41 gkminix Exp $ # # # Include user configuration: # include ../make.config # # Name of this module # MODULE = netdrvr # # List of subdirectories # SUBDIRS = init lib dossim pktdrvr ndis2 undi # # List of source and object files: # PKTLIBS = libpktdrv.a libdos.a libnet.a NDISLIBS = libndis2.a libdos.a libnet.a UNDILIBS = libundi.a libnet.a INITOBJS = netdrv.o SEGEND = segend.o TARGETS = netpkt.bin netndis.bin netundi.bin MD5SUMS # # Include system dependent definitions: # include ../make.defs # # The checksize script verifies that the network driver images don't grow # too large in order to fit into a certain amount of memory. MAXSIZE defines # that amount of memory. It represents the number of kB in the network driver # load area as defined in memory.h. STACKSIZE is not the actual stack size # but the amount of kB required to be free after the network driver has been # loaded (for example for DOS programs etc.). # MAXSIZE = 62 STACKSIZE_PKT = 51200 STACKSIZE_NDIS = 51200 STACKSIZE_UNDI = 32768 # # Target rules. # all: $(TARGETS) netpkt.bin: subdirs (cd $(MODOBJDIR); \ $(LD86) $(LD86FLAGS) -M -o $@ $(INITOBJS) $(PKTLIBS:lib%.a=-l%) $(SEGEND) | $(MAPSORT) >netpkt.map; \ chmod 0644 $@; \ cp $@ $(bindestdir)/netpkt.bin \ ) (cd $(MODOBJDIR); \ $(LD86) $(LD86FLAGS) -M -o $(@:%.bin=%86.bin) $(INITOBJS:.o=.o16) $(PKTLIBS:lib%.a=-l%-16) $(SEGEND:.o=.o16) | $(MAPSORT) >netpkt86.map; \ chmod 0644 $(@:%.bin=%86.bin); \ cp $(@:%.bin=%86.bin) $(bindestdir)/netpkt86.bin \ ) netndis.bin: subdirs (cd $(MODOBJDIR); \ $(LD86) $(LD86FLAGS) -M -o $@ $(INITOBJS) $(NDISLIBS:lib%.a=-l%) $(SEGEND) | $(MAPSORT) >netndis.map; \ chmod 0644 $@; \ cp $@ $(bindestdir)/netndis.bin \ ) (cd $(MODOBJDIR); \ $(LD86) $(LD86FLAGS) -M -o $(@:%.bin=%86.bin) $(INITOBJS:.o=.o16) $(NDISLIBS:lib%.a=-l%-16) $(SEGEND:.o=.o16) | $(MAPSORT) >netndis86.map; \ chmod 0644 $(@:%.bin=%86.bin); \ cp $(@:%.bin=%86.bin) $(bindestdir)/netndis86.bin \ ) netundi.bin: subdirs (cd $(MODOBJDIR); \ $(LD86) $(LD86FLAGS) -M -o $@ $(INITOBJS) $(UNDILIBS:lib%.a=-l%) $(SEGEND) | $(MAPSORT) >netundi.map; \ chmod 0644 $@; \ cp $@ $(bindestdir)/netundi.bin \ ) (cd $(MODOBJDIR); \ $(LD86) $(LD86FLAGS) -M -o $(@:%.bin=%86.bin) $(INITOBJS:.o=.o16) $(UNDILIBS:lib%.a=-l%-16) $(SEGEND:.o=.o16) | $(MAPSORT) >netundi86.map; \ chmod 0644 $(@:%.bin=%86.bin); \ cp $(@:%.bin=%86.bin) $(bindestdir)/netundi86.bin \ ) MD5SUMS: cat `find . -name '*.md5'` >$@ .PHONY: subdirs subdirs: @for subdir in $(SUBDIRS); do \ echo making all in $$subdir; \ (cd $$subdir && $(MAKE) all) || exit 1; \ done # # Maintenance rules # # The installation rule just steps down into the subdirectories. The network # driver interface binaries will be copied into the destination by the # main bootrom Makefile. # .PHONY: dep install clean realclean distclean .PHONY: clean-recursive realclean-recursive distclean-recursive dep install: @for subdir in $(SUBDIRS); do \ echo making $@ in $$subdir; \ (cd $$subdir && $(MAKE) $@) || exit 1; \ done clean: clean-recursive rm -f $(MODOBJDIR)/*.o rm -f $(MODOBJDIR)/*.o16 rm -f $(MODOBJDIR)/*.om rm -f $(MODOBJDIR)/*.a rm -f $(MODOBJDIR)/*.bin rm -f $(MODOBJDIR)/*.map distclean: distclean-recursive rm -f $(MODOBJDIR)/*.o rm -f $(MODOBJDIR)/*.o16 rm -f $(MODOBJDIR)/*.om rm -f $(MODOBJDIR)/*.a rm -f $(MODOBJDIR)/*.bin rm -f $(MODOBJDIR)/*.map realclean: realclean-recursive rm -f $(MODOBJDIR)/*.o rm -f $(MODOBJDIR)/*.o16 rm -f $(MODOBJDIR)/*.om rm -f $(MODOBJDIR)/*.a rm -f $(MODOBJDIR)/*.bin rm -f $(MODOBJDIR)/*.map clean-recursive realclean-recursive distclean-recursive: @for subdir in $(SUBDIRS); do \ target=`echo $@ | sed 's/-recursive//'`; \ echo making $$target in $$subdir; \ (cd $$subdir && $(MAKE) $$target) || exit 1; \ done