tuxanci2-engine
Game engine for tuxanci2
Log | Files | Refs | README | LICENSE
commit 78ebd5d11d5e775987ba4a04d885e6965ad54033
parent 30fa75b0df7b3a0c4efdb684ea4227b4c7ffa9f3
Author: Connor Thomson <connor@gnufault.org>
Date: Sat, 24 Oct 2026 22:31:15 -0700
Make it so you can install the win32 version with NSIS
Diffstat:
3 files changed, 57 insertions(+), 5 deletions(-)
diff --git a/platforms/win32/.gitignore b/platforms/win32/.gitignore
@@ -1 +1 @@
-tuxanci2.exe
+tuxanci2*.exe
diff --git a/platforms/win32/Makefile b/platforms/win32/Makefile
@@ -3,14 +3,19 @@ ROOT_DIR := $(abspath $(MAKEFILE_DIR)/../..)
WIN32_CC ?= i686-w64-mingw32-gcc
WIN32_CFLAGS ?= -O2 -Wall
-WIN32_LDFLAGS ?= -Wl,--subsystem,windows:3.1
+WIN32_LDFLAGS ?= -Wl,--subsystem,windows:95
WIN32_LDLIBS ?= -lgdi32 -luser32
WIN32_BUILD ?= build/win32
WIN32_SOURCE := $(MAKEFILE_DIR)win32.c
WIN32_BUILD_DIR := $(ROOT_DIR)/$(WIN32_BUILD)
WIN32_LIBRARY := $(WIN32_BUILD_DIR)/tuxanci2.a
-TARGET := $(MAKEFILE_DIR)tuxanci2.exe
+
+GAME_TARGET := $(WIN32_BUILD_DIR)/tuxanci2.exe
+
+NSIS_SCRIPT := $(MAKEFILE_DIR)installer.nsi
+TARGET := $(MAKEFILE_DIR)tuxanci2-win32-i686.exe
+
ROOT_INPUTS := $(shell find $(ROOT_DIR)/src -type f -name '*.c') \
$(wildcard $(ROOT_DIR)/include/*.h) \
$(ROOT_DIR)/include/ta_config.h.in \
@@ -25,9 +30,12 @@ all: $(TARGET)
$(WIN32_LIBRARY): $(ROOT_INPUTS)
$(MAKE) -C "$(ROOT_DIR)" CC="$(WIN32_CC)" BITS=32 BUILD_DIR="$(WIN32_BUILD)" all
-$(TARGET): $(WIN32_SOURCE) $(WIN32_LIBRARY)
+$(GAME_TARGET): $(WIN32_SOURCE) $(WIN32_LIBRARY)
$(WIN32_CC) $(WIN32_CFLAGS) -I"$(ROOT_DIR)/include" -I"$(WIN32_BUILD_DIR)" "$(WIN32_SOURCE)" "$(WIN32_LIBRARY)" $(WIN32_LDFLAGS) $(WIN32_LDLIBS) -o "$@"
+$(TARGET): $(GAME_TARGET) $(NSIS_SCRIPT)
+ makensis "$(NSIS_SCRIPT)"
+
clean:
- $(RM) "$(TARGET)"
+ $(RM) "$(TARGET)" "$(GAME_TARGET)"
$(MAKE) -C "$(ROOT_DIR)" BUILD_DIR="$(WIN32_BUILD)" clean
diff --git a/platforms/win32/installer.nsi b/platforms/win32/installer.nsi
@@ -0,0 +1,44 @@
+!include "MUI2.nsh"
+
+Name "Tuxánci 2"
+OutFile "tuxanci2-win32-i686.exe"
+InstallDir "$PROGRAMFILES\tuxanci2"
+
+!insertmacro MUI_PAGE_WELCOME
+!insertmacro MUI_PAGE_LICENSE "../../LICENSE"
+!insertmacro MUI_PAGE_DIRECTORY
+!insertmacro MUI_PAGE_INSTFILES
+!insertmacro MUI_PAGE_FINISH
+
+!insertmacro MUI_UNPAGE_WELCOME
+!insertmacro MUI_UNPAGE_CONFIRM
+!insertmacro MUI_UNPAGE_INSTFILES
+!insertmacro MUI_UNPAGE_FINISH
+
+!insertmacro MUI_LANGUAGE "English"
+
+Section "Core Files"
+ SetOutPath "$INSTDIR"
+
+ File "../../build/win32/tuxanci2.exe"
+ File "../../LICENSE"
+
+ WriteUninstaller "$INSTDIR\uninstall.exe"
+
+ WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Tuxanci2" "DisplayName" "Tuxánci 2"
+ WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Tuxanci2" "UninstallString" "$\"$INSTDIR\uninstall.exe$\""
+ WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Tuxanci2" "QuietUninstallString" "$\"$INSTDIR\uninstall.exe /S$\""
+ WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Tuxanci2" "InstallLocation" "$INSTDIR"
+ WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Tuxanci2" "Publisher" "GNUfault"
+ WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Tuxanci2" "DisplayVersion" "0.30.0"
+ WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Tuxanci2" "NoModify" 1
+ WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Tuxanci2" "NoRepair" 1
+SectionEnd
+
+Section "Uninstall"
+ Delete "$INSTDIR\tuxanci2.exe"
+ Delete "$INSTDIR\LICENSE"
+ Delete "$INSTDIR\uninstall.exe"
+
+ RMDir "$INSTDIR"
+SectionEnd