view Makefile.common @ 2516:d75ce1235875

Rename Makefile.gen to Makefile.common
author Matti Hamalainen <ccr@tnsp.org>
date Thu, 03 Aug 2023 08:59:10 +0300
parents Makefile.gen@de2e01e4343b
children 2b48d0ed6b56
line wrap: on
line source

###
### Include configuration
###
include config.mak
include Makefile.paths


###
### Binaries and objects
###
LIBLOCFILE_OBJ=$(OBJPATH)liblocfile.o
LIBMAPUTILS_OBJ=$(OBJPATH)libmaputils.o


TARGETS += $(LIBMAPUTILS_OBJ) $(LIBLOCFILE_OBJ) \
	$(COLORMAP_BIN) $(STITCHMAP_BIN) $(MKCITYMAP_BIN) \
	$(DIFFMAP_BIN) $(PATCHMAP_BIN) $(MAP2PPM_BIN) \
	$(MKLOC_BIN) $(COMBINE_BIN) $(MAPSTATS_BIN)

ifneq ($(BUILD_MAPS),no)
TARGETS += $(addprefix $(MISC_MAPS_PATH),$(addsuffix .html,$(MISC_MAPS)))
endif


ifeq ($(HAVE_LIBWEBSOCKETS),yes)
TARGETS += $(MAPSEARCH_BIN)
MAPSEARCH_CFLAGS += -D_POSIX_C_SOURCE=200112 $(LIBWEBSOCKETS_CFLAGS)
MAPSEARCH_LDFLAGS += $(LIBWEBSOCKETS_LDFLAGS) -lm
endif

ifeq ($(HAVE_LIBPNG),yes)
MAP2PPM_CFLAGS += -DHAVE_LIBPNG=1 $(LIBPNG_CFLAGS) $(ZLIB_CFLAGS)
MAP2PPM_LDFLAGS += $(LIBPNG_LDFLAGS) $(ZLIB_LDFLAGS) -lm
endif


###
### Include th-libs build system bits
###
THLIBS_OBJ = th_util.o th_string.o th_args.o th_datastruct.o

include $(THLIBS)/Makefile.inc


###
### Binary target rules
###
$(OBJPATH)%.o: src/%.c $(THLIBS_A)
	$(call COMPILE_C_OBJ, -I$(THLIBS))

$(BINPATH)%$(BINEXT): $(OBJPATH)%.o $(LIBMAPUTILS_OBJ) $(LIBLOCFILE_OBJ) $(THLIBS_A) $(THLIBS_DEP)
	$(call LINK_C_BIN,)


$(OBJPATH)map2ppm.o: src/map2ppm.c $(THLIBS_A)
	$(call COMPILE_C_OBJ, $(MAP2PPM_CFLAGS))

$(MAP2PPM_BIN): $(OBJPATH)map2ppm.o $(LIBMAPUTILS_OBJ) $(THLIBS_A) $(THLIBS_DEP)
	$(call LINK_C_BIN, $(MAP2PPM_LDFLAGS) $(THLIBS_A))


$(OBJPATH)mapsearch.o: src/mapsearch.c $(THLIBS_A)
	$(call COMPILE_C_OBJ, $(MAPSEARCH_CFLAGS))

$(MAPSEARCH_BIN): $(OBJPATH)mapsearch.o $(LIBMAPUTILS_OBJ) $(LIBLOCFILE_OBJ) $(THLIBS_A) $(THLIBS_DEP)
	$(call LINK_C_BIN, $(MAPSEARCH_LDFLAGS) $(THLIBS_A))


###
### Misc map targets
###
$(MISC_MAPS_PATH)%.html: $(MISC_MAPS_PATH)%.map $(MISC_MAPS_PATH)%.loc $(MISC_MAPS_PATH)%.desc $(MKCITYMAP_BIN) src/tooltip.js $(MISC_MAPS_PATH)misc.html
	@$(call DO_CMD,MKCITYMAP,$@,$(MKCITYMAP_BIN) $(MKCITYMAP_OPTS) -h $(MISC_MAPS_PATH)misc.html -t "`cat $(patsubst %.map,%.desc,$<)`" $< $(patsubst %.map,%.loc,$<) `cat $(patsubst %.map,%.opts,$<)` -o "$@")


###
### Special targets
###
upload: src/tooltip.js src/util.js $(MISC_MAPS_PATH)misc.css \
	$(addprefix $(MISC_MAPS_PATH),$(addsuffix .html,$(MISC_MAPS))) \
	$(addprefix $(MISC_MAPS_PATH),$(addsuffix .map,$(MISC_MAPS))) \
	$(addprefix $(MISC_MAPS_PATH),$(addsuffix .loc,$(MISC_MAPS)))
	$(RSCP) $? $(UPLOAD_URL)
	@touch $@