Skip to content

Commit 768bd3d

Browse files
authored
Merge pull request #1 from eldesh/import/smlsharp3.6.0
Import/smlsharp 3.6.0
2 parents 99ef795 + cdc606f commit 768bd3d

File tree

126 files changed

+1263
-1370
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

126 files changed

+1263
-1370
lines changed

.gitignore

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
# depend
2+
*.d
3+
# object
4+
*.o
5+
# compilation manager for sml/nj
6+
.cm/

Makefile

+69-19
Original file line numberDiff line numberDiff line change
@@ -5,32 +5,82 @@
55
#
66
####################################################################################
77

8-
SUBDIR = src/main
8+
SMLSHARP_ENV ?= SMLSHARP_HEAPSIZE=128M:1G
9+
SMLSHARP := smlsharp
10+
SMLDOC := smldoc
911

10-
.PHONY: $(SUBDIR) doc
12+
## search directories
13+
VROOT := .
14+
VPATH := $(VROOT):$(VROOT)/src/main
15+
INCDIR := $(subst :, ,$(VPATH))
1116

12-
all: $(SUBDIR)
17+
## compile options
18+
SMLFLAGS := $(patsubst %,-I%,$(INCDIR))
1319

14-
$(SUBDIR):
15-
$(MAKE) -C $@
20+
## source code
21+
SRCS := $(wildcard src/main/*.sml)
22+
23+
## object file
24+
OBJS := $(SRCS:.sml=.o)
25+
TARGETS := $(OBJS)
26+
27+
# documents
28+
SMLDOC_ARGFILE := src/smldoc.cfg
29+
DOCDIR := doc/api
30+
31+
32+
all: $(OBJS)
33+
34+
35+
## .o type rules
36+
%.o: %.sml
37+
@echo " SML# [$(notdir $@)]"
38+
@$(SMLSHARP_ENV) $(SMLSHARP) $(SMLFLAGS) -o $@ -c $<
39+
40+
41+
## SML depends
42+
%.d: %.sml
43+
@echo " GEN [$(notdir $@)]"
44+
@$(SHELL) -ec '$(SMLSHARP_ENV) $(SMLSHARP) -MM $(SMLFLAGS) $< \
45+
| sed "s|\($*\)\.o[ :]*|\1.o $@ : |g" > $@; \
46+
[ -s $@ ] || rm -rf $@'
47+
48+
49+
ifeq (,$(findstring $(MAKECMDGOALS),clean))
50+
## include generated dependence
51+
include $(filter %.d,$(SRCS:.sml=.d))
52+
endif
53+
54+
.PHONY: test
55+
test: $(OBJS)
56+
$(MAKE) -C src/test
57+
./src/test/testExec
58+
$(MAKE) -C basis/test
59+
./basis/test/testExec
60+
61+
62+
.PHONY: example
63+
example: $(OBJS)
64+
$(MAKE) -C example
65+
./example/testExec
66+
67+
68+
.PHONY: doc
69+
doc: $(DOCDIR)
70+
@echo " Doc [$(DOCDIR)]"
71+
@$(SMLDOC) -a $(SMLDOC_ARGFILE) -d "$(DOCDIR)" -t "SMLUnit"
1672

17-
#
18-
# generate documents...
19-
# ---------------------------------------------------------------------------------
20-
SMLDOC_ARGFILE = src/smldoc.cfg
21-
SMLDOC = smldoc
22-
DOCDIR = doc/api
2373

24-
doc:
25-
@echo "generate documents..."
26-
@mkdir -p $(DOCDIR);
27-
@$(SHELL) -ec ' \
28-
$(SMLDOC) -a $(SMLDOC_ARGFILE) -d "$(DOCDIR)" -t "SMLUnit"; \
29-
exit 0'
74+
$(DOCDIR):
75+
@mkdir -p $(DOCDIR)
3076

3177

3278
.PHONY: clean
3379
clean:
34-
$(MAKE) -C $(SUBDIR) $@
35-
rm -rf $(DOCDIR)
80+
-$(RM) -r $(TARGETS)
81+
-$(RM) -r $(SRCS:.sml=.d)
82+
-$(RM) -r $(DOCDIR)
83+
$(MAKE) -C src/test clean
84+
$(MAKE) -C example clean
85+
$(MAKE) -C basis/test clean
3686

Makefile.in

-49
This file was deleted.

0 commit comments

Comments
 (0)