History

Merge pull request #310 from Kaiepi/bsd-builds

Fix builds on *BSD

Edwin Brady committed 6 years ago

Commit 61fae5c2 parents cbd88c9 93871c55 files · +64 −74Browse files

Unified · Split

5 files
  1. Makefile +31 −21
  2. dist/Makefile +5 −3
  3. dist/config.mk +16 −25
  4. dist/rts/Makefile +12 −12
  5. libs/network/Makefile +0 −13
Makefile+31−21
@@ -8,7 +8,7 @@ export CC=clang # clang compiles the output much faster than gcc! · 7 unmodified lines
8 8
9##################################################################9##################################################################
10 10
11MACHINE := $(shell $(CC) -dumpmachine)11export MACHINE := $(shell $(CC) -dumpmachine)
12 12
13ifneq (, $(findstring darwin, $(MACHINE)))13ifneq (, $(findstring darwin, $(MACHINE)))
14 OS := darwin14 OS := darwin
@@ -18,9 +18,19 @@ else ifneq (, $(findstring mingw, $(MACHINE))) · 3 unmodified lines
18 OS := windows18 OS := windows
19else ifneq (, $(findstring windows, $(MACHINE)))19else ifneq (, $(findstring windows, $(MACHINE)))
20 OS := windows20 OS := windows
21else ifneq (, $(findstring bsd, $(MACHINE)))
22 OS := bsd
21else23else
22 OS := unix24 OS := linux
23endif25endif
26export OS
27
28ifeq ($(OS),bsd)
29 MAKE := gmake
30else
31 MAKE := make
32endif
33export MAKE
24 34
25# current Idris2 version components35# current Idris2 version components
26MAJOR=036MAJOR=0
@@ -73,7 +83,7 @@ ifeq ($(OS), darwin) · 46 unmodified lines
73else83else
74 @sed -i '1 s|^.*$$|char* idris2_prefix = "${PREFIX}";|' dist/idris2.c84 @sed -i '1 s|^.*$$|char* idris2_prefix = "${PREFIX}";|' dist/idris2.c
75endif85endif
76 make -C dist86 ${MAKE} -C dist
77 @cp dist/idris2 ./idris287 @cp dist/idris2 ./idris2
78 88
79# bit of a hack here, to get the prefix into the generated C!89# bit of a hack here, to get the prefix into the generated C!
@@ -86,42 +96,42 @@ dist/idris2.c: src/YafflePaths.idr check_version · 6 unmodified lines
86 @rm -f idris2.c idris2_prefix.c96 @rm -f idris2.c idris2_prefix.c
87 97
88idris2c: dist/idris2.c98idris2c: dist/idris2.c
89 make -C dist99 ${MAKE} -C dist
90 100
91src/YafflePaths.idr:101src/YafflePaths.idr:
92 echo 'module YafflePaths; export yversion : ((Nat,Nat,Nat), String); yversion = ((${MAJOR},${MINOR},${PATCH}), "${GIT_SHA1}")' > src/YafflePaths.idr102 echo 'module YafflePaths; export yversion : ((Nat,Nat,Nat), String); yversion = ((${MAJOR},${MINOR},${PATCH}), "${GIT_SHA1}")' > src/YafflePaths.idr
93 103
94prelude:104prelude:
95 make -C libs/prelude IDRIS2=../../idris2105 ${MAKE} -C libs/prelude IDRIS2=../../idris2
96 106
97base: prelude107base: prelude
98 make -C libs/base IDRIS2=../../idris2108 ${MAKE} -C libs/base IDRIS2=../../idris2
99 109
100network: prelude110network: prelude
101 make -C libs/network IDRIS2=../../idris2111 ${MAKE} -C libs/network IDRIS2=../../idris2
102 make -C libs/network test IDRIS2=../../idris2112 ${MAKE} -C libs/network test IDRIS2=../../idris2
103 113
104contrib: prelude114contrib: prelude
105 make -C libs/contrib IDRIS2=../../idris2115 ${MAKE} -C libs/contrib IDRIS2=../../idris2
106 116
107libs : prelude base network contrib117libs : prelude base network contrib
108 118
109clean: clean-libs119clean: clean-libs
110 make -C src clean120 ${MAKE} -C src clean
111 make -C tests clean121 ${MAKE} -C tests clean
112 make -C dist clean122 ${MAKE} -C dist clean
113 rm -f runtests123 rm -f runtests
114 rm -f idris2 dist/idris2.c124 rm -f idris2 dist/idris2.c
115 125
116clean-libs:126clean-libs:
117 make -C libs/prelude clean127 ${MAKE} -C libs/prelude clean
118 make -C libs/base clean128 ${MAKE} -C libs/base clean
119 make -C libs/network clean129 ${MAKE} -C libs/network clean
120 make -C libs/contrib clean130 ${MAKE} -C libs/contrib clean
121 131
122test:132test:
123 idris --build tests.ipkg133 idris --build tests.ipkg
124 @make -C tests only=$(only)134 @${MAKE} -C tests only=$(only)
125 135
126install-all: install-exec install-support install-libs136install-all: install-exec install-support install-libs
127 137
@@ -143,7 +153,7 @@ install-exec: · 15 unmodified lines
143 install idris2 ${PREFIX}/bin153 install idris2 ${PREFIX}/bin
144 154
145install-libs: libs155install-libs: libs
146 make -C libs/prelude install IDRIS2=../../idris2156 ${MAKE} -C libs/prelude install IDRIS2=../../idris2
147 make -C libs/base install IDRIS2=../../idris2157 ${MAKE} -C libs/base install IDRIS2=../../idris2
148 make -C libs/network install IDRIS2=../../idris2 IDRIS2_VERSION=${IDRIS2_VERSION}158 ${MAKE} -C libs/network install IDRIS2=../../idris2 IDRIS2_VERSION=${IDRIS2_VERSION}
149 make -C libs/contrib install IDRIS2=../../idris2159 ${MAKE} -C libs/contrib install IDRIS2=../../idris2
dist/Makefile+5−3
@@ -1,11 +1,13 @@
1include config.mk
2
1.PHONY: idris2 clean3.PHONY: idris2 clean
2 4
3all: idris25all: idris2
4 6
5idris2: idris2.c7idris2: idris2.c
6 make -C rts8 $(MAKE) -C rts
7 $(CC) $(OPT) idris2.c -o idris2 -I rts -L rts -lidris_rts -lgmp -lm9 $(CC) $(OPT) idris2.c -o idris2 -I rts -L rts -lidris_rts $(GMP_LIB_DIR) -lgmp -lm
8 10
9clean:11clean:
10 make -C rts clean12 ${MAKE} -C rts clean
11 rm -f idris213 rm -f idris2
dist/config.mk+16−25
@@ -1,29 +1,20 @@
1RANLIB ?=ranlib1RANLIB ?=ranlib
2CFLAGS :=-O2 -Wall -std=c99 -pipe -fdata-sections -ffunction-sections -D_POSIX_C_SOURCE=200809L $(CFLAGS)2CFLAGS :=-O2 -Wall -std=c99 -pipe -fdata-sections -ffunction-sections -D_POSIX_C_SOURCE=200809L $(CFLAGS)
3 3
4ifneq (, $(findstring bsd, $(MACHINE)))4ifeq ($(OS),bsd)
5 GMP_INCLUDE_DIR :=5 GMP_INCLUDE_DIR =-I/usr/local/include
6else6 GMP_LIB_DIR =-L/usr/local/lib
7 GMP_INCLUDE_DIR :=-I/usr/local/include7 SHLIB_SUFFIX =.so
8endif8else ifeq ($(OS),darwin)
9 9 GMP_INCLUDE_DIR =
10MACHINE := $(shell $(CC) -dumpmachine)10 GMP_LIB_DIR =
11ifneq (, $(findstring darwin, $(MACHINE)))11 SHLIB_SUFFIX =.dylib
12 OS :=darwin
13else ifneq (, $(findstring cygwin, $(MACHINE)))
14 OS :=windows
15else ifneq (, $(findstring mingw, $(MACHINE)))
16 OS :=windows
17else ifneq (, $(findstring windows, $(MACHINE)))
18 OS :=windows
19else
20 OS :=unix
21endif
22
23ifeq ($(OS),darwin)
24 SHLIB_SUFFIX :=.dylib
25else ifeq ($(OS),windows)12else ifeq ($(OS),windows)
26 SHLIB_SUFFIX :=.DLL13 GMP_INCLUDE_DIR =
14 GMP_LIB_DIR =
15 SHLIB_SUFFIX =.DLL
27else16else
28 SHLIB_SUFFIX :=.so17 GMP_INCLUDE_DIR =
18 GMP_LIB_DIR =
19 SHLIB_SUFFIX =.so
29endif20endif
dist/rts/Makefile+12−12
@@ -1,14 +1,14 @@
1include ../config.mk1include ../config.mk
2 2
3OBJS = idris_rts.o idris_heap.o idris_gc.o idris_gmp.o idris_bitstring.o \3OBJS =idris_rts.o idris_heap.o idris_gc.o idris_gmp.o idris_bitstring.o \
4 idris_opts.o idris_stats.o idris_utf8.o idris_stdfgn.o \4 idris_opts.o idris_stats.o idris_utf8.o idris_stdfgn.o \
5 idris_buffer.o getline.o idris_net.o5 idris_buffer.o getline.o idris_net.o
6HDRS = idris_rts.h idris_heap.h idris_gc.h idris_gmp.h idris_bitstring.h \6HDRS =idris_rts.h idris_heap.h idris_gc.h idris_gmp.h idris_bitstring.h \
7 idris_opts.h idris_stats.h idris_stdfgn.h idris_net.h \7 idris_opts.h idris_stats.h idris_stdfgn.h idris_net.h \
8 idris_buffer.h idris_utf8.h getline.h8 idris_buffer.h idris_utf8.h getline.h
9CFLAGS := $(CFLAGS)9CFLAGS :=$(CFLAGS)
10CFLAGS += $(GMP_INCLUDE_DIR) $(GMP) -DIDRIS_TARGET_OS="\"$(OS)\""10CFLAGS +=$(GMP_INCLUDE_DIR) $(GMP) -DIDRIS_TARGET_OS="\"$(OS)\""
11CFLAGS += -DIDRIS_TARGET_TRIPLE="\"$(MACHINE)\""11CFLAGS +=-DIDRIS_TARGET_TRIPLE="\"$(MACHINE)\""
12 12
13ifeq ($(OS), windows)13ifeq ($(OS), windows)
14 OBJS += windows/win_utils.o14 OBJS += windows/win_utils.o
@@ -23,7 +23,9 @@ endif · 8 unmodified lines
23 23
24LIBTARGET = libidris_rts.a24LIBTARGET = libidris_rts.a
25 25
26build: $(LIBTARGET) $(DYLIBTARGET)26.PHONY: build install clean
27
28build: $(LIBTARGET)
27 29
28$(LIBTARGET) : $(OBJS)30$(LIBTARGET) : $(OBJS)
29 $(AR) rc $(LIBTARGET) $(OBJS)31 $(AR) rc $(LIBTARGET) $(OBJS)
@@ -37,5 +39,3 @@ clean : · 7 unmodified lines
37 rm -f $(OBJS) $(LIBTARGET) $(DYLIBTARGET)39 rm -f $(OBJS) $(LIBTARGET) $(DYLIBTARGET)
38 40
39$(OBJS): $(HDRS)41$(OBJS): $(HDRS)
40
41.PHONY: build install clean
libs/network/Makefile+0−13
@@ -1,19 +1,6 @@
1RANLIB ?=ranlib1RANLIB ?=ranlib
2AR ?=ar2AR ?=ar
3 3
4MACHINE := $(shell $(CC) -dumpmachine)
5ifneq (, $(findstring darwin, $(MACHINE)))
6 OS :=darwin
7else ifneq (, $(findstring cygwin, $(MACHINE)))
8 OS :=windows
9else ifneq (, $(findstring mingw, $(MACHINE)))
10 OS :=windows
11else ifneq (, $(findstring windows, $(MACHINE)))
12 OS :=windows
13else
14 OS :=unix
15endif
16
17SHLIB_SUFFIX :=.so4SHLIB_SUFFIX :=.so
18 5
19LIBNAME=idris_net6LIBNAME=idris_net

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t