adding missing file - oops
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
diff --git a/builds/exports.mk b/builds/exports.mk
new file mode 100644
index 0000000..239ccaf
--- /dev/null
+++ b/builds/exports.mk
@@ -0,0 +1,53 @@
+# this sub-Makefile is used to compute the list of exported symbols whenever
+# the EXPORTS_LIST variable is defined by one of the platform or compiler
+# specific build files
+#
+# EXPORTS_LIST contains the name of the "list" file, which can be a Windows
+# .DEF file by the way
+#
+ifneq ($(EXPORTS_LIST),)
+
+ # CCexe is the compiler used to compile the "apinames" tool program
+ # on the host machine. This isn't necessarily the same than the compiler
+ # which can be a cross-compiler for a different architecture
+ #
+ ifeq ($(CCexe),)
+ CCexe := $(CC)
+ endif
+
+ # TE acts as T, but for executables instead of object files
+ ifeq ($(TE),)
+ TE := $T
+ endif
+
+ # the list of public headers we're going to parse
+ PUBLIC_HEADERS := $(wildcard $(PUBLIC_DIR)/*.h)
+
+ # the "apinames" source and executable. We use E as the executable
+ # suffix, which *includes* the final dot
+ # note that $(APINAMES_OPTIONS) is empty, except for Windows compilers
+ #
+ APINAMES_SRC := $(TOP_DIR)/src/tools/apinames.c
+ APINAMES_EXE := $(OBJ_DIR)/apinames$E
+
+ $(APINAMES_EXE): $(APINAMES_SRC)
+ $(CCexe) $(TE)$@ $<
+
+ .PHONY: symbols_list clean_symbols_list clean_apinames
+
+ symbols_list: $(EXPORTS_LIST)
+
+ $(EXPORTS_LIST): $(APINAMES_EXE) $(PUBLIC_HEADERS)
+ $(subst /,$(SEP),$(APINAMES_EXE)) -o$@ $(APINAMES_OPTIONS) $(PUBLIC_HEADERS)
+
+ $(PROJECT_LIBRARY): $(EXPORTS_LIST)
+
+ clean_symbols_list:
+ -$(DELETE) $(subst /,$(SEP),$(EXPORTS_LIST))
+
+ clean_apinames:
+ -$(DELETE) $(subst /,$(SEP),$(APINAMES_EXE))
+
+ clean_project: clean_symbols_list clean_apinames
+
+endif
\ No newline at end of file