2 # Copyright (c) 2012 Vojtech Horky
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.
32 MSIM_VERSION
= 1.3.8.1
33 MSIM_DIST
= msim-
$(MSIM_VERSION
)
34 MSIM_TARBALL
= $(MSIM_DIST
).
tar.bz2
35 MSIM_MIRROR
= http
://d3s.mff.cuni.cz
/~holub
/sw
/msim
/
37 MSIM_HELENOS_MAKEFILE
= Makefile.msim.src
38 MSIM_HELENOS_PLATFORM_FILES
= misc.c input.c
39 MSIM_HELENOS_ARCH_DIR
= arch
/helenos
40 MSIM_PATCHED_FILES
= \
41 $(MSIM_DIST
)/config.h \
42 $(MSIM_DIST
)/src
/$(MSIM_HELENOS_MAKEFILE
) \
43 $(MSIM_DIST
)/src
/$(MSIM_HELENOS_ARCH_DIR
)/helenos.h \
44 $(MSIM_DIST
)/src
/$(MSIM_HELENOS_ARCH_DIR
)/misc.c \
45 $(MSIM_DIST
)/src
/$(MSIM_HELENOS_ARCH_DIR
)/input.c
47 MSIM_EXTRA_SOURCES
:= $(addprefix $(MSIM_HELENOS_ARCH_DIR
)/,$(MSIM_HELENOS_PLATFORM_FILES
))
53 .PHONY
: all clean unpack-tarball
56 rm -rf msim Makefile.depend
* *.map
*.disasm
$(MSIM_TARBALL
) $(MSIM_DIST
)
58 $(BINARY
): $(MSIM_DIST
)/src
/msim
61 # Run make in MSIM src directory
62 $(MSIM_DIST
)/src
/msim
: $(MSIM_PATCHED_FILES
) $(MSIM_DIST
)/src
/Makefile.sources Makefile
63 cd
$(MSIM_DIST
)/src
; make
-f
$(MSIM_HELENOS_MAKEFILE
) USPACE_PREFIX
=..
/..
/$(USPACE_PREFIX
)
65 # Copy HelenOS specific files
66 $(MSIM_DIST
)/config.h
: config.h.msim | unpack-tarball
69 $(MSIM_DIST
)/src
/$(MSIM_HELENOS_ARCH_DIR
)/helenos.h
: arch_helenos
/helenos.h | unpack-tarball
72 $(MSIM_DIST
)/src
/$(MSIM_HELENOS_ARCH_DIR
)/misc.c
: arch_helenos
/misc.c | unpack-tarball
75 $(MSIM_DIST
)/src
/$(MSIM_HELENOS_ARCH_DIR
)/input.c
: arch_helenos
/input.c | unpack-tarball
78 $(MSIM_DIST
)/src
/$(MSIM_HELENOS_MAKEFILE
): $(MSIM_HELENOS_MAKEFILE
) | unpack-tarball
81 # Extract list of sources, remove POSIX/Linux specific
82 $(MSIM_DIST
)/src
/Makefile.sources
: | unpack-tarball
83 cd
$(MSIM_DIST
)/src
; ( \
85 echo
-e
'\t@echo SOURCES = $$(SOURCES)'; cat Makefile.in \
86 ) | make
-f
- | grep
'SOURCES' >Makefile.sources
88 -e
's:io/input.c:$(MSIM_EXTRA_SOURCES):' \
89 -e
's:debug/gdb.c::' \
90 -e
's:arch/posix/stdin.c::' \
91 -i
$(MSIM_DIST
)/src
/Makefile.sources
95 wget
"$(MSIM_MIRROR)$(MSIM_TARBALL)" -O
$(MSIM_TARBALL
)
97 unpack-tarball
: $(MSIM_TARBALL
)
98 tar xjf
$(MSIM_TARBALL
)
99 mkdir
-p
$(MSIM_DIST
)/src
/$(MSIM_HELENOS_ARCH_DIR
)