| # |
| # Example Makefile for building a program with embedded Duktape. |
| # |
| # There are two source sets in the distribution: (1) combined sources where |
| # you only need duktape.c, duktape.h, and duk_config.h, and (2) separate |
| # sources where you have a bunch of source and header files. Whichever |
| # you use, simply include the relevant sources into your C project. This |
| # Makefile uses the combined source file. |
| # |
| |
| DUKTAPE_SOURCES = src/duktape.c |
| |
| # Compiler options are quite flexible. GCC versions have a significant impact |
| # on the size of -Os code, e.g. gcc-4.6 is much worse than gcc-4.5. |
| |
| CC = gcc |
| CCOPTS = -Os -pedantic -std=c99 -Wall -fstrict-aliasing -fomit-frame-pointer |
| CCOPTS += -I./src # for combined sources |
| CCLIBS = -lm |
| DEFINES = |
| |
| # If you want a 32-bit build on a 64-bit host |
| #CCOPTS += -m32 |
| |
| # Optional feature defines, see: http://duktape.org/guide.html#compiling |
| DEFINES += -DDUK_OPT_SELF_TESTS |
| #DEFINES += -DDUK_OPT_DEBUG |
| #DEFINES += -DDUK_OPT_DPRINT |
| #DEFINES += -DDUK_OPT_NO_TRACEBACKS |
| # ... |
| |
| # For debugging, use -O0 -g -ggdb, and don't add -fomit-frame-pointer |
| |
| hello: $(DUKTAPE_SOURCES) examples/hello/hello.c |
| $(CC) -o $@ $(DEFINES) $(CCOPTS) $(DUKTAPE_SOURCES) examples/hello/hello.c $(CCLIBS) |