Skip to content

Commit

Permalink
Improved version handling, added package target.
Browse files Browse the repository at this point in the history
Version number has been moved to a separate file.
Makefile has been updated to generate C header file
from that version. Added making package, for both
windows and unix-like OS.
  • Loading branch information
mefistotelis committed Sep 24, 2015
1 parent 8248e99 commit 3bedd84
Show file tree
Hide file tree
Showing 5 changed files with 186 additions and 30 deletions.
72 changes: 72 additions & 0 deletions .cproject
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?fileVersion 4.0.0?><cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
<storageModule moduleId="org.eclipse.cdt.core.settings">
<cconfiguration id="org.eclipse.linuxtools.cdt.autotools.core.toolChain.552951907">
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="org.eclipse.linuxtools.cdt.autotools.core.toolChain.552951907" moduleId="org.eclipse.cdt.core.settings" name="Build (GNU)">
<externalSettings/>
<extensions>
<extension id="org.eclipse.cdt.core.MachO64" point="org.eclipse.cdt.core.BinaryParser"/>
<extension id="org.eclipse.cdt.core.Cygwin_PE" point="org.eclipse.cdt.core.BinaryParser"/>
<extension id="org.eclipse.cdt.core.PE" point="org.eclipse.cdt.core.BinaryParser"/>
<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
<extension id="org.eclipse.cdt.core.GNU_ELF" point="org.eclipse.cdt.core.BinaryParser"/>
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
</extensions>
</storageModule>
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
<configuration buildProperties="" id="org.eclipse.linuxtools.cdt.autotools.core.toolChain.552951907" name="Build (GNU)" parent="org.eclipse.cdt.build.core.emptycfg">
<folderInfo id="org.eclipse.linuxtools.cdt.autotools.core.toolChain.552951907.483070632" name="/" resourcePath="">
<toolChain id="org.eclipse.linuxtools.cdt.autotools.core.toolChain.1417498532" name="GNU Autotools Toolchain" superClass="org.eclipse.linuxtools.cdt.autotools.core.toolChain">
<targetPlatform id="org.eclipse.linuxtools.cdt.autotools.core.toolchain.targetPlatform.609600884" isAbstract="false" name="GNU Autotools Target Platform" superClass="org.eclipse.linuxtools.cdt.autotools.core.toolchain.targetPlatform"/>
<builder id="org.eclipse.linuxtools.cdt.autotools.core.toolchain.builder.526272117" managedBuildOn="false" name="null.Build (GNU)" superClass="org.eclipse.linuxtools.cdt.autotools.core.toolchain.builder"/>
<tool id="org.eclipse.linuxtools.cdt.autotools.core.gnu.toolchain.tool.configure.1731222437" name="configure" superClass="org.eclipse.linuxtools.cdt.autotools.core.gnu.toolchain.tool.configure"/>
<tool id="org.eclipse.linuxtools.cdt.autotools.core.toolchain.tool.autogen.1364523677" name="autogen.sh" superClass="org.eclipse.linuxtools.cdt.autotools.core.toolchain.tool.autogen"/>
<tool id="org.eclipse.linuxtools.cdt.autotools.core.toolchain.tool.gcc.1043378701" name="GCC C Compiler" superClass="org.eclipse.linuxtools.cdt.autotools.core.toolchain.tool.gcc">
<inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.1695130749" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
</tool>
<tool id="org.eclipse.linuxtools.cdt.autotools.core.toolchain.tool.gpp.1268388641" name="GCC C++ Compiler" superClass="org.eclipse.linuxtools.cdt.autotools.core.toolchain.tool.gpp">
<inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.951781549" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/>
</tool>
</toolChain>
</folderInfo>
</configuration>
</storageModule>
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
</cconfiguration>
</storageModule>
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
<project id="pngpal2raw.null.397858479" name="pngpal2raw"/>
</storageModule>
<storageModule moduleId="scannerConfiguration">
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
</storageModule>
<storageModule moduleId="org.eclipse.cdt.make.core.buildtargets">
<buildTargets>
<target name="all" path="" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
<buildCommand>make</buildCommand>
<buildArguments/>
<buildTarget>all</buildTarget>
<stopOnError>true</stopOnError>
<useDefaultCommand>true</useDefaultCommand>
<runAllBuilders>true</runAllBuilders>
</target>
<target name="clean" path="" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
<buildCommand>make</buildCommand>
<buildArguments/>
<buildTarget>clean</buildTarget>
<stopOnError>true</stopOnError>
<useDefaultCommand>true</useDefaultCommand>
<runAllBuilders>true</runAllBuilders>
</target>
<target name="package" path="" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
<buildCommand>make</buildCommand>
<buildArguments/>
<buildTarget>package</buildTarget>
<stopOnError>true</stopOnError>
<useDefaultCommand>true</useDefaultCommand>
<runAllBuilders>true</runAllBuilders>
</target>
</buildTargets>
</storageModule>
<storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
</cproject>
27 changes: 27 additions & 0 deletions .project
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>pngpal2raw</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
<triggers>clean,full,incremental,</triggers>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
<triggers>full,incremental,</triggers>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.cdt.core.cnature</nature>
<nature>org.eclipse.cdt.core.ccnature</nature>
<nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
<nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
</natures>
</projectDescription>
100 changes: 75 additions & 25 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -17,20 +17,29 @@
# (at your option) any later version.
#
#******************************************************************************
OS = $(shell uname -s)
ifneq (,$(findstring MINGW,$(OS)))
RES = obj/pngpal2raw_stdres.res
EXEEXT = .exe
ifneq (,$(findstring Windows,$(OS)))
RES = obj/pngpal2raw_stdres.res
EXEEXT = .exe
PKGFMT = zip
PKGOS = win
else
RES =
EXEEXT =
RES =
EXEEXT =
PKGFMT = tar.gz
PKGOS = lin
endif

CPP = g++
CC = gcc
WINDRES = windres
DLLTOOL = dlltool
RM = rm -f
MV = mv -f
CP = cp -f
MKDIR = mkdir -p
ECHO = @echo
TAR = tar
ZIP = zip

BIN = bin/pngpal2raw$(EXEEXT)
LIBS =
Expand All @@ -39,6 +48,7 @@ obj/imagedata.o \
obj/pngpal2raw.o \
$(RES)

GENSRC = obj/ver_defs.h
LINKOBJ = $(OBJS)
LINKLIB = -static -lpng -lz -lm
INCS =
Expand All @@ -56,40 +66,80 @@ WARNFLAGS = -Wall -Wno-sign-compare -Wno-unused-parameter
CXXFLAGS = $(CXXINCS) -std=c++11 -c -fmessage-length=0 $(WARNFLAGS) $(DEPFLAGS) $(OPTFLAGS)
CFLAGS = $(INCS) -c -fmessage-length=0 $(WARNFLAGS) $(DEPFLAGS) $(OPTFLAGS)
LDFLAGS = $(LINKLIB) $(OPTFLAGS) $(DBGFLAGS) $(LINKFLAGS)
RM = rm -f

.PHONY: all all-before all-after clean clean-custom
# load program version
include version.mk
VER_STRING = $(VER_MAJOR).$(VER_MINOR).$(VER_RELEASE).$(VER_BUILD)

.PHONY: all all-before all-after clean clean-custom package pkg-before zip tar.gz

all: all-before $(BIN) all-after

all-before:
$(MKDIR) obj bin

clean: clean-custom
-${RM} $(OBJS) $(BIN) $(LIBS)
-@echo ' '
-${RM} $(OBJS) $(GENSRC) $(BIN) $(LIBS)
-${RM} pkg/*
-$(ECHO) ' '

$(BIN): $(OBJS) $(LIBS)
@echo 'Building target: $@'
-$(ECHO) 'Building target: $@'
$(CPP) $(LINKOBJ) -o "$@" $(LDFLAGS)
@echo 'Finished building target: $@'
@echo ' '
-$(ECHO) 'Finished building target: $@'
-$(ECHO) ' '

obj/%.o: src/%.cpp
@echo 'Building file: $<'
obj/%.o: src/%.cpp $(GENSRC)
-$(ECHO) 'Building file: $<'
$(CPP) $(CXXFLAGS) -o"$@" "$<"
@echo 'Finished building: $<'
@echo ' '
-$(ECHO) 'Finished building: $<'
-$(ECHO) ' '

obj/%.o: src/%.c
@echo 'Building file: $<'
obj/%.o: src/%.c $(GENSRC)
-$(ECHO) 'Building file: $<'
$(CC) $(CFLAGS) -o"$@" "$<"
@echo 'Finished building: $<'
@echo ' '
-$(ECHO) 'Finished building: $<'
-$(ECHO) ' '

obj/%.res: res/%.rc
@echo 'Building resource: $<'
obj/%.res: res/%.rc $(GENSRC)
-$(ECHO) 'Building resource: $<'
$(WINDRES) -i "$<" --input-format=rc -o "$@" -O coff
@echo 'Finished building: $<'
@echo ' '
-$(ECHO) 'Finished building: $<'
-$(ECHO) ' '

obj/ver_defs.h: version.mk Makefile
$(ECHO) \#define VER_MAJOR $(VER_MAJOR) > "$(@D)/tmp"
$(ECHO) \#define VER_MINOR $(VER_MINOR) >> "$(@D)/tmp"
$(ECHO) \#define VER_RELEASE $(VER_RELEASE) >> "$(@D)/tmp"
$(ECHO) \#define VER_BUILD $(VER_BUILD) >> "$(@D)/tmp"
$(ECHO) \#define VER_STRING \"$(VER_STRING)\" >> "$(@D)/tmp"
$(ECHO) \#define PACKAGE_SUFFIX \"$(PACKAGE_SUFFIX)\" >> "$(@D)/tmp"
$(MV) "$(@D)/tmp" "$@"

package: pkg-before $(PKGFMT)

pkg-before:
-${RM} pkg/*
$(MKDIR) pkg
$(CP) bin/* pkg/
$(CP) docs/*_readme.txt pkg/

pkg/%.tar.gz: pkg-before
-$(ECHO) 'Creating package: $<'
cd $(@D); \
$(TAR) --owner=0 --group=0 --exclude=*.tar.gz --exclude=*.zip -zcf "$(@F)" .
-$(ECHO) 'Finished creating: $<'
-$(ECHO) ' '

tar.gz: pkg/pngpal2raw-$(subst .,_,$(VER_STRING))-$(PACKAGE_SUFFIX)-$(PKGOS).tar.gz

pkg/%.zip: pkg-before
-$(ECHO) 'Creating package: $<'
cd $(@D); \
$(ZIP) -x*.tar.gz -x*.zip -9 -r "$(@F)" .
-$(ECHO) 'Finished creating: $<'
-$(ECHO) ' '

zip: pkg/pngpal2raw-$(subst .,_,$(VER_STRING))-$(PACKAGE_SUFFIX)-$(PKGOS).zip

#******************************************************************************
12 changes: 7 additions & 5 deletions src/pngpal2raw_version.h
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,13 @@
#define PNGPAL2RAW_VERSION_H

/* Version definitions */
#define VER_MAJOR 1
#define VER_MINOR 0
#define VER_RELEASE 2
#define VER_BUILD 2
#define VER_STRING "1.0.2.2"
#include "../obj/ver_defs.h"
//#define VER_MAJOR 1
//#define VER_MINOR 2
//#define VER_RELEASE 3
//#define VER_BUILD 4
//#define VER_STRING "1.2.3.4"

/* Program name, copyrights and file names */
#define PROGRAM_NAME "PngPal2raw"
#define PROGRAM_FULL_NAME "PNG and PAL to RAW files converter"
Expand Down
5 changes: 5 additions & 0 deletions version.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
VER_MAJOR=1
VER_MINOR=0
VER_RELEASE=2
VER_BUILD=35
PACKAGE_SUFFIX=devel

0 comments on commit 3bedd84

Please sign in to comment.