~martin-decky/helenos/rcu

117 by Martin Decky
proper support for parallel building (this time really tested)
1
#
2
# Copyright (c) 2005 Martin Decky
3
# Copyright (c) 2007 Jakub Jermar
4
# All rights reserved.
5
#
6
# Redistribution and use in source and binary forms, with or without
7
# modification, are permitted provided that the following conditions
8
# are met:
9
#
10
# - Redistributions of source code must retain the above copyright
11
#   notice, this list of conditions and the following disclaimer.
12
# - Redistributions in binary form must reproduce the above copyright
13
#   notice, this list of conditions and the following disclaimer in the
14
#   documentation and/or other materials provided with the distribution.
15
# - The name of the author may not be used to endorse or promote products
16
#   derived from this software without specific prior written permission.
17
#
18
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
19
# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
20
# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
21
# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
22
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
23
# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
24
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
25
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
27
# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28
#
29
30
## Setup toolchain
31
#
32
33
include ../../../../version
34
include ../../../../Makefile.config
35
include ../../../../config.defs
36
include Makefile.common
37
include Makefile.toolchain
38
39
## Sources
40
#
41
42
SOURCES = \
43
	main.c \
44
	boot.S \
45
	asm.S \
46
	mm.c \
47
	print/print.c \
48
	_components.c \
49
	../../../generic/printf.c \
50
	../../../generic/string.c \
51
	../../../genarch/division.c
52
53
OBJECTS := $(addsuffix .o,$(basename $(SOURCES)))
54
COMPONENT_OBJECTS := $(addsuffix .co,$(basename $(notdir $(COMPONENTS)))) $(INITRD).co
55
56
.PHONY: all
57
58
all: $(OUTPUT)
59
60
-include $(DEPEND)
61
62
$(OUTPUT): $(OBJECTS) $(COMPONENT_OBJECTS) $(LINK)
63
	$(LD) -no-check-sections -N -T $(LINK) $(COMPONENT_OBJECTS) $(OBJECTS) -o $@
64
65
%.o: %.S $(DEPEND)
66
	$(CC) $(DEFS) $(CFLAGS) -D__ASM__ -c $< -o $@
188 by Martin Decky
remove Stanse-specific constructs from makefiles
67
ifeq ($(PRECHECK),y)
68
	$(JOBFILE) $(JOB) $< $@ as asm/preproc $(DEFS) $(CFLAGS) -D__ASM__
69
endif
117 by Martin Decky
proper support for parallel building (this time really tested)
70
71
%.o: %.c $(DEPEND)
72
	$(CC) $(DEFS) $(CFLAGS) -c $< -o $@
188 by Martin Decky
remove Stanse-specific constructs from makefiles
73
ifeq ($(PRECHECK),y)
74
	$(JOBFILE) $(JOB) $< $@ cc core $(DEFS) $(CFLAGS)
75
endif
117 by Martin Decky
proper support for parallel building (this time really tested)
76
77
$(DEPEND):
78
	for file in $(RD_SRVS) ; do \
79
		cp $$file $(USPACEDIR)/dist/srv/ ; \
80
	done
81
	for file in $(RD_APPS) ; do \
82
		cp $$file $(USPACEDIR)/dist/app/ ; \
83
	done
84
ifeq ($(RDFMT),tmpfs)
85
	../../../../tools/mktmpfs.py $(USPACEDIR)/dist/ $(INITRD).fs
86
endif
87
ifeq ($(RDFMT),fat)
88
	../../../../tools/mkfat.py $(USPACEDIR)/dist/ $(INITRD).fs
89
endif
90
	../../../../tools/mkhord.py 4096 $(INITRD).fs $(INITRD).img
91
	../../../tools/pack.py $(OBJCOPY) $(BFD_NAME) $(BFD_ARCH) 4096 "unsigned int" $(COMPONENTS) ./$(INITRD).img
92
	makedepend -f - -- $(DEPEND_DEFS) $(CFLAGS) -- $(SOURCES) > $@ 2> /dev/null
93
	-[ -f $(DEPEND_PREV) ] && diff -q $(DEPEND_PREV) $@ && mv -f $(DEPEND_PREV) $@