1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105
|
##--------------------------------------------------------------------------##
#
# BVME4000/6000 Linux/m68k Loader
#
# Makefile
#
# Possible options:
#
# BOOTINFO_COMPAT_1_0:
# Include support for booting kernel with bootinfo version 1.0 (up to 2.0.x)
#
OPTIONS = -DBOOTINFO_COMPAT_1_0
DESTDIR =
CC = gcc
LD = ld
CFLAGS = -O2 -fomit-frame-pointer -Wall -m68060 $(OPTIONS)
INSTALL = install
MAKE = make
SUBDIRS = debug
LOADER_COMMON_FILES = loader.o gunzip_mod.o file_mod.o stream.o loaderlib.o
BVME_LOADER_FILES = $(LOADER_COMMON_FILES) bvmeloader.o
MVME_LOADER_FILES = $(LOADER_COMMON_FILES) mvmeloader.o
LILO_FILES = vmelilo.o geo.o cfg.o bvme.o mvme.o
##--------------------------------------------------------------------------##
# Targets
#
vmelilo: $(LILO_FILES)
$(CC) -o vmelilo $(LILO_FILES)
strip -R .note -R .comment vmelilo
bin2data: bin2data.c
gcc -O bin2data.c -o bin2data
##--------------------------------------------------------------------------##
# Dependencies
#
vmelilo.o: bin2data vmelilo.c vmelilo.h loader.h version.h
cfg.o: cfg.c vmelilo.h loader.h bvmbug.h version.h
geo.o: geo.c vmelilo.h loader.h bvmbug.h version.h
bvme.o: bvme.c bvmbug.h bvmeloader.data version.h
mvme.o: mvme.c mvmebug.h mvmeloader.data mvmeboot.data version.h
bvmeloader.bin: $(BVME_LOADER_FILES)
$(LD) -T loader.ld $(BVME_LOADER_FILES) -o bvmeloader.bin \
-oformat binary -M >bvmeloader.map
mvmeloader.bin: $(MVME_LOADER_FILES)
$(LD) -T loader.ld $(MVME_LOADER_FILES) -o mvmeloader.bin \
-oformat binary -M >mvmeloader.map
mvmeboot.bin: mvmeboot.o
$(LD) -T loader.ld mvmeboot.o -o mvmeboot.bin -oformat binary
loader.o: loader.h loaderlib.h
bvmeloader.o: bvmeloader.c loader.h loaderlib.h bvmbug.h
mvmeloader.o: mvmeloader.c loader.h loaderlib.h mvmebug.h
loaderlib.o: loaderlib.c loaderlib.h
gunzip_mod.o: gunzip_mod.c inflate.c stream.h loaderlib.h
file_mod.o: file_mod.c stream.h loaderlib.h
stream.o: stream.c stream.h loaderlib.h
##--------------------------------------------------------------------------##
# Installation
#
install: vmelilo
$(INSTALL) -o root -g disk -m 2775 -d $(DESTDIR)/boot
$(INSTALL) -o root -g root -m 0755 vmelilo $(DESTDIR)/sbin/
$(INSTALL) -o root -g root -m 0644 examples/vmelilo.conf \
$(DESTDIR)/usr/doc/vmelilo/examples/
$(INSTALL) -o root -g root -m 0644 vmelilo.8 $(DESTDIR)/usr/man/man8/
$(INSTALL) -o root -g root -m 0644 vmelilo.conf.5 $(DESTDIR)/usr/man/man5/
##--------------------------------------------------------------------------##
# Clean up
#
clean:
rm -f vmelilo bin2data *.o *.data *.bin *.map
for i in $(SUBDIRS); do $(MAKE) -C $$i clean; done
##--------------------------------------------------------------------------##
# General rules
#
%.data: %.bin
./bin2data $*.bin $*_code > $*.data
%.o: %.S
$(CC) -D__ASSEMBLY__ -Wa,-m68040 -c $< -o $*.o
%.o: %.c
$(CC) $(CFLAGS) -c $< -o $*.o
##-----------------------------< end of file >------------------------------##
|