Always use CC for linking.
[helenos.git] / boot / arch / mips32 / src / Makefile.build
blobcf5db2c5072263406f6af07d132c8967f19fc4e5
2 # Copyright (c) 2005 Martin Decky
3 # Copyright (c) 2007 Jakub Jermar
4 # All rights reserved.
6 # Redistribution and use in source and binary forms, with or without
7 # modification, are permitted provided that the following conditions
8 # are met:
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.
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.
30 ## Setup toolchain
33 include ../../../../version
34 include ../../../../Makefile.common
35 include ../../../../Makefile.config
36 include Makefile.common
37 include Makefile.toolchain
39 ## Sources
42 SOURCES = \
43         main.c \
44         msim.c \
45         _components.c \
46         ../../../generic/printf.c \
47         ../../../generic/string.c \
48         asm.S \
49         boot.S
51 OBJECTS := $(addsuffix .o,$(basename $(SOURCES)))
52 COMPONENT_OBJECTS := $(addsuffix .co,$(basename $(notdir $(COMPONENTS)))) $(INITRD).co
54 .PHONY: all
56 all: $(OUTPUT)
58 -include $(DEPEND)
60 $(OUTPUT): $(RAW)
61         $(OBJCOPY) -O $(BFD) $< $@
63 $(RAW): $(OBJECTS) $(COMPONENT_OBJECTS) $(LINK)
64         $(CC) $(CFLAGS) -Wl,-no-check-sections,-N -T $(LINK) $(COMPONENT_OBJECTS) $(OBJECTS) -o $@
66 %.o: %.S $(DEPEND)
67         $(CC) $(DEFS) $(CFLAGS) -c $< -o $@
68 ifeq ($(PRECHECK),y)
69         $(JOBFILE) $(JOB) $< $@ as asm/preproc $(DEFS) $(CFLAGS)
70 endif
72 %.o: %.c $(DEPEND)
73         $(CC) $(DEFS) $(CFLAGS) -c $< -o $@
74 ifeq ($(PRECHECK),y)
75         $(JOBFILE) $(JOB) $< $@ cc core $(DEFS) $(CFLAGS)
76 endif
78 $(DEPEND):
79         rm -f $(USPACEDIR)/dist/srv/*
80         rm -f $(USPACEDIR)/dist/app/*
81         rm -f $(USPACEDIR)/dist/cfg/net/*
83         for file in $(RD_SRVS) ; do \
84                 cp $$file $(USPACEDIR)/dist/srv/ ; \
85         done
86         for file in $(RD_APPS) ; do \
87                 cp $$file $(USPACEDIR)/dist/app/ ; \
88         done
89         for file in $(NET_CFG) ; do \
90                 cp $$file $(USPACEDIR)/dist/cfg/net/ ; \
91         done
92 ifeq ($(RDFMT),tmpfs)
93         ../../../../tools/mktmpfs.py $(USPACEDIR)/dist/ $(INITRD).fs
94 endif
95 ifeq ($(RDFMT),fat)
96         ../../../../tools/mkfat.py $(USPACEDIR)/dist/ $(INITRD).fs
97 endif
98         ../../../../tools/mkhord.py 16384 $(INITRD).fs $(INITRD).img
99         ../../../tools/pack.py $(OBJCOPY) $(BFD_NAME) $(BFD_ARCH) 16384 "unsigned int" $(COMPONENTS) ./$(INITRD).img
100         makedepend -f - -- $(DEPEND_DEFS) $(CFLAGS) -- $(SOURCES) > $@ 2> /dev/null
101         -[ -f $(DEPEND_PREV) ] && diff -q $(DEPEND_PREV) $@ && mv -f $(DEPEND_PREV) $@