v/Makefile

63 lines
1.5 KiB
Makefile
Raw Normal View History

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