summaryrefslogtreecommitdiffstatshomepage
path: root/py
diff options
context:
space:
mode:
authorDamien George <damien.p.george@gmail.com>2014-04-17 18:03:27 +0100
committerDamien George <damien.p.george@gmail.com>2014-04-17 18:03:27 +0100
commitd553be5982722fc5ee5240fbfb15697849881ced (patch)
tree4312b491aaee255ed7d8dbffe74f79011de1c426 /py
parent2d1f865d16c5a7e27f5e46c96d087a7ff8a49012 (diff)
downloadmicropython-d553be5982722fc5ee5240fbfb15697849881ced.tar.gz
micropython-d553be5982722fc5ee5240fbfb15697849881ced.zip
build: Simplify build directory layout by putting all headers in genhdr.
Any generated headers go in $(BUILD)/genhdr/, and are #included as 'genhdr/xxx.h'.
Diffstat (limited to 'py')
-rw-r--r--py/mkrules.mk9
-rw-r--r--py/py.mk18
-rw-r--r--py/qstr.c2
-rw-r--r--py/qstr.h2
4 files changed, 13 insertions, 18 deletions
diff --git a/py/mkrules.mk b/py/mkrules.mk
index 63a98a8ec6..9592d6c590 100644
--- a/py/mkrules.mk
+++ b/py/mkrules.mk
@@ -51,24 +51,21 @@ $(BUILD)/%.pp: %.c
# The following rule uses | to create an order only prereuisite. Order only
# prerequisites only get built if they don't exist. They don't cause timestamp
-# checkng to be performed.
+# checking to be performed.
#
# $(sort $(var)) removes duplicates
#
# The net effect of this, is it causes the objects to depend on the
-# object directories (but only for existance), and the object directories
+# object directories (but only for existence), and the object directories
# will be created if they don't exist.
OBJ_DIRS = $(sort $(dir $(OBJ)))
-$(OBJ): $(HEADER_PY_BUILD)/qstrdefs.generated.h | $(OBJ_DIRS)
+$(OBJ): $(HEADER_BUILD)/qstrdefs.generated.h | $(OBJ_DIRS)
$(OBJ_DIRS):
$(MKDIR) -p $@
$(HEADER_BUILD):
$(MKDIR) -p $@
-$(HEADER_PY_BUILD):
- $(MKDIR) -p $@
-
ifneq ($(PROG),)
# Build a standalone executable (unix and unix-cpy do this)
diff --git a/py/py.mk b/py/py.mk
index 01a5fd1c2b..dd6ddd0b35 100644
--- a/py/py.mk
+++ b/py/py.mk
@@ -2,10 +2,7 @@
PY_BUILD = $(BUILD)/py
# where autogenerated header files go
-HEADER_BUILD = $(BUILD)/includes/build
-
-# where autogenerated py header files go
-HEADER_PY_BUILD = $(HEADER_BUILD)/py
+HEADER_BUILD = $(BUILD)/genhdr
# file containing qstr defs for the core Python bit
PY_QSTR_DEFS = $(PY_SRC)/qstrdefs.h
@@ -105,25 +102,26 @@ PY_O = $(addprefix $(PY_BUILD)/, $(PY_O_BASENAME))
FORCE:
.PHONY: FORCE
-$(HEADER_PY_BUILD)/py-version.h: FORCE
+$(HEADER_BUILD)/py-version.h: FORCE
$(Q)$(PY_SRC)/py-version.sh > $@.tmp
$(Q)if [ -f "$@" ] && cmp -s $@ $@.tmp; then rm $@.tmp; else echo "Generating $@"; mv $@.tmp $@; fi
# qstr data
-# Adding an order only dependency on $(HEADER_PY_BUILD) causes $(HEADER_PY_BUILD) to get
+# Adding an order only dependency on $(HEADER_BUILD) causes $(HEADER_BUILD) to get
# created before we run the script to generate the .h
-$(HEADER_PY_BUILD)/qstrdefs.generated.h: $(PY_QSTR_DEFS) $(QSTR_DEFS) $(PY_SRC)/makeqstrdata.py mpconfigport.h $(PY_SRC)/mpconfig.h | $(HEADER_PY_BUILD)
+$(HEADER_BUILD)/qstrdefs.generated.h: $(PY_QSTR_DEFS) $(QSTR_DEFS) $(PY_SRC)/makeqstrdata.py mpconfigport.h $(PY_SRC)/mpconfig.h | $(HEADER_BUILD)
+ $(ECHO) "CPP $<"
+ $(Q)$(CPP) $(CFLAGS) $(PY_QSTR_DEFS) -o $(HEADER_BUILD)/qstrdefs.preprocessed.h
$(ECHO) "makeqstrdata $(PY_QSTR_DEFS) $(QSTR_DEFS)"
- $(CPP) $(CFLAGS) $(PY_QSTR_DEFS) -o $(HEADER_PY_BUILD)/qstrdefs.preprocessed.h
- $(Q)$(PYTHON) $(PY_SRC)/makeqstrdata.py $(HEADER_PY_BUILD)/qstrdefs.preprocessed.h $(QSTR_DEFS) > $@
+ $(Q)$(PYTHON) $(PY_SRC)/makeqstrdata.py $(HEADER_BUILD)/qstrdefs.preprocessed.h $(QSTR_DEFS) > $@
# We don't know which source files actually need the generated.h (since
# it is #included from str.h). The compiler generated dependencies will cause
# the right .o's to get recompiled if the generated.h file changes. Adding
# an order-only dependendency to all of the .o's will cause the generated .h
# to get built before we try to compile any of them.
-$(PY_O): | $(HEADER_PY_BUILD)/qstrdefs.generated.h $(HEADER_PY_BUILD)/py-version.h
+$(PY_O): | $(HEADER_BUILD)/qstrdefs.generated.h $(HEADER_BUILD)/py-version.h
# emitters
diff --git a/py/qstr.c b/py/qstr.c
index 2b14065fa6..f9f63da391 100644
--- a/py/qstr.c
+++ b/py/qstr.c
@@ -60,7 +60,7 @@ const static qstr_pool_t const_pool = {
(const byte*) "\0\0\0\0", // invalid/no qstr has empty data
(const byte*) "\0\0\0\0", // empty qstr
#define Q(id, str) str,
-#include "build/py/qstrdefs.generated.h"
+#include "genhdr/qstrdefs.generated.h"
#undef Q
},
};
diff --git a/py/qstr.h b/py/qstr.h
index 6bcb1707fb..7cb6ae2e98 100644
--- a/py/qstr.h
+++ b/py/qstr.h
@@ -8,7 +8,7 @@ enum {
MP_QSTR_NULL = 0, // indicates invalid/no qstr
MP_QSTR_ = 1, // the empty qstr
#define Q(id, str) MP_QSTR_##id,
-#include "build/py/qstrdefs.generated.h"
+#include "genhdr/qstrdefs.generated.h"
#undef Q
MP_QSTR_number_of,
};