source: mainline/uspace/app/msim/Makefile@ 75baf6e

lfn serial ticket/834-toolchain-update topic/msim-upgrade topic/simplify-dev-export
Last change on this file since 75baf6e was 6efb4d2, checked in by Vojtech Horky <vojtechhorky@…>, 13 years ago

Reorganize HelenOS specific files for MSIM

  • Property mode set to 100644
File size: 3.5 KB
Line 
1#
2# Copyright (c) 2012 Vojtech Horky
3# All rights reserved.
4#
5# Redistribution and use in source and binary forms, with or without
6# modification, are permitted provided that the following conditions
7# are met:
8#
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.
16#
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.
27#
28
29USPACE_PREFIX = ../..
30BINARY = msim
31
32MSIM_VERSION = 1.3.8.1
33MSIM_DIST = msim-$(MSIM_VERSION)
34MSIM_TARBALL = $(MSIM_DIST).tar.bz2
35MSIM_MIRROR = http://d3s.mff.cuni.cz/~holub/sw/msim/
36
37MSIM_HELENOS_MAKEFILE = Makefile.msim.src
38MSIM_HELENOS_PLATFORM_FILES = misc.c input.c
39MSIM_HELENOS_ARCH_DIR = arch/helenos
40MSIM_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
46
47MSIM_EXTRA_SOURCES := $(addprefix $(MSIM_HELENOS_ARCH_DIR)/,$(MSIM_HELENOS_PLATFORM_FILES))
48
49CP = /bin/cp -f
50
51all: $(BINARY)
52
53.PHONY: all clean unpack-tarball
54
55clean:
56 rm -rf msim Makefile.depend* *.map *.disasm $(MSIM_TARBALL) $(MSIM_DIST)
57
58$(BINARY): $(MSIM_DIST)/src/msim
59 $(CP) $< $@
60
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)
64
65# Copy HelenOS specific files
66$(MSIM_DIST)/config.h: config.h.msim | unpack-tarball
67 $(CP) $< $@
68
69$(MSIM_DIST)/src/$(MSIM_HELENOS_ARCH_DIR)/helenos.h: arch_helenos/helenos.h | unpack-tarball
70 $(CP) $< $@
71
72$(MSIM_DIST)/src/$(MSIM_HELENOS_ARCH_DIR)/misc.c: arch_helenos/misc.c | unpack-tarball
73 $(CP) $< $@
74
75$(MSIM_DIST)/src/$(MSIM_HELENOS_ARCH_DIR)/input.c: arch_helenos/input.c | unpack-tarball
76 $(CP) $< $@
77
78$(MSIM_DIST)/src/$(MSIM_HELENOS_MAKEFILE): $(MSIM_HELENOS_MAKEFILE) | unpack-tarball
79 $(CP) $< $@
80
81# Extract list of sources, remove POSIX/Linux specific
82$(MSIM_DIST)/src/Makefile.sources: | unpack-tarball
83 cd $(MSIM_DIST)/src; ( \
84 echo 'all__:'; \
85 echo -e '\t@echo SOURCES = $$(SOURCES)'; cat Makefile.in \
86 ) | make -f - | grep 'SOURCES' >Makefile.sources
87 sed \
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
92
93# Download tarball
94$(MSIM_TARBALL):
95 wget "$(MSIM_MIRROR)$(MSIM_TARBALL)" -O $(MSIM_TARBALL)
96
97unpack-tarball: $(MSIM_TARBALL)
98 tar xjf $(MSIM_TARBALL)
99 mkdir -p $(MSIM_DIST)/src/$(MSIM_HELENOS_ARCH_DIR)
Note: See TracBrowser for help on using the repository browser.