Created
September 16, 2009 21:33
-
-
Save slaskis/188206 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--- Makefile.original 2009-09-16 19:29:16.000000000 +0200 | |
+++ Makefile 2009-09-16 22:37:28.000000000 +0200 | |
@@ -1,99 +1,60 @@ | |
-## CONFIG | |
+prefix ?= /usr/local | |
+DESTDIR ?= /usr/local | |
-INSTALL_PREFIX = /usr/local | |
- | |
-CFLAGS = -Wall -O3 -fPIC -fomit-frame-pointer -I vm -D_GNU_SOURCE | |
-EXTFLAGS = -pthread | |
-MAKESO = $(CC) -shared -WBsymbolic | |
-LIBNEKO_NAME = libneko.so | |
-LIBNEKO_LIBS = -ldl -lgc -lm | |
-NEKOVM_FLAGS = -Lbin -lneko | |
-STD_NDLL_FLAGS = ${NEKOVM_FLAGS} | |
-INSTALL_FLAGS = | |
- | |
-NEKO_EXEC = LD_LIBRARY_PATH=../bin:${LD_LIBRARY_PATH} NEKOPATH=../boot:../bin ../bin/neko | |
- | |
-# For OSX | |
-# | |
-# MACOSX = 1 | |
- | |
-# For OSX Universal Binaries | |
-# | |
-# OSX_UNIVERSAL = 1 | |
- | |
- | |
-# For 64 bit | |
-# | |
-# CFLAGS += -D_64BITS | |
- | |
-# For profiling VM | |
-# | |
-# CFLAGS += -DNEKO_PROF | |
- | |
-# For lower memory usage (takes more CPU !) | |
-# | |
-# CFLAGS += -DLOW_MEM | |
- | |
-# For MINGW/MSYS | |
- | |
-ifeq (${WIN32}, 1) | |
-CFLAGS = -g -Wall -O3 -momit-leaf-frame-pointer -I vm -I /usr/local/include | |
+CFLAGS ?= -Wall -O3 -v -fPIC -fomit-frame-pointer -Ivm -I${prefix}/include -L${prefix}/lib | |
EXTFLAGS = | |
-MAKESO = $(CC) -O -shared | |
-LIBNEKO_NAME = neko.dll | |
-LIBNEKO_LIBS = -Lbin -lgc | |
-STD_NDLL_FLAGS = ${NEKOVM_FLAGS} -lws2_32 | |
-endif | |
- | |
-### OSX SPECIFIC | |
- | |
-ifeq (${UNIVERSAL},1) | |
-MACOSX=1 | |
-OSX_UNIVERSAL=1 | |
-endif | |
+INSTALL_FLAGS = | |
-ifeq (${MACOSX}, 1) | |
export MACOSX_DEPLOYMENT_TARGET=10.3 | |
-EXTFLAGS = | |
-MAKESO = ${CC} | |
LIBNEKO_NAME = libneko.dylib | |
LIBNEKO_INSTALL = -install_name @executable_path/${LIBNEKO_NAME} | |
LIBNEKO_LIBS = -ldl -lgc -lm -dynamiclib -single_module ${LIBNEKO_INSTALL} | |
NEKOVM_FLAGS = -L${PWD}/bin -lneko | |
STD_NDLL_FLAGS = -bundle -undefined dynamic_lookup ${NEKOVM_FLAGS} | |
+NEKO_EXEC = LD_LIBRARY_PATH=../bin:${LD_LIBRARY_PATH} NEKOPATH=../boot:../bin ../bin/neko | |
ifeq (${OSX_UNIVERSAL}, 1) | |
- | |
-export MACOSX_DEPLOYMENT_TARGET_i386=10.4 | |
-export MACOSX_DEPLOYMENT_TARGET_ppc=10.3 | |
-CFLAGS += -arch ppc -arch i386 -L/usr/local/lib -L/opt/local/lib -I/opt/local/include | |
-UNIV = libs/include/osx_universal | |
-#linking to shared lib (.a) explicitly: | |
-LIBNEKO_DEPS = ${UNIV}/libgc.a -lSystemStubs | |
-LIBNEKO_LIBS = ${LIBNEKO_DEPS} -dynamiclib -single_module ${LIBNEKO_INSTALL} ${CFLAGS} | |
-NEKOVM_FLAGS = -L${PWD}/bin -lneko | |
-STD_NDLL_FLAGS = -bundle ${NEKOVM_FLAGS} ${CFLAGS} | |
-INSTALL_FLAGS = -osx-universal | |
- | |
+ export MACOSX_DEPLOYMENT_TARGET=10.4 | |
+ export MACOSX_DEPLOYMENT_TARGET_i386=10.4 | |
+ export MACOSX_DEPLOYMENT_TARGET_ppc=10.3 | |
+ CFLAGS += -arch ppc -arch i386 | |
+ UNIV = libs/include/osx_universal | |
+ #linking to shared lib (.a) explicitly: | |
+ LIBNEKO_DEPS = ${UNIV}/libgc.a -lSystemStubs | |
+ LIBNEKO_LIBS = ${LIBNEKO_DEPS} -dynamiclib -single_module ${LIBNEKO_INSTALL} ${CFLAGS} | |
+ STD_NDLL_FLAGS = -bundle ${NEKOVM_FLAGS} ${CFLAGS} | |
+ INSTALL_FLAGS = -osx-universal | |
endif | |
-endif | |
- | |
-### MAKE | |
- | |
VM_OBJECTS = vm/stats.o vm/main.o | |
-STD_OBJECTS = libs/std/buffer.o libs/std/date.o libs/std/file.o libs/std/init.o libs/std/int32.o libs/std/math.o libs/std/string.o libs/std/random.o libs/std/serialize.o libs/std/socket.o libs/std/sys.o libs/std/xml.o libs/std/module.o libs/std/md5.o libs/std/utf8.o libs/std/memory.o libs/std/misc.o libs/std/thread.o libs/std/process.o | |
-LIBNEKO_OBJECTS = vm/alloc.o vm/builtins.o vm/callback.o vm/interp.o vm/load.o vm/objtable.o vm/others.o vm/hash.o vm/module.o vm/jit_x86.o vm/threads.o | |
+STD_OBJECTS = libs/std/buffer.o libs/std/date.o libs/std/file.o libs/std/init.o \ | |
+ libs/std/int32.o libs/std/math.o libs/std/string.o libs/std/random.o libs/std/serialize.o \ | |
+ libs/std/socket.o libs/std/sys.o libs/std/xml.o libs/std/module.o libs/std/md5.o \ | |
+ libs/std/utf8.o libs/std/memory.o libs/std/misc.o libs/std/thread.o libs/std/process.o | |
+LIBNEKO_OBJECTS = vm/alloc.o vm/builtins.o vm/callback.o vm/interp.o vm/load.o vm/objtable.o \ | |
+ vm/others.o vm/hash.o vm/module.o vm/jit_x86.o vm/threads.o | |
+ | |
+### TARGETS | |
all: createbin libneko neko std compiler libs | |
universal: | |
- make MACOSX=1 OSX_UNIVERSAL=1 | |
+ make OSX_UNIVERSAL=1 | |
createbin: | |
-mkdir bin 2>/dev/null | |
libneko: bin/${LIBNEKO_NAME} | |
+ | |
+neko: bin/neko | |
+ | |
+std: bin/std.ndll | |
+ | |
+compiler: | |
+ (cd src; ${NEKO_EXEC} nekoml -nostd neko/Main.nml nekoml/Main.nml) | |
+ (cd src; ${NEKO_EXEC} nekoc -link ../boot/nekoc.n neko/Main) | |
+ (cd src; ${NEKO_EXEC} nekoc -link ../boot/nekoml.n nekoml/Main) | |
+ | |
libs: | |
(cd src; ${NEKO_EXEC} nekoc tools/install.neko) | |
@@ -106,45 +67,42 @@ | |
test: | |
(cd src; ${NEKO_EXEC} nekoc tools/test.neko) | |
(cd src; ${NEKO_EXEC} tools/test) | |
+ | |
+clean: | |
+ rm -rf bin/${LIBNEKO_NAME} ${LIBNEKO_OBJECTS} ${VM_OBJECTS} | |
+ rm -rf bin/neko bin/nekoc bin/nekoml bin/nekotools | |
+ rm -rf bin/std bin/*.ndll bin/*.n libs/*/*.o | |
+ rm -rf src/*.n src/neko/*.n src/nekoml/*.n src/tools/*.n | |
+ rm -rf bin/mtypes bin/tools | |
-neko: bin/neko | |
- | |
-std: bin/std.ndll | |
+install: | |
+ -mkdir ${DESTDIR}/lib | |
+ cp bin/${LIBNEKO_NAME} ${DESTDIR}/lib | |
+ -mkdir ${DESTDIR}/bin | |
+ cp bin/neko bin/nekoc bin/nekotools bin/nekoml bin/nekoml.std ${DESTDIR}/bin | |
+ -mkdir ${DESTDIR}/lib/neko | |
+ cp bin/*.ndll ${DESTDIR}/lib/neko | |
+ -mkdir ${DESTDIR}/include | |
+ cp vm/neko*.h ${DESTDIR}/include | |
-compiler: | |
- (cd src; ${NEKO_EXEC} nekoml -nostd neko/Main.nml nekoml/Main.nml) | |
- (cd src; ${NEKO_EXEC} nekoc -link ../boot/nekoc.n neko/Main) | |
- (cd src; ${NEKO_EXEC} nekoc -link ../boot/nekoml.n nekoml/Main) | |
+uninstall: | |
+ rm -rf ${DESTDIR}/lib/${LIBNEKO_NAME} | |
+ rm -rf ${DESTDIR}/bin/neko ${DESTDIR}/bin/nekoc ${DESTDIR}/bin/nekotools | |
+ rm -rf ${DESTDIR}/lib/neko | |
+ | |
+### SUBTARGETS | |
bin/${LIBNEKO_NAME}: ${LIBNEKO_OBJECTS} | |
- ${MAKESO} ${EXTFLAGS} -o $@ ${LIBNEKO_OBJECTS} ${LIBNEKO_LIBS} | |
+ ${CC} ${EXTFLAGS} -o $@ ${LIBNEKO_OBJECTS} ${LIBNEKO_LIBS} | |
bin/neko: $(VM_OBJECTS) | |
${CC} ${CFLAGS} ${EXTFLAGS} -o $@ ${VM_OBJECTS} ${NEKOVM_FLAGS} | |
strip bin/neko | |
bin/std.ndll: ${STD_OBJECTS} | |
- ${MAKESO} -o $@ ${STD_OBJECTS} ${STD_NDLL_FLAGS} | |
- | |
-clean: | |
- rm -rf bin/${LIBNEKO_NAME} ${LIBNEKO_OBJECTS} ${VM_OBJECTS} | |
- rm -rf bin/neko bin/nekoc bin/nekoml bin/nekotools | |
- rm -rf bin/std bin/*.ndll bin/*.n libs/*/*.o | |
- rm -rf src/*.n src/neko/*.n src/nekoml/*.n src/tools/*.n | |
- rm -rf bin/mtypes bin/tools | |
- | |
-install: | |
- cp bin/${LIBNEKO_NAME} ${INSTALL_PREFIX}/lib | |
- cp bin/neko bin/nekoc bin/nekotools bin/nekoml bin/nekoml.std ${INSTALL_PREFIX}/bin | |
- -mkdir ${INSTALL_PREFIX}/lib/neko | |
- cp bin/*.ndll ${INSTALL_PREFIX}/lib/neko | |
- -mkdir ${INSTALL_PREFIX}/include | |
- cp vm/neko*.h ${INSTALL_PREFIX}/include | |
+ ${CC} -o $@ ${STD_OBJECTS} ${STD_NDLL_FLAGS} | |
-uninstall: | |
- rm -rf ${INSTALL_PREFIX}/lib/${LIBNEKO_NAME} | |
- rm -rf ${INSTALL_PREFIX}/bin/neko ${INSTALL_PREFIX}/bin/nekoc ${INSTALL_PREFIX}/bin/nekotools | |
- rm -rf ${INSTALL_PREFIX}/lib/neko | |
+### MAGIC | |
.SUFFIXES : .c .o | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment