Szabolcs Nagy | 7889228 | 2018-04-24 17:10:05 +0100 | [diff] [blame] | 1 | # Makefile - requires GNU make |
| 2 | # |
Szabolcs Nagy | 0af9fce | 2019-07-18 10:21:43 +0100 | [diff] [blame^] | 3 | # Copyright (c) 2018-2019, Arm Limited. |
Szabolcs Nagy | 11253b0 | 2018-11-12 11:10:57 +0000 | [diff] [blame] | 4 | # SPDX-License-Identifier: MIT |
Szabolcs Nagy | 7889228 | 2018-04-24 17:10:05 +0100 | [diff] [blame] | 5 | |
| 6 | srcdir = . |
| 7 | prefix = /usr |
| 8 | bindir = $(prefix)/bin |
| 9 | libdir = $(prefix)/lib |
| 10 | includedir = $(prefix)/include |
| 11 | |
Szabolcs Nagy | 0af9fce | 2019-07-18 10:21:43 +0100 | [diff] [blame^] | 12 | # Build targets |
| 13 | ALL_OBJS = $(math-objs) |
| 14 | ALL_INCLUDES = $(math-includes) |
| 15 | ALL_LIBS = $(math-libs) |
| 16 | ALL_TOOLS = $(math-tools) |
| 17 | HOST_TOOLS = $(math-host-tools) |
Szabolcs Nagy | 7889228 | 2018-04-24 17:10:05 +0100 | [diff] [blame] | 18 | |
| 19 | # Configure these in config.mk, do not make changes in this file. |
| 20 | HOST_CC = cc |
Szabolcs Nagy | a202746 | 2018-07-27 11:14:11 +0100 | [diff] [blame] | 21 | HOST_CFLAGS = -std=c99 -O2 |
| 22 | HOST_LDFLAGS = |
Szabolcs Nagy | 0af9fce | 2019-07-18 10:21:43 +0100 | [diff] [blame^] | 23 | HOST_LDLIBS = |
Szabolcs Nagy | 7889228 | 2018-04-24 17:10:05 +0100 | [diff] [blame] | 24 | EMULATOR = |
| 25 | CFLAGS = -std=c99 -O2 |
| 26 | LDFLAGS = |
Szabolcs Nagy | 0af9fce | 2019-07-18 10:21:43 +0100 | [diff] [blame^] | 27 | LDLIBS = |
Szabolcs Nagy | 7889228 | 2018-04-24 17:10:05 +0100 | [diff] [blame] | 28 | CPPFLAGS = |
| 29 | AR = $(CROSS_COMPILE)ar |
| 30 | RANLIB = $(CROSS_COMPILE)ranlib |
| 31 | INSTALL = install |
| 32 | |
Szabolcs Nagy | 0af9fce | 2019-07-18 10:21:43 +0100 | [diff] [blame^] | 33 | CFLAGS_ALL = -Ibuild/include $(CPPFLAGS) $(CFLAGS) |
Szabolcs Nagy | 7889228 | 2018-04-24 17:10:05 +0100 | [diff] [blame] | 34 | LDFLAGS_ALL = $(LDFLAGS) |
| 35 | |
Szabolcs Nagy | 0af9fce | 2019-07-18 10:21:43 +0100 | [diff] [blame^] | 36 | all: |
| 37 | |
Szabolcs Nagy | 7889228 | 2018-04-24 17:10:05 +0100 | [diff] [blame] | 38 | -include config.mk |
| 39 | |
Szabolcs Nagy | 0af9fce | 2019-07-18 10:21:43 +0100 | [diff] [blame^] | 40 | include math/Dir.mk |
| 41 | |
| 42 | all: all-math |
Szabolcs Nagy | 7889228 | 2018-04-24 17:10:05 +0100 | [diff] [blame] | 43 | |
Szabolcs Nagy | c5a8042 | 2018-07-11 10:01:24 +0100 | [diff] [blame] | 44 | DIRS = $(dir $(ALL_LIBS) $(ALL_TOOLS) $(ALL_OBJS) $(ALL_INCLUDES)) |
Szabolcs Nagy | 7889228 | 2018-04-24 17:10:05 +0100 | [diff] [blame] | 45 | ALL_DIRS = $(sort $(DIRS:%/=%)) |
| 46 | |
Szabolcs Nagy | c5a8042 | 2018-07-11 10:01:24 +0100 | [diff] [blame] | 47 | $(ALL_LIBS) $(ALL_TOOLS) $(ALL_OBJS) $(ALL_OBJS:%.o=%.os) $(ALL_INCLUDES): | $(ALL_DIRS) |
Szabolcs Nagy | 7889228 | 2018-04-24 17:10:05 +0100 | [diff] [blame] | 48 | |
| 49 | $(ALL_DIRS): |
| 50 | mkdir -p $@ |
| 51 | |
| 52 | $(ALL_OBJS:%.o=%.os): CFLAGS_ALL += -fPIC |
| 53 | |
Szabolcs Nagy | 7889228 | 2018-04-24 17:10:05 +0100 | [diff] [blame] | 54 | build/%.o: $(srcdir)/%.S |
| 55 | $(CC) $(CFLAGS_ALL) -c -o $@ $< |
| 56 | |
| 57 | build/%.o: $(srcdir)/%.c |
| 58 | $(CC) $(CFLAGS_ALL) -c -o $@ $< |
| 59 | |
| 60 | build/%.os: $(srcdir)/%.S |
| 61 | $(CC) $(CFLAGS_ALL) -c -o $@ $< |
| 62 | |
| 63 | build/%.os: $(srcdir)/%.c |
| 64 | $(CC) $(CFLAGS_ALL) -c -o $@ $< |
| 65 | |
Szabolcs Nagy | 7889228 | 2018-04-24 17:10:05 +0100 | [diff] [blame] | 66 | clean: |
| 67 | rm -rf build |
| 68 | |
| 69 | distclean: clean |
| 70 | rm -f config.mk |
| 71 | |
| 72 | $(DESTDIR)$(bindir)/%: build/bin/% |
| 73 | $(INSTALL) -D $< $@ |
| 74 | |
| 75 | $(DESTDIR)$(libdir)/%.so: build/lib/%.so |
| 76 | $(INSTALL) -D $< $@ |
| 77 | |
| 78 | $(DESTDIR)$(libdir)/%: build/lib/% |
| 79 | $(INSTALL) -m 644 -D $< $@ |
| 80 | |
| 81 | $(DESTDIR)$(includedir)/%: build/include/% |
| 82 | $(INSTALL) -m 644 -D $< $@ |
| 83 | |
| 84 | install-tools: $(ALL_TOOLS:build/bin/%=$(DESTDIR)$(bindir)/%) |
| 85 | |
| 86 | install-libs: $(ALL_LIBS:build/lib/%=$(DESTDIR)$(libdir)/%) |
| 87 | |
| 88 | install-headers: $(ALL_INCLUDES:build/include/%=$(DESTDIR)$(includedir)/%) |
| 89 | |
| 90 | install: install-libs install-headers |
| 91 | |
Szabolcs Nagy | 0af9fce | 2019-07-18 10:21:43 +0100 | [diff] [blame^] | 92 | check: check-math |
Szabolcs Nagy | 7889228 | 2018-04-24 17:10:05 +0100 | [diff] [blame] | 93 | |
Szabolcs Nagy | 0af9fce | 2019-07-18 10:21:43 +0100 | [diff] [blame^] | 94 | .PHONY: all clean distclean install install-tools install-libs install-headers check |