File: Makefile

package info (click to toggle)
simavr 1.6%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 20,268 kB
  • sloc: ansic: 362,806; makefile: 622; ruby: 70; python: 63
file content (68 lines) | stat: -rw-r--r-- 2,080 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#	Copyright 2014,2017 Doug Szumski <d.s.szumski@gmail.com>
#	Copyright 2008-2011 Michel Pollet <buserror@gmail.com>
#
#	This file is part of simavr.
#
#	simavr is free software: you can redistribute it and/or modify
#	it under the terms of the GNU General Public License as published by
#	the Free Software Foundation, either version 3 of the License, or
#	(at your option) any later version.
#
#	simavr is distributed in the hope that it will be useful,
#	but WITHOUT ANY WARRANTY; without even the implied warranty of
#	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#	GNU General Public License for more details.
#
#	You should have received a copy of the GNU General Public License
#	along with simavr.  If not, see <http://www.gnu.org/licenses/>.

EXTRA_LDFLAGS += -lsimavr -lpthread -lGL -lutil
simavr = ../../
IPATH += ${simavr}/simavr/sim

target := libsimavrparts

all: obj ${target}

include ${simavr}/Makefile.common

files := $(wildcard *.c)

# Unless the VHCI_USB env var is set, don't build this because it requires
# a supporting library to be installed. See examples/extra_board_usb/README
# for details on how to build it.
ifndef VHCI_USB
	files := $(filter-out %vhci_usb.c, $(files))
endif

${OBJ}/parts.deps: $(files)
	if [ ! -d "${OBJ}" ] ; then mkdir -p "${OBJ}"; fi; \
	for file in $$(echo $^ | LC_ALL=C sort) ; do \
	  objst=$${file%.c}.sto; \
	  obj=$${file%.c}.o; \
	  printf "\$${OBJ}/\$${target}.a: \$${OBJ}/$$objst\n">>${OBJ}/parts.deps.tmp ; \
	  printf "\$${OBJ}/\$${target}.so.1: \$${OBJ}/$$obj\n">>${OBJ}/parts.deps.tmp ; \
	done ; \
	mv ${OBJ}/parts.deps.tmp ${OBJ}/parts.deps

#
# Static library
#
${target}: ${OBJ}/${target}.a
#
# Shared library (Linux only)
#
${target}: ${OBJ}/${target}.so

${OBJ}/libsimavrparts.so.1:
	${E}$(CC) -o $@ -shared \
		-Wl,-soname,libsimavrparts.so.1 $^ \
		${filter-out -l%, $(LDFLAGS)} ${EXTRA_LDFLAGS}

${OBJ}/libsimavrparts.so: ${OBJ}/libsimavrparts.so.1
	ln -sf ${notdir $<} $@

clean: clean-${OBJ}
	rm -rf *.hex *.a *.axf *.vcd .*.swo .*.swp .*.swm .*.swn *.so *.o

-include ${OBJ}/parts.deps