File: Makefile

package info (click to toggle)
vmelilo 1.1.1-1
  • links: PTS
  • area: main
  • in suites: slink
  • size: 360 kB
  • ctags: 761
  • sloc: ansic: 7,361; makefile: 98
file content (105 lines) | stat: -rw-r--r-- 3,063 bytes parent folder | download
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 >------------------------------##