changeset 50:402446a76794

And more build system work.
author Matti Hamalainen <ccr@tnsp.org>
date Fri, 07 Apr 2017 06:04:07 +0300
parents b86eb06070ba
children d46d3529fc9e
files Makefile Makefile.cross-mingw-win32 Makefile.gen VERSION build-win32.sh icon-64.png logo.png resource.rc.in
diffstat 8 files changed, 95 insertions(+), 76 deletions(-) [+]
line wrap: on
line diff
--- a/Makefile	Fri Apr 07 05:40:22 2017 +0300
+++ b/Makefile	Fri Apr 07 06:04:07 2017 +0300
@@ -1,26 +1,30 @@
-#
-# Configuration settings for Linux and generic UNIX
-# See other Makefile.* files for more options.
-#
+###
+### Configuration settings for Linux and generic UNIX
+### See other Makefile.* files for more options.
+###
 
 # Miscellaneous
 QT5_PREFIX = 
 BINTOOL_PREFIX =
+
 PREFIX = /usr/local
 BINPATH = ./
 OBJPATH = obj/unix/
 EXEEXT =
 
 # Compiler flags and linker flags
-DEFINES = -DQT_DEPRECATED_WARNINGS -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_SQL_LIB -DQT_CORE_LIB
-INCPATH = -I. \
-	-I/usr/include/x86_64-linux-gnu/qt5 \
-	-I/usr/include/x86_64-linux-gnu/qt5/QtWidgets \
-	-I/usr/include/x86_64-linux-gnu/qt5/QtGui \
-	-I/usr/include/x86_64-linux-gnu/qt5/QtSql \
-	-I/usr/include/x86_64-linux-gnu/qt5/QtCore \
-	-I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++-64
+DEFINES = 
+INCPATH = -I. `pkg-config --cflags Qt5Core Qt5Gui Qt5Widgets Qt5Sql`
+
 
+CFLAGS += -pipe -O2 -Wall -W -D_REENTRANT -fPIC
+CXXFLAGS += -pipe -O2 -Wall -W -D_REENTRANT -fPIC
+LDFLAGS += -Wl,-O1
+LIBS += `pkg-config --libs Qt5Core Qt5Gui Qt5Widgets Qt5Sql`
+
+APP_DEPS = 
+
+# Qt tools
 QT_RCC = rcc
 
 QT_MOC = moc
@@ -29,10 +33,4 @@
 QT_UIC = uic
 QT_UIC_FLAGS =
 
-CFLAGS += -pipe -O2 -Wall -W -D_REENTRANT -fPIC
-CXXFLAGS += -pipe -O2 -Wall -W -D_REENTRANT -fPIC
-LDFLAGS += -Wl,-O1
-LIBS += -L/usr/X11R6/lib64 -lQt5Widgets -lQt5Gui -lQt5Sql -lQt5Core -lGL -lpthread
-
-
 include Makefile.gen
--- a/Makefile.cross-mingw-win32	Fri Apr 07 05:40:22 2017 +0300
+++ b/Makefile.cross-mingw-win32	Fri Apr 07 06:04:07 2017 +0300
@@ -1,6 +1,6 @@
-#
-# For win32 version cross-compilation with MinGW suite @ Linux
-#
+###
+### For win32 version cross-compilation with MinGW suite @ Linux
+###
 
 # Miscellaneous
 QT5_PREFIX ?= /misc/packages/qt5-src/qtbase
@@ -11,7 +11,7 @@
 EXEEXT = .exe
 
 # Compiler flags and linker flags
-DEFINES = -DUNICODE -DQT_DEPRECATED_WARNINGS -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_SQL_LIB -DQT_CORE_LIB -DQT_NEEDS_QMAIN
+DEFINES = -DUNICODE -DQT_NEEDS_QMAIN
 INCPATH = -I. \
 	-I$(QT5_PREFIX)/include \
 	-I$(QT5_PREFIX)/include/QtWidgets \
@@ -20,14 +20,6 @@
 	-I$(QT5_PREFIX)/include/QtCore \
 	-I$(QT5_PREFIX)/mkspecs/win32-g++
 
-QT_RCC = $(QT5_PREFIX)/bin/rcc
-
-QT_MOC = $(QT5_PREFIX)/bin/moc
-QT_MOC_FLAGS = --include $(OBJPATH)/moc_predefs.h
-
-QT_UIC = $(QT5_PREFIX)/bin/uic
-QT_UIC_FLAGS =
-
 CFLAGS += -pipe -fno-keep-inline-dllexport -O2 -Wall -Wextra
 CXXFLAGS += -pipe -fno-keep-inline-dllexport -O2 -frtti -Wall -Wextra -fexceptions -mthreads
 LDFLAGS += -Wl,-s -Wl,-subsystem,windows -mthreads
@@ -39,6 +31,18 @@
 	$(QT5_PREFIX)/lib/libQt5Sql.a \
 	$(QT5_PREFIX)/lib/libQt5Core.a 
 
+APP_DEPS = resource.o
+
+# Qt tools
+QT_RCC = $(QT5_PREFIX)/bin/rcc
+
+QT_MOC = $(QT5_PREFIX)/bin/moc
+QT_MOC_FLAGS = --include moc_predefs.h
+QT_MOC_RULES = moc_predefs.h
+
+QT_UIC = $(QT5_PREFIX)/bin/uic
+QT_UIC_FLAGS =
+
+
 
 include Makefile.gen
-	
\ No newline at end of file
--- a/Makefile.gen	Fri Apr 07 05:40:22 2017 +0300
+++ b/Makefile.gen	Fri Apr 07 06:04:07 2017 +0300
@@ -1,4 +1,8 @@
+###
+### Main build file
+###
 
+# Tools
 CC = $(BINTOOL_PREFIX)gcc
 CXX = $(BINTOOL_PREFIX)g++
 AR = $(BINTOOL_PREFIX)ar
@@ -9,37 +13,38 @@
 MKDIR ?= mkdir
 MKDIR_P ?= $(MKDIR) -p
 
+# Common defines
+DEFINES += -DQT_DEPRECATED_WARNINGS -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_SQL_LIB -DQT_CORE_LIB
 
+# Application stuff
 APP_BIN=$(BINPATH)Syntilista$(EXEEXT)
 APP_OBJS=main.o qrc_Syntilista.o moc_main.o
-APP_VERSION=
+APP_VERSION := $(shell cat VERSION)
+comma:= ,
+APP_VERSION_COM := $(subst .,$(comma),$(APP_VERSION))
+CXXFLAGS += -DAPP_VERSION=\"$(APP_VERSION)\"
 
 LOGO_SVG ?= kampuscafe4.svg
 ICON_PNGS = icon-16.png icon-32.png icon-48.png icon-64.png 
 
 
+# And target lists
 TARGETS = $(APP_BIN)
 NOBUILD_TARGETS += $(OBJPATH) $(BINPATH)
-NOINST_TARGETS += qrc_Syntilista.cpp
-# moc_main.cpp
+NOINST_TARGETS += 
 
 
-##
-## Version strings
-##
-APP_VERSION := $(shell cat VERSION)
-comma:= ,
-APP_VERSION_COM := $(subst .,$(comma),$(NN_VERSION))
-CXXFLAGS += -DAPP_VERSION=\"$(APP_VERSION)\"
-
-
-##
-## Target rules
-##
+###
+### Target rules
+###
 all: $(NOBUILD_TARGETS) $(NOINST_TARGETS) $(TARGETS)
 
 
-moc_%.cpp: %.h
+moc_predefs.h:
+	@echo "" > $(OBJPATH)dummy.cpp
+	@$(CXX) $(CXXFLAGS) -dM -E -o $@ $(OBJPATH)dummy.cpp
+
+moc_%.cpp: %.h $(QT_MOC_RULES)
 	@echo " Qt::MOC $@ $<"
 	@$(QT_MOC) $(DEFINES) $(QT_MOC_FLAGS) $(INCPATH) $< -o $@
 
@@ -61,17 +66,16 @@
 	@$(CXX) $(CXXFLAGS) $(DEFINES) $(INCPATH) -c -o $@ $<
 
 
-###
-### Windows specific targets
-###
-$(OBJPATH)moc_predefs.h: $(QT5_PREFIX)/mkspecs/features/data/dummy.cpp
-	@$(CXX) $(CXXFLAGS) -dM -E -o $@ $<
 
-resource.rc: resource.rc.in $VERSION
-	@sed -e "s/@VERSION@/$(APP_VERSION)/g;s/@VERSION_COM@/$(APP_VERSION_COM)/g;s#@EXE@#$(notdir $(APP_BIN))#g" < $< > $@
+###
+### Windows specific rules
+###
+resource.rc: resource.rc.in icon.ico VERSION
+	@sed -e "s/@APP_VERSION@/$(APP_VERSION)/g;s/@APP_VERSION_COM@/$(APP_VERSION_COM)/g;s#@APP_EXE@#$(notdir $(APP_BIN))#g" < $< > $@
 
-resource.o: resource.rc
-	$(WINDRES) $< -O coff -o $@
+%.o: %.rc
+	@echo " WINDRES $<"
+	@$(WINDRES) $< -O coff -o $@
 
 
 ###
@@ -83,8 +87,8 @@
 logo.png: $(LOGO_SVG)
 	inkscape --export-area-page -w 300 -h 280 -e "$@" "$<"
 
-Syntilista.ico: $(ICON_PNGS)
-	convert $< $+
+icon.ico: $(ICON_PNGS)
+	convert $< $@
 
 qrc_Syntilista.cpp: Syntilista.qrc logo.png $(ICON_PNGS)
 	@echo " Qt:RCC $@ $<"
@@ -95,14 +99,14 @@
 	@$(CXX) $(CXXFLAGS) $(DEFINES) $(INCPATH) -c -o $@ $<
 
 
-$(APP_BIN): $(addprefix $(OBJPATH),$(APP_OBJS))
+$(APP_BIN): $(addprefix $(OBJPATH),$(APP_OBJS)) $(APP_DEPS)
 	@echo " LINK $@"
 	@$(CXX) $(LDFLAGS) -o $@ $+ $(LIBS)
 
 
-##
-## Special targets
-##
+###
+### Special targets
+###
 clean:
 	$(RM) $(TARGETS) $(NOINST_TARGETS) $(OBJPATH)*.o
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/VERSION	Fri Apr 07 06:04:07 2017 +0300
@@ -0,0 +1,1 @@
+0.3
--- a/build-win32.sh	Fri Apr 07 05:40:22 2017 +0300
+++ b/build-win32.sh	Fri Apr 07 06:04:07 2017 +0300
@@ -3,9 +3,8 @@
 INSTALL_WINE="$HOME/.wine/drive_c/Syntilista/"
 
 QT5PATH="/misc/packages/qt5-src/qtbase/"
-BUILDPATH="release/"
+BUILDPATH="win32/"
 MINGWPATH="/usr/lib/gcc/i686-w64-mingw32/6.3-win32/"
-QMAKE="$QT5PATH/bin/qmake"
 
 do_cpinstall()
 {
@@ -40,20 +39,13 @@
     done
 
     cp -f "$BUILDPATH/Syntilista.exe" "$TARGET"
+    return 0
 }
 
-if test ! -e "$QMAKE"; then
-    echo "ERROR: $QMAKE not found."
-    exit 1
-fi
 
-$QMAKE
+### Create cross-building makefiles
+make -f Makefile.cross-mingw-win32 QT5_PREFIX="$QT5PATH" BINPATH="$BUILDPATH"
 
-#make -f Makefile.Release clean
-make -f Makefile.Release
-
-do_install "$INSTALL_USB"
-rm -f "$INSTALL_USB/syntilista.sqlite3"
+### Install to targets
+do_install "$INSTALL_USB" && rm -f "$INSTALL_USB/syntilista.sqlite3"
 do_install "$INSTALL_WINE"
-
-qmake
Binary file icon-64.png has changed
Binary file logo.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/resource.rc.in	Fri Apr 07 06:04:07 2017 +0300
@@ -0,0 +1,20 @@
+MAINICON ICON "icon.ico"
+1 VERSIONINFO
+FILEVERSION     1,0,0,0
+PRODUCTVERSION  @APP_VERSION_COM@,0
+BEGIN
+  BLOCK "StringFileInfo"
+  BEGIN
+    BLOCK "040904E4"
+    BEGIN
+      VALUE "CompanyName", "TNSP"
+      VALUE "FileDescription", "Cafe Kampus Syntilista"
+      VALUE "FileVersion", "1.0"
+      VALUE "InternalName", "Syntilista"
+      VALUE "LegalCopyright", "(C) Copyright 2017 Tecnic Software productions"
+      VALUE "OriginalFilename", "@APP_EXE@"
+      VALUE "ProductName", "Syntilista"
+      VALUE "ProductVersion", "@APP_VERSION@"
+    END
+  END
+END