2019-07-17 21:11:53 +03:00
|
|
|
CC ?= cc
|
2019-07-22 04:42:38 +03:00
|
|
|
CFLAGS ?= -O2 -fPIC
|
|
|
|
PREFIX ?= /usr/local
|
2019-08-06 17:15:05 +03:00
|
|
|
VC ?= 0.1.17
|
2019-07-17 21:11:53 +03:00
|
|
|
|
2019-08-13 01:07:21 +03:00
|
|
|
all: v
|
2019-06-29 14:02:53 +03:00
|
|
|
$(info V has been successfully built)
|
2019-06-23 05:34:41 +03:00
|
|
|
|
2019-08-10 01:11:17 +03:00
|
|
|
v: v.c.out compiler/*.v vlib/**/*.v
|
2019-08-06 17:15:05 +03:00
|
|
|
./v.c.out -o v compiler
|
2019-07-17 22:50:38 +03:00
|
|
|
|
2019-08-10 11:20:59 +03:00
|
|
|
v-release: v
|
2019-07-22 04:42:38 +03:00
|
|
|
./v -cflags '${CFLAGS}' -o v compiler
|
|
|
|
strip v
|
2019-06-23 05:34:41 +03:00
|
|
|
|
2019-08-06 17:15:05 +03:00
|
|
|
v.c.out: v.${VC}.c
|
|
|
|
${CC} -std=gnu11 -w -o v.c.out v.${VC}.c -lm
|
|
|
|
|
|
|
|
v.${VC}.c:
|
2019-08-10 11:17:58 +03:00
|
|
|
#curl -o v.${VC}.c -LsSf https://github.com/vlang/vc/raw/${VC}/v.c
|
2019-08-10 09:21:20 +03:00
|
|
|
curl -o v.${VC}.c -LsSf https://raw.githubusercontent.com/vlang/vc/master/v.c
|
2019-06-23 05:34:41 +03:00
|
|
|
|
2019-08-10 11:20:59 +03:00
|
|
|
tools/vget: v
|
|
|
|
./v tools/vget.v
|
|
|
|
|
2019-06-26 02:26:26 +03:00
|
|
|
test: v
|
2019-06-29 19:05:57 +03:00
|
|
|
./v -prod -o vprod compiler # Test prod build
|
|
|
|
echo "Running V tests..."
|
2019-06-29 13:21:34 +03:00
|
|
|
find . -name '*_test.v' -print0 | xargs -0 -n1 ./v
|
2019-06-29 19:05:57 +03:00
|
|
|
echo "Building V examples..."
|
2019-07-22 14:46:35 +03:00
|
|
|
find examples -name '*.v' -print0 | xargs -0 -n1 ./v
|
2019-08-10 01:20:36 +03:00
|
|
|
bash ./compiler/tests/repl/repl.sh
|
2019-06-26 01:58:17 +03:00
|
|
|
|
2019-06-23 05:34:41 +03:00
|
|
|
clean:
|
2019-08-10 11:20:59 +03:00
|
|
|
-rm -f v.c v*.c v.c.out v vprod thirdparty/**/*.o tools/vget
|
2019-07-24 01:06:48 +03:00
|
|
|
find . -name '.*.c' -print0 | xargs -0 -n1 rm -f
|
2019-07-17 21:11:53 +03:00
|
|
|
|
|
|
|
SOURCES = $(wildcard thirdparty/**/*.c)
|
|
|
|
OBJECTS := ${SOURCES:.c=.o}
|
|
|
|
|
2019-08-10 11:20:59 +03:00
|
|
|
thirdparty: v ${OBJECTS}
|
2019-07-17 22:50:38 +03:00
|
|
|
|
2019-08-10 11:20:59 +03:00
|
|
|
thirdparty-release: v ${OBJECTS}
|
2019-07-17 22:50:38 +03:00
|
|
|
strip ${OBJECTS}
|
|
|
|
|
|
|
|
debug: clean v thirdparty
|
|
|
|
|
|
|
|
release: CFLAGS += -pie
|
|
|
|
release: clean v-release thirdparty-release
|
2019-07-22 04:42:38 +03:00
|
|
|
|
2019-08-10 11:20:59 +03:00
|
|
|
install: uninstall all
|
2019-08-06 02:49:11 +03:00
|
|
|
mkdir -p ${PREFIX}/lib/vlang ${PREFIX}/bin
|
2019-08-12 07:59:02 +03:00
|
|
|
cp -r v tools vlib thirdparty ${PREFIX}/lib/vlang
|
2019-08-10 09:08:09 +03:00
|
|
|
ln -sf ${PREFIX}/lib/vlang/v ${PREFIX}/bin/v
|
2019-08-10 11:20:59 +03:00
|
|
|
ln -sf ${PREFIX}/lib/vlang/tools/vget ${PREFIX}/bin/vget
|
2019-07-22 04:42:38 +03:00
|
|
|
|
|
|
|
uninstall:
|
2019-08-10 11:20:59 +03:00
|
|
|
rm -rf ${PREFIX}/{bin/v,bin/vget,lib/vlang}
|
2019-07-22 04:42:38 +03:00
|
|
|
|
2019-08-10 11:20:59 +03:00
|
|
|
symlink: v tools/vget
|
2019-07-22 04:42:38 +03:00
|
|
|
ln -sf `pwd`/v ${PREFIX}/bin/v
|