2 # Copyright (c) 2006 Martin Decky
5 # Redistribution and use in source and binary forms, with or without
6 # modification, are permitted provided that the following conditions
9 # - Redistributions of source code must retain the above copyright
10 # notice, this list of conditions and the following disclaimer.
11 # - Redistributions in binary form must reproduce the above copyright
12 # notice, this list of conditions and the following disclaimer in the
13 # documentation and/or other materials provided with the distribution.
14 # - The name of the author may not be used to endorse or promote products
15 # derived from this software without specific prior written permission.
17 # THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
18 # IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
19 # OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
20 # IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
21 # INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
22 # NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23 # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24 # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
26 # THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 include ..
/..
/..
/..
/version
30 include ..
/..
/..
/Makefile.config
32 ## Toolchain configuration
35 TARGET
= ppc-linux-gnu
36 TOOLCHAIN_DIR
= /usr
/local
/ppc
/bin
38 ifeq ($(COMPILER
),native
)
45 CC
= $(TOOLCHAIN_DIR
)/$(TARGET
)-gcc
46 AS
= $(TOOLCHAIN_DIR
)/$(TARGET
)-as
47 LD
= $(TOOLCHAIN_DIR
)/$(TARGET
)-ld
48 OBJCOPY
= $(TOOLCHAIN_DIR
)/$(TARGET
)-objcopy
49 OBJDUMP
= $(TOOLCHAIN_DIR
)/$(TARGET
)-objdump
52 CFLAGS
= -DRELEASE
=\"$(RELEASE
)\" -I.
-I..
/..
/..
/generic
-I..
/..
/..
/genarch
-nostdinc
-nostdlib
-fno-builtin
-Werror-implicit-function-declaration
-Wmissing-prototypes
-Werror
-O3
-mcpu
=powerpc
-msoft-float
-m32
55 CFLAGS
+= "-DREVISION=\"$(REVISION)\""
59 CFLAGS
+= "-DTIMESTAMP=\"$(TIMESTAMP)\""
65 ..
/..
/..
/genarch
/ofw.c \
66 ..
/..
/..
/generic
/printf.c \
71 $(KERNELDIR
)/kernel.bin \
73 $(USPACEDIR
)/init
/init \
75 $(USPACEDIR
)/kbd
/kbd \
76 $(USPACEDIR
)/console
/console \
77 $(USPACEDIR
)/tetris
/tetris \
78 $(USPACEDIR
)/ipcc
/ipcc \
79 $(USPACEDIR
)/klog
/klog
81 OBJECTS
:= $(addsuffix .o
,$(basename $(SOURCES
)))
82 COMPONENT_OBJECTS
:= $(addsuffix .o
,$(basename $(notdir $(COMPONENTS
))))
84 .PHONY
: all clean depend
88 -include Makefile.depend
90 image.boot
: depend _components.h _link.
ld $(COMPONENT_OBJECTS
) $(OBJECTS
) kernel.o
91 $(LD
) -no-check-sections
-N
-T _link.
ld $(COMPONENT_OBJECTS
) $(OBJECTS
) -o
$@
94 -makedepend
$(DEFS
) $(CFLAGS
) -f
- $(SOURCES
) > Makefile.depend
2> /dev
/null
97 -rm -f _components.h _link.
ld $(COMPONENT_OBJECTS
) $(OBJECTS
) image.boot Makefile.depend
99 _components.h _link.
ld $(COMPONENT_OBJECTS
): $(COMPONENTS
)
100 .
/pack
$(OBJCOPY
) $(COMPONENTS
)
103 $(CC
) $(DEFS
) $(CFLAGS
) -D__ASM__
-c
$< -o
$@
106 $(CC
) $(DEFS
) $(CFLAGS
) -c
$< -o
$@