Skip to content

Instantly share code, notes, and snippets.

@bacek
Created March 6, 2012 11:25
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save bacek/1985777 to your computer and use it in GitHub Desktop.
Save bacek/1985777 to your computer and use it in GitHub Desktop.
nqp makefile change proposal
diff --git a/src/ops/nqp.ops b/src/ops/nqp.ops
index a6ef86c..e50d8fb 100755
--- a/src/ops/nqp.ops
+++ b/src/ops/nqp.ops
@@ -6,12 +6,12 @@ BEGIN_OPS_PREAMBLE
#include "parrot/dynext.h"
/* 6modely includes. */
-#include "../6model/sixmodelobject.h"
-#include "../6model/repr_registry.h"
-#include "../6model/serialization_context.h"
-#include "../guts/multi_dispatch.h"
-#include "../pmc/pmc_dispatchersub.h"
-#include "../pmc/pmc_nqplexinfo.h"
+#include "6model/sixmodelobject.h"
+#include "6model/repr_registry.h"
+#include "6model/serialization_context.h"
+#include "guts/multi_dispatch.h"
+#include "pmc/pmc_dispatchersub.h"
+#include "pmc/pmc_nqplexinfo.h"
#include "pmc_sub.h"
/* SHA1 algorithm. */
diff --git a/tools/build/Makefile.in b/tools/build/Makefile.in
index 230720d..5b6c7e4 100644
--- a/tools/build/Makefile.in
+++ b/tools/build/Makefile.in
@@ -191,13 +191,13 @@ METAMODEL_SOURCE = src/6model/sixmodelobject.h src/6model/sixmodelobject.c \
src/6model/serialization.h src/guts/multi_dispatch.h \
src/guts/multi_dispatch.c src/6model/base64.c src/6model/base64.h \
-METAMODEL_OBJS = ../6model/sixmodelobject$(O) ../6model/repr_registry$(O) \
- ../6model/knowhow_bootstrapper$(O) ../6model/reprs/KnowHOWREPR$(O) \
- ../6model/reprs/P6opaque$(O) ../6model/reprs/P6int$(O) \
- ../6model/reprs/P6str$(O) ../6model/reprs/P6num$(O) \
- ../6model/reprs/HashAttrStore$(O) ../6model/reprs/Uninstantiable$(O) \
- ../6model/serialization_context$(O) ../6model/serialization$(O) \
- ../guts/multi_dispatch$(O) ../6model/base64$(O)
+METAMODEL_OBJS = src/6model/sixmodelobject$(O) src/6model/repr_registry$(O) \
+ src/6model/knowhow_bootstrapper$(O) src/6model/reprs/KnowHOWREPR$(O) \
+ src/6model/reprs/P6opaque$(O) src/6model/reprs/P6int$(O) \
+ src/6model/reprs/P6str$(O) src/6model/reprs/P6num$(O) \
+ src/6model/reprs/HashAttrStore$(O) src/6model/reprs/Uninstantiable$(O) \
+ src/6model/serialization_context$(O) src/6model/serialization$(O) \
+ src/guts/multi_dispatch$(O) src/6model/base64$(O)
LIBTOMMATH_BIN = $(TOM)core$(O) \
$(TOM)_error$(O) \
@@ -500,6 +500,30 @@ CLEANUPS = \
3rdparty/sha1/*$(O) \
$(DYNEXT_DIR)/*$(LOAD_EXT) \
+# These need to be above lines that define suffix rules to be portable
+
+.SUFFIXES : .c .S .s .pmc .dump $(O) .str .pir .pbc
+
+.c$(O) : # suffix rule (limited support)
+ $(CC) -I$(PMC_DIR) $(CFLAGS) $(CINCLUDES) $(CC_WARN) -I$(@D) -Isrc/ -o $@ -c $<
+
+.pmc.c : # suffix rule (limited support)
+ $(PMC2C) --no-lines --dump $(PMC2C_INCLUDES) $<
+ $(PMC2C) --no-lines --c $(PMC2C_INCLUDES) $<
+
+$(PMC_DIR)/pmc_stable.h: $(PMC_DIR)/stable.c
+
+$(PMC_DIR)/pmc_sixmodelobject.h: $(PMC_DIR)/sixmodelobject.c
+
+$(PMC_DIR)/pmc_dispatchersub.h: $(PMC_DIR)/dispatchersub.c
+
+$(PMC_DIR)/pmc_nqplexinfo.h: $(PMC_DIR)/nqplexinfo.c
+
+$(PMC_DIR)/pmc_nqplexpad.h: $(PMC_DIR)/nqplexpad.c
+
+$(PMC_DIR)/pmc_serializationcontext.h: $(PMC_DIR)/serializationcontext.c
+
+
all: $(NQP_EXE) qregex
install: all
@@ -682,25 +706,16 @@ $(DYNPMC): $(PMC_SOURCES) $(METAMODEL_SOURCE)
cd $(PMC_DIR) && $(CC) -c $(CINCLUDES) -I../../3rdparty/libtommath $(CFLAGS) *.c
$(LD) @ld_out@$(DYNPMC) $(GROUP)$(O) src/pmc/*$(O) $(LINKARGS)
-$(OPS_DIR)/$(OPS)$(LOAD_EXT): $(OPS_DIR)/$(OPS_SOURCE) $(DYNPMC)
- cd $(OPS_DIR) && $(OPS2C) C --dynamic $(OPS_SOURCE)
- cd $(OPS_DIR) && $(CC) -c @cc_o_out@$(OPS)$(O) $(CINCLUDES) $(CFLAGS) $(OPS).c
- cd src/6model && $(CC) -c @cc_o_out@sixmodelobject$(O) -I../../$(PMC_DIR) $(CINCLUDES) $(CFLAGS) sixmodelobject.c
- cd src/6model && $(CC) -c @cc_o_out@repr_registry$(O) -I../../$(PMC_DIR) $(CINCLUDES) $(CFLAGS) repr_registry.c
- cd src/6model && $(CC) -c @cc_o_out@knowhow_bootstrapper$(O) -I../../$(PMC_DIR) $(CINCLUDES) $(CFLAGS) knowhow_bootstrapper.c
- cd src/6model/reprs && $(CC) -c @cc_o_out@KnowHOWREPR$(O) -I../../../$(PMC_DIR) $(CINCLUDES) $(CFLAGS) KnowHOWREPR.c
- cd src/6model/reprs && $(CC) -c @cc_o_out@P6opaque$(O) -I../../../$(PMC_DIR) $(CINCLUDES) $(CFLAGS) P6opaque.c
- cd src/6model/reprs && $(CC) -c @cc_o_out@P6int$(O) -I../../../$(PMC_DIR) $(CINCLUDES) $(CFLAGS) P6int.c
- cd src/6model/reprs && $(CC) -c @cc_o_out@P6str$(O) -I../../../$(PMC_DIR) $(CINCLUDES) $(CFLAGS) P6str.c
- cd src/6model/reprs && $(CC) -c @cc_o_out@P6num$(O) -I../../../$(PMC_DIR) $(CINCLUDES) $(CFLAGS) P6num.c
- cd src/6model/reprs && $(CC) -c @cc_o_out@HashAttrStore$(O) -I../../../$(PMC_DIR) $(CINCLUDES) $(CFLAGS) HashAttrStore.c
- cd src/6model/reprs && $(CC) -c @cc_o_out@Uninstantiable$(O) -I../../../$(PMC_DIR) $(CINCLUDES) $(CFLAGS) Uninstantiable.c
- cd src/6model && $(CC) -c @cc_o_out@serialization_context$(O) -I../../$(PMC_DIR) $(CINCLUDES) $(CFLAGS) serialization_context.c
- cd src/6model && $(CC) -c @cc_o_out@serialization$(O) -I../../$(PMC_DIR) $(CINCLUDES) $(CFLAGS) serialization.c
- cd src/6model && $(CC) -c @cc_o_out@base64$(O) -I../../$(PMC_DIR) $(CINCLUDES) $(CFLAGS) base64.c
- cd src/guts && $(CC) -c @cc_o_out@multi_dispatch$(O) -I../../$(PMC_DIR) $(CINCLUDES) $(CFLAGS) multi_dispatch.c
+$(OPS_DIR)/$(OPS).c: $(OPS_DIR)/$(OPS_SOURCE)
+ $(OPS2C) --dynamic $(OPS_DIR)/$(OPS_SOURCE)
+
+$(OPS_DIR)/$(OPS)$(O): $(OPS_DIR)/$(OPS).c $(PMC_DIR)/pmc_dispatchersub.h $(PMC_DIR)/pmc_nqplexinfo.h
+
+$(OPS_DIR)/$(OPS)$(LOAD_EXT): $(OPS_DIR)/$(OPS).o $(DYNPMC) $(METAMODEL_OBJS)
+ #cd $(OPS_DIR) && $(CC) -c @cc_o_out@$(OPS)$(O) $(CINCLUDES) $(CFLAGS) $(OPS).c
+ #cd src/guts && $(CC) -c @cc_o_out@multi_dispatch$(O) -I../../$(PMC_DIR) $(CINCLUDES) $(CFLAGS) multi_dispatch.c
cd 3rdparty/sha1 && $(CC) -c @cc_o_out@sha1$(O) $(CINCLUDES) $(CFLAGS) sha1.c
- cd $(OPS_DIR) && $(LD) @ld_out@$(OPS)$(LOAD_EXT) $(OPS)$(O) $(METAMODEL_OBJS) ../../3rdparty/sha1/sha1$(O) $(LINKARGS)
+ $(LD) @ld_out@$(OPS_DIR)/$(OPS)$(LOAD_EXT) $(OPS_DIR)/$(OPS)$(O) $(METAMODEL_OBJS) 3rdparty/sha1/sha1$(O) $(LINKARGS)
3rdparty/libtommath/bncore$(O): 3rdparty/libtommath/bncore.c $(LIBTOMMATH_H)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment