BLORB_DIR = $(SRCDIR)/blorb
BLORB_OBJECT = $(BLORB_DIR)/blorblib.o
+SDL_DIR = $(SRCDIR)/sdl
+SDL_LIB = $(SDL_DIR)/frotz_sdl.a
+export SDL_PKGS = libpng libjpeg sdl SDL_mixer freetype2 zlib
+SDL_LDFLAGS = `pkg-config $(SDL_PKGS) --libs` -lz
+
OBJECTS = $(COMMON_OBJECT) $(CURSES_OBJECT) $(DUMB_OBJECT) $(BLORB_OBJECT)
-all: frotz dfrotz
+SUBDIRS = $(SDL_DIR)
+SUB_CLEAN = $(SUBDIRS:%=%-clean)
+
+all: frotz dfrotz sfrotz
+
+$(SDL_LIB): | $(SDL_DIR)
+
+$(SUBDIRS):
+ $(MAKE) -C $@
+
+$(SUB_CLEAN):
+ $(MAKE) -C $(@:%-clean=%) clean
# Main programs
dfrotz: $(SRCDIR)/frotz_common.a $(SRCDIR)/frotz_dumb.a $(SRCDIR)/blorblib.a
$(CC) $(CFLAGS) $^ -o $@$(EXTENSION) $(LDFLAGS)
+sfrotz: $(SRCDIR)/frotz_common.a $(SDL_LIB) $(SRCDIR)/blorblib.a
+ $(CC) $(CFLAGS) $^ -o $@$(EXTENSION) $(LDFLAGS) $(SDL_LDFLAGS)
+
# Libs
%.a:
frotz-$(GIT_TAG).tar.gz:
git archive --format=tar.gz -o "frotz-$(GIT_TAG).tar.gz" "$(GIT_TAG)"
-clean:
+clean: $(SUB_CLEAN)
rm -f $(SRCDIR)/*.h $(SRCDIR)/*.a $(COMMON_DIR)/defines.h \
$(COMMON_DIR)/git_hash.h $(CURSES_DIR)/defines.h \
$(OBJECTS) frotz*.tar.gz
.PHONY: all clean dist dumb hash help \
blorb_lib common_lib curses_lib dumb_lib \
install install_dfrotz install_dumb \
- uninstall uninstall_dfrotz uninstall_dumb
+ uninstall uninstall_dfrotz uninstall_dumb $(SUBDIRS) $(SUB_CLEAN)
# For GNU Make.
-PKGS = sdl SDL_mixer freetype2
+SDL_PKGS ?= libpng libjpeg libsdl SDL_mixer freetype2 zlib
CC = gcc
-CFLAGS += `pkg-config $(PKGS) --cflags`
+CFLAGS += `pkg-config $(SDL_PKGS) --cflags`
ARFLAGS = rvU
SOURCES = sf_aiffwav.c sf_fonts.c sf_msg_en.c sf_resource.c sf_util.c \
if (color_type == PNG_COLOR_TYPE_PALETTE && bit_depth <= 8)
png_set_palette_to_rgb(png_ptr);
if (color_type == PNG_COLOR_TYPE_GRAY && bit_depth < 8)
- #ifdef __WIN32__
- os_fatal("Missing png_set_gray_1_2_4_to_8\n");
- #else
- png_set_gray_1_2_4_to_8(png_ptr);
- #endif
+ png_set_expand_gray_1_2_4_to_8(png_ptr);
if (png_get_valid(png_ptr,info_ptr,PNG_INFO_tRNS))
png_set_tRNS_to_alpha(png_ptr);