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
|