blob: 82e9ab6b5d3a3c34a65c1cec7a3f1d18ca4abccd [file] [log] [blame]
#
# 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)