This repository has been archived by the owner on Jun 9, 2018. It is now read-only.
/
pmc.in
127 lines (105 loc) · 3.28 KB
/
pmc.in
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
## $Id$
# values from parrot_config
VERSION_DIR := @versiondir@
INCLUDE_DIR := @includedir@$(VERSION_DIR)
LIB_DIR := @libdir@$(VERSION_DIR)
SRC_DIR := @srcdir@$(VERSION_DIR)
TOOLS_DIR := @libdir@$(VERSION_DIR)/tools/lib
#STAGING_DIR := ../../dynext
STAGING_DIR := @build_dir@/runtime/parrot/dynext
#INSTALL_DIR := $(LIB_DIR)/languages/wmlscript2/dynext
INSTALL_DIR := $(LIB_DIR)/dynext
# Set up extensions
LOAD_EXT := @load_ext@
O := @o@
# Setup some commands
PERL := @perl@
RM_F := @rm_f@
CHMOD := @chmod@
CP := @cp@
CC := @cc@ -c
LD := @ld@
LDFLAGS := @ldflags@ @ld_debug@
LD_LOAD_FLAGS := @ld_load_flags@
CFLAGS := @ccflags@ @cc_shared@ @cc_debug@ @ccwarn@ @cc_hasjit@ @cg_flag@ @gc_flag@
CC_OUT := @cc_o_out@
LD_OUT := @ld_out@
#IF(parrot_is_shared):LIBPARROT := @libparrot_ldflags@
#ELSE:LIBPARROT :=
PMC2C_INCLUDES := --include $(SRC_DIR) --include $(SRC_DIR)/pmc
PMC2C := $(PERL) $(LIB_DIR)/tools/build/pmc2c.pl
PMC2CD := $(PMC2C) --dump $(PMC2C_INCLUDES)
PMC2CC := $(PMC2C) --c $(PMC2C_INCLUDES)
INCLUDES := -I$(INCLUDE_DIR) -I$(INCLUDE_DIR)/pmc
LINKARGS := $(LDFLAGS) $(LD_LOAD_FLAGS) $(LIBPARROT)
PMC_SOURCES := \
wmlsinteger.pmc \
wmlsfloat.pmc \
wmlsstring.pmc \
wmlsboolean.pmc \
wmlsinvalid.pmc \
wmlsbytecode.pmc
WMLSCRIPT_GROUP := wmls_group
OBJS := \
lib-$(WMLSCRIPT_GROUP)$(O) \
wmlsinteger$(O) \
wmlsfloat$(O) \
wmlsstring$(O) \
wmlsboolean$(O) \
wmlsinvalid$(O) \
wmlsbytecode$(O)
CLEANUPS := \
"*$(LOAD_EXT)" \
"*$(O)" \
"*.c" \
"*.h" \
"*.dump" \
#IF(win32): "*.exp" \
#IF(win32): "*.ilk" \
#IF(win32): "*.manifext" \
#IF(win32): "*.pdb" \
#IF(win32): "*.lib" \
$(STAGING_DIR)/$(WMLSCRIPT2_GROUP)$(LOAD_EXT)
all: staging
generate: $(PMC_SOURCES)
$(PMC2CD) wmlsinteger.pmc
$(PMC2CD) wmlsfloat.pmc
$(PMC2CD) wmlsstring.pmc
$(PMC2CD) wmlsboolean.pmc
$(PMC2CD) wmlsinvalid.pmc
$(PMC2CD) wmlsbytecode.pmc
$(PMC2CC) wmlsinteger.pmc
$(PMC2CC) wmlsfloat.pmc
$(PMC2CC) wmlsstring.pmc
$(PMC2CC) wmlsboolean.pmc
$(PMC2CC) wmlsinvalid.pmc
$(PMC2CC) wmlsbytecode.pmc
$(PMC2C) --library $(WMLSCRIPT_GROUP) --c $(PMC_SOURCES)
compile: generate
$(CC) $(CC_OUT) wmlsinteger$(O) $(INCLUDES) $(CFLAGS) wmlsinteger.c
$(CC) $(CC_OUT) wmlsfloat$(O) $(INCLUDES) $(CFLAGS) wmlsfloat.c
$(CC) $(CC_OUT) wmlsstring$(O) $(INCLUDES) $(CFLAGS) wmlsstring.c
$(CC) $(CC_OUT) wmlsboolean$(O) $(INCLUDES) $(CFLAGS) wmlsboolean.c
$(CC) $(CC_OUT) wmlsinvalid$(O) $(INCLUDES) $(CFLAGS) wmlsinvalid.c
$(CC) $(CC_OUT) wmlsbytecode$(O) $(INCLUDES) $(CFLAGS) wmlsbytecode.c
$(CC) $(CC_OUT) lib-$(WMLSCRIPT_GROUP)$(O) $(INCLUDES) $(CFLAGS) $(WMLSCRIPT_GROUP).c
linklibs: compile
$(LD) $(LD_OUT) $(WMLSCRIPT_GROUP)$(LOAD_EXT) $(OBJS) $(LINKARGS)
staging: linklibs
#IF(cygwin or hpux): CHMOD 0775 "*$(LOAD_EXT)"
$(CP) "*$(LOAD_EXT)" $(STAGING_DIR)
install:
#IF(cygwin or hpux): CHMOD 0775 "*$(LOAD_EXT)"
$(CP) "*$(LOAD_EXT)" $(INSTALL_DIR)
uninstall:
$(RM_F) $(INSTALL_DIR)/$(WMLSCRIPT_GROUP)$(LOAD_EXT)
Makefile: ../../config/makefiles/pmc.in
cd ../.. && $(PERL) Configure.pl
clean:
$(RM_F) $(CLEANUPS)
realclean:
$(RM_F) $(CLEANUPS) Makefile
# Local variables:
# mode: makefile
# End:
# vim: ft=make: