Makefile and INSTALL doc changes

This commit is contained in:
jettis
2025-08-13 23:33:28 +03:00
parent 031e37f6e3
commit 62a7f58342
4 changed files with 102 additions and 2 deletions

33
INSTALL.linux-static Normal file
View File

@@ -0,0 +1,33 @@
Compile on older container to get binary that runs on older OS too (SDL doesn't compile on older than 20.04):
docker run -v .:/SDLRousku -it --rm ubuntu:20.04
On Linux, install the packages listed at
https://github.com/libsdl-org/SDL/blob/main/docs/README-linux.md#build-dependencies
in addition apt install xdd nasm libwayland-dev
mkdir vendored
cd vendored
git clone https://github.com/libsdl-org/SDL.git
cd SDL
cmake -S . -B build -DBUILD_SHARED_LIBS=OFF
cmake --build build
git clone https://github.com/libsdl-org/SDL_image.git
cd SDL_image/external
./download.sh
cd ..
cmake -S . -B build -DBUILD_SHARED_LIBS=OFF -DSDLIMAGE_VENDORED=ON -DCMAKE_PREFIX_PATH=../SDL/build
cmake --build build
git clone https://github.com/libsdl-org/SDL_ttf.git
cd SDL_ttf/external/
./download.sh
cd ..
cmake -S . -B build -DBUILD_SHARED_LIBS=OFF -DSDLTTF_VENDORED=ON -DCMAKE_PREFIX_PATH=../SDL/build
cmake --build build
AppImage:
make install DESTDIR=AppDir
appimage-builder

View File

@@ -120,3 +120,6 @@ package() {
done done
} }
------------------------------------ ------------------------------------
x86_64-w64-mingw32-make -f Makefile.mingw
x86_64-w64-mingw32-strip Rousku.exe

View File

@@ -8,7 +8,7 @@ NEW_DIALOG_OBJECTS = Dialog Item Button Checkbox DropDownList Scrollbar Listbox
OBJECTS=main Animal Sound $(addprefix NewDialogs/,$(NEW_DIALOG_OBJECTS)) OBJECTS=main Animal Sound $(addprefix NewDialogs/,$(NEW_DIALOG_OBJECTS))
EXECUTABLE=Rousku EXECUTABLE=Rousku
all: $(EXECUTABLE) all: embed_data.h menu_png.h $(EXECUTABLE)
$(EXECUTABLE): $(OBJECTS:%=%.o) $(EXECUTABLE): $(OBJECTS:%=%.o)
$(CXX) $^ $(LDFLAGS) -o $@ $(CXX) $^ $(LDFLAGS) -o $@
@@ -20,6 +20,25 @@ $(EXECUTABLE): $(OBJECTS:%=%.o)
$(CXX) $(CXXFLAGS) $< -o $@ $(CXX) $(CXXFLAGS) $< -o $@
$(CXX) -MM $(CXXFLAGS) $*.cpp > $*.d $(CXX) -MM $(CXXFLAGS) $*.cpp > $*.d
embed_data.h:
@echo "Generating embed_data.h..."
@{ \
find skin -name "*.png"; \
find skin -name "*.wav"; \
find skin -name "*.tsk"; \
} | while read n; do \
xxd -i "$$n"; \
done > embed_data.h
menu_png.h:
xxd -i menu.png > menu_png.h
.PHONY: clean .PHONY: clean
clean: clean:
rm `find . -name "*.o"` `find . -name "*.d"` $(EXECUTABLE) rm `find . -name "*.o"` `find . -name "*.d"` embed_data.h menu_png.h $(EXECUTABLE)
install:
mkdir -p $(DESTDIR)/usr/bin/
cp $(EXECUTABLE) $(DESTDIR)/usr/bin/$(EXECUTABLE)
mkdir -p $(DESTDIR)/usr/share/icons/
cp skin/Tavallinen/paikka/1.png $(DESTDIR)/usr/share/icons/rousku.png

45
Makefile.linux-static Normal file
View File

@@ -0,0 +1,45 @@
CXX=g++
# needs "override" because x86_64-w64-mingw32-make sets these as cmdline parameters
override CXXFLAGS += -c -Wall -Ivendored/SDL/include -Ivendored/SDL_image/include -Ivendored/SDL_ttf/include
#override LDFLAGS += $(shell pkg-config --libs sdl3 sdl3-ttf sdl3-image)
override LDFLAGS += -Wl,-Bstatic vendored/SDL/build/libSDL3.a vendored/SDL_image/build/libSDL3_image.a vendored/SDL_ttf/build/libSDL3_ttf.a -Wl,-Bdynamic -lpthread -ldl -static-libgcc -static-libstdc++
NEW_DIALOG_OBJECTS = Dialog Item Button Checkbox DropDownList Scrollbar Listbox Frame DlgDropDownList DlgMainMenu
OBJECTS=main Animal Sound $(addprefix NewDialogs/,$(NEW_DIALOG_OBJECTS))
EXECUTABLE=Rousku
all: embed_data.h menu_png.h $(EXECUTABLE)
$(EXECUTABLE): $(OBJECTS:%=%.o)
$(CXX) $^ $(LDFLAGS) -o $@
# pull in dependency info for *existing* .o files
-include $(OBJECTS:%=%.d)
%.o: %.cpp
$(CXX) $(CXXFLAGS) $< -o $@
$(CXX) -MM $(CXXFLAGS) $*.cpp > $*.d
embed_data.h:
@echo "Generating embed_data.h..."
@{ \
find skin -name "*.png"; \
find skin -name "*.wav"; \
find skin -name "*.tsk"; \
} | while read n; do \
xxd -i "$$n"; \
done > embed_data.h
menu_png.h:
xxd -i menu.png > menu_png.h
.PHONY: clean
clean:
rm `find . -name "*.o"` `find . -name "*.d"` embed_data.h menu_png.h $(EXECUTABLE)
install:
mkdir -p $(DESTDIR)/usr/bin/
cp $(EXECUTABLE) $(DESTDIR)/usr/bin/$(EXECUTABLE)
mkdir -p $(DESTDIR)/usr/share/icons/
cp skin/Tavallinen/paikka/1.png $(DESTDIR)/usr/share/icons/rousku.png