Makefile
changeset 99 fa21919d105f
parent 95 af7d0de9a35c
child 109 acbe0086da3f
equal deleted inserted replaced
98:f195b8195b5a 99:fa21919d105f
     1 # :set noexpandtab
     1 # :set noexpandtab
     2 CFLAGS_ALL = -Wall -std=gnu99
     2 CFLAGS_ALL = -Wall -std=gnu99
     3 LDFLAGS_ALL =
     3 LDFLAGS_ALL =
     4 CFLAGS_DBG = -g
     4 CFLAGS_DBG = -g
     5 CFLAGS_REL = -O2
     5 CFLAGS_REL = -O2
     6 CFLAGS_PRF = -g -pg
     6 CFLAGS_PRF = -g -O2 -pg
     7 LDFLAGS_PRF = -g -pg
     7 LDFLAGS_PRF = -pg
     8 
     8 
     9 CFLAGS_SEL = ${CFLAGS_PRF}
     9 CFLAGS_SEL = ${CFLAGS_REL}
    10 LDFLAGS_SEL = ${LDFLAGS_PRF}
    10 LDFLAGS_SEL = ${LDFLAGS_REL}
    11 
    11 
    12 # warnings, and use C99 with GNU extensions
    12 # warnings, and use C99 with GNU extensions
    13 CFLAGS = ${CFLAGS_ALL} ${CFLAGS_SEL}
    13 CFLAGS = ${CFLAGS_ALL} ${CFLAGS_SEL}
    14 LDFLAGS = ${LDFLAGS_ALL} ${LDFLAGS_SEL}
    14 LDFLAGS = ${LDFLAGS_ALL} ${LDFLAGS_SEL}
    15 
    15 
    27 
    27 
    28 lib/libpngtile.so : \
    28 lib/libpngtile.so : \
    29 	build/obj/lib/ctx.o build/obj/lib/image.o build/obj/lib/cache.o build/obj/lib/tile.o build/obj/lib/png.o build/obj/lib/error.o \
    29 	build/obj/lib/ctx.o build/obj/lib/image.o build/obj/lib/cache.o build/obj/lib/tile.o build/obj/lib/png.o build/obj/lib/error.o \
    30 	build/obj/shared/util.o build/obj/shared/log.o
    30 	build/obj/shared/util.o build/obj/shared/log.o
    31 
    31 
       
    32 lib/libpngtile.a : \
       
    33 	build/obj/lib/ctx.o build/obj/lib/image.o build/obj/lib/cache.o build/obj/lib/tile.o build/obj/lib/png.o build/obj/lib/error.o \
       
    34 	build/obj/shared/util.o build/obj/shared/log.o
       
    35 
    32 lib/pypngtile.so : \
    36 lib/pypngtile.so : \
    33 	lib/libpngtile.so
    37 	lib/libpngtile.so
    34 
    38 
    35 bin/pngtile: \
    39 bin/pngtile : \
    36 	lib/libpngtile.so \
    40 	build/obj/pngtile/main.o \
    37 	build/obj/shared/log.o
    41 	lib/libpngtile.so build/obj/shared/log.o
       
    42 
       
    43 bin/pngtile-static : \
       
    44 	build/obj/pngtile/main.o \
       
    45 	lib/libpngtile.a
    38 
    46 
    39 SRC_PATHS = $(wildcard src/*/*.c)
    47 SRC_PATHS = $(wildcard src/*/*.c)
    40 SRC_NAMES = $(patsubst src/%,%,$(SRC_PATHS))
    48 SRC_NAMES = $(patsubst src/%,%,$(SRC_PATHS))
    41 SRC_DIRS = $(dir $(SRC_NAMES))
    49 SRC_DIRS = $(dir $(SRC_NAMES))
    42 
    50 
    75 # general binary objects
    83 # general binary objects
    76 build/obj/%.o : src/%.c
    84 build/obj/%.o : src/%.c
    77 	$(CC) -c $(CPPFLAGS) $(CFLAGS) $< -o $@
    85 	$(CC) -c $(CPPFLAGS) $(CFLAGS) $< -o $@
    78 
    86 
    79 # output binaries
    87 # output binaries
    80 bin/% : build/obj/%/main.o
    88 bin/% :
    81 	$(CC) $(LDFLAGS) $+ $(LOADLIBES) $(LDLIBS) -o $@
    89 	$(CC) $(LDFLAGS) $+ $(LOADLIBES) $(LDLIBS) -o $@
    82 
    90 
    83 # output libraries
    91 # output libraries
    84 lib/lib%.so :
    92 lib/lib%.so :
    85 	$(CC) -shared $(LDFLAGS) $+ $(LOADLIBES) $(LDLIBS) -o $@
    93 	$(CC) -shared $(LDFLAGS) $+ $(LOADLIBES) $(LDLIBS) -o $@
       
    94 
       
    95 lib/lib%.a :
       
    96 	$(AR) rc $@ $+
    86 
    97 
    87 build/pyx/%.c : src/py/%.pyx
    98 build/pyx/%.c : src/py/%.pyx
    88 	cython -o $@ $<
    99 	cython -o $@ $<
    89 
   100 
    90 build/obj/py/%.o : build/pyx/%.c
   101 build/obj/py/%.o : build/pyx/%.c