From b7c312ed5e45ed50ed14faf1cde4d36f83b6d814 Mon Sep 17 00:00:00 2001 From: dolphin6k Date: Sun, 18 Oct 2020 21:50:20 +0900 Subject: [PATCH] Re-enable scripted dll install (Sorry, pushed wrong file before) --- Makefile | 56 ++++++++++++++++++++++++++------------------- src/install-dlls.sh | 22 ++++++++++++++---- 2 files changed, 50 insertions(+), 28 deletions(-) diff --git a/Makefile b/Makefile index 217dc6f27..7fb2e6fe6 100644 --- a/Makefile +++ b/Makefile @@ -1,15 +1,15 @@ # Tux Paint - A simple drawing program for children. -# Copyright (c) 2002-2019 +# Copyright (c) 2002-2020 # Various contributors (see AUTHORS.txt) # http://www.tuxpaint.org/ -# June 14, 2002 - October 29, 2019 +# June 14, 2002 - October 15, 2020 # The version number, for release: -VER_VERSION:=0.9.24 +VER_VERSION:=0.9.25 ifdef SOURCE_DATE_EPOCH VER_DATE=$(shell date -u -d "@$(SOURCE_DATE_EPOCH)" "+%Y-%m-%d" 2>/dev/null || date -u -r "$(SOURCE_DATE_EPOCH)" "+%Y-%m-%d" 2>/dev/null || date -u "+%Y-%m-%d") else @@ -23,12 +23,12 @@ SYSNAME:=$(shell uname -s) ifeq ($(findstring MINGW32, $(SYSNAME)),MINGW32) OS:=windows GPERF:=/usr/bin/gperf - MINGW_DIR=/mingw32 + MINGW_DIR:=/mingw32 else ifeq ($(findstring MINGW64, $(SYSNAME)),MINGW64) OS:=windows GPERF:=/usr/bin/gperf - MINGW_DIR=/mingw64 + MINGW_DIR:=/mingw64 else ifeq ($(SYSNAME),Darwin) OS:=osx @@ -122,10 +122,10 @@ PNG:=$(if $(PNG),$(PNG),$(call linktest,-lpng12,)) FRIBIDI_LIB:=$(shell $(PKG_CONFIG) --libs fribidi) FRIBIDI_CFLAGS:=$(shell $(PKG_CONFIG) --cflags fribidi) -windows_ARCH_LINKS:=-lgdi32 -lcomdlg32 $(PNG) -lz -lwinspool -lshlwapi $(FRIBIDI_LIB) -liconv -osx_ARCH_LINKS:=$(FRIBIDI_LIB) -beos_ARCH_LINKS:=-lintl $(PNG) -lz -lbe -lnetwork -liconv $(FRIBIDI_LIB) $(PAPER_LIB) $(STDC_LIB) -linux_ARCH_LINKS:=$(PAPER_LIB) $(FRIBIDI_LIB) +windows_ARCH_LINKS:=-lgdi32 -lcomdlg32 $(PNG) -lz -lwinspool -lshlwapi $(FRIBIDI_LIB) -liconv -limagequant +osx_ARCH_LINKS:=$(FRIBIDI_LIB) -limagequant +beos_ARCH_LINKS:=-lintl $(PNG) -lz -lbe -lnetwork -liconv $(FRIBIDI_LIB) $(PAPER_LIB) $(STDC_LIB) -limagequant +linux_ARCH_LINKS:=$(PAPER_LIB) $(FRIBIDI_LIB) -limagequant ARCH_LINKS:=$($(OS)_ARCH_LINKS) windows_ARCH_HEADERS:=src/win32_print.h @@ -715,14 +715,14 @@ $(THUMB_STARTERS): @if [ "x" != "x"$(STARTER_BACK_NAME) ] ; \ then \ composite $(STARTER_NAME) $(STARTER_BACK_NAME) obj/tmp_$(notdir $(STARTER_NAME)).png ; \ - convert $(CONVERT_OPTS) obj/tmp_$(notdir $(STARTER_NAME)).png $@ ; \ + convert $(CONVERT_OPTS) obj/tmp_$(notdir $(STARTER_NAME)).png $@ 2> /dev/null ; \ rm obj/tmp_$(notdir $(STARTER_NAME)).png ; \ else \ - convert $(CONVERT_OPTS) $(STARTER_NAME) $@ ; \ + convert $(CONVERT_OPTS) $(STARTER_NAME) $@ 2> /dev/null || ( echo "($@ failed)" ; rm $@ ) ; \ fi $(INSTALLED_THUMB_STARTERS): $(DATA_PREFIX)/%: % - @install -D -m 644 $< $@ + @install -D -m 644 $< $@ || ( echo "NO THUMB $<" ) .PHONY: echo-thumb-starters echo-thumb-starters: @@ -773,10 +773,10 @@ TEMPLATE_NAME=$(or $(wildcard $(subst templates/.thumbs,templates,$(@:-t.png=.sv $(THUMB_TEMPLATES): @echo -n "." @mkdir -p templates/.thumbs - @convert $(CONVERT_OPTS) $(TEMPLATE_NAME) $@ ; \ + @convert $(CONVERT_OPTS) $(TEMPLATE_NAME) $@ 2> /dev/null || ( echo "($@ failed)" ; rm $@ ) ; \ $(INSTALLED_THUMB_TEMPLATES): $(DATA_PREFIX)/%: % - @install -D -m 644 $< $@ + @install -D -m 644 $< $@ || ( echo "NO THUMB $<" ) .PHONY: echo-thumb-templates echo-thumb-templates: @@ -871,23 +871,23 @@ install-bin: @cp tuxpaint$(EXE_EXT) $(BIN_PREFIX) @chmod a+rx,g-w,o-w $(BIN_PREFIX)/tuxpaint$(EXE_EXT) -# Install the required Windows DLLs into the 'bdist' directory +# Install tuxpaint-config and required Windows DLLs into the 'bdist' directory .PHONY: install-dlls install-dlls: @echo @echo "...Installing Windows DLLs..." @install -d $(BIN_PREFIX) @cp $(TPCONF_PATH)/tuxpaint-config.exe $(BIN_PREFIX) - @src/install-dlls.sh $(TPCONF_PATH) $(BIN_PREFIX) + @src/install-dlls.sh tuxpaint.exe $(TPCONF_PATH)/tuxpaint-config.exe $(BIN_PREFIX) @strip -s $(BIN_PREFIX)/*.dll - echo; \ - echo "...Installing Configuration Files..."; \ - cp -R win32/etc/ $(BIN_PREFIX); \ - echo; \ - echo "...Installing Library Modules..."; \ - mkdir -p $(BIN_PREFIX)/lib/gdk-pixbuf-2.0/2.10.0/loaders; \ - cp $(MINGW_DIR)/lib/gdk-pixbuf-2.0/2.10.0/loaders/*.dll $(BIN_PREFIX)/lib/gdk-pixbuf-2.0/2.10.0/loaders; \ - strip -s $(BIN_PREFIX)/lib/gdk-pixbuf-2.0/2.10.0/loaders/*.dll; \ + @echo + @echo "...Installing Configuration Files..." + @cp -R win32/etc/ $(BIN_PREFIX) + @echo + @echo "...Installing Library Modules..." + @mkdir -p $(BIN_PREFIX)/lib/gdk-pixbuf-2.0/2.10.0/loaders + @cp $(MINGW_DIR)/lib/gdk-pixbuf-2.0/2.10.0/loaders/*.dll $(BIN_PREFIX)/lib/gdk-pixbuf-2.0/2.10.0/loaders + @strip -s $(BIN_PREFIX)/lib/gdk-pixbuf-2.0/2.10.0/loaders/*.dll # Install symlink: .PHONY: install-haiku @@ -997,6 +997,7 @@ TuxPaint.dmg: tuxpaint: obj/tuxpaint.o obj/i18n.o obj/im.o obj/cursor.o obj/pixels.o \ obj/rgblinear.o obj/playsound.o obj/fonts.o obj/parse.o obj/fill.o \ obj/progressbar.o obj/dirwalk.o obj/get_fname.o obj/onscreen_keyboard.o \ + obj/gifenc.o \ $(ARCH_LIBS) @echo @echo "...Linking Tux Paint..." @@ -1017,6 +1018,7 @@ obj/tuxpaint.o: src/tuxpaint.c \ src/tools.h src/titles.h src/colors.h src/shapes.h \ src/sounds.h src/tip_tux.h src/great.h \ src/tp_magic_api.h src/parse.h src/onscreen_keyboard.h \ + src/gifenc.h \ src/$(MOUSEDIR)/arrow.xbm src/$(MOUSEDIR)/arrow-mask.xbm \ src/$(MOUSEDIR)/hand.xbm src/$(MOUSEDIR)/hand-mask.xbm \ src/$(MOUSEDIR)/insertion.xbm \ @@ -1102,6 +1104,12 @@ obj/pixels.o: src/pixels.c src/pixels.h src/compiler.h src/debug.h @$(CC) $(CFLAGS) $(DEBUG_FLAGS) $(SDL_CFLAGS) $(DEFS) \ -c src/pixels.c -o obj/pixels.o +obj/gifenc.o: src/gifenc.c src/gifenc.h + @echo + @echo "...Compiling animated GIF export libary..." + @$(CC) $(CFLAGS) $(DEBUG_FLAGS) $(DEFS) \ + -c src/gifenc.c -o obj/gifenc.o + obj/playsound.o: src/playsound.c src/playsound.h \ src/compiler.h src/debug.h @echo diff --git a/src/install-dlls.sh b/src/install-dlls.sh index 7481a3f73..20726b773 100644 --- a/src/install-dlls.sh +++ b/src/install-dlls.sh @@ -1,6 +1,20 @@ #!/bin/sh -for dll in `ldd tuxpaint.exe $1/tuxpaint-config.exe 2>&1 | grep /mingw | awk '{print $3}' | sort | uniq` -do - cp $dll $2 -done +find_depends(){ + for dllpath in `ntldd $@ | grep mingw | awk '{print $3}' | sort | uniq` + do + dllname=`basename $dllpath` + if ! grep -q $dllname dlllist; then + echo $dllpath >> dlllist + echo -n . + cp $dllpath $DESTDIR/ + find_depends $dllpath + fi + done +} + +DESTDIR=$3 +echo > dlllist + +find_depends $1 $2 +echo