Skip to content

Commit 3bedd84

Browse files
committed
Improved version handling, added package target.
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.
1 parent 8248e99 commit 3bedd84

File tree

5 files changed

+186
-30
lines changed

5 files changed

+186
-30
lines changed

.cproject

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2+
<?fileVersion 4.0.0?><cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
3+
<storageModule moduleId="org.eclipse.cdt.core.settings">
4+
<cconfiguration id="org.eclipse.linuxtools.cdt.autotools.core.toolChain.552951907">
5+
<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)">
6+
<externalSettings/>
7+
<extensions>
8+
<extension id="org.eclipse.cdt.core.MachO64" point="org.eclipse.cdt.core.BinaryParser"/>
9+
<extension id="org.eclipse.cdt.core.Cygwin_PE" point="org.eclipse.cdt.core.BinaryParser"/>
10+
<extension id="org.eclipse.cdt.core.PE" point="org.eclipse.cdt.core.BinaryParser"/>
11+
<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
12+
<extension id="org.eclipse.cdt.core.GNU_ELF" point="org.eclipse.cdt.core.BinaryParser"/>
13+
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
14+
</extensions>
15+
</storageModule>
16+
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
17+
<configuration buildProperties="" id="org.eclipse.linuxtools.cdt.autotools.core.toolChain.552951907" name="Build (GNU)" parent="org.eclipse.cdt.build.core.emptycfg">
18+
<folderInfo id="org.eclipse.linuxtools.cdt.autotools.core.toolChain.552951907.483070632" name="/" resourcePath="">
19+
<toolChain id="org.eclipse.linuxtools.cdt.autotools.core.toolChain.1417498532" name="GNU Autotools Toolchain" superClass="org.eclipse.linuxtools.cdt.autotools.core.toolChain">
20+
<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"/>
21+
<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"/>
22+
<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"/>
23+
<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"/>
24+
<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">
25+
<inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.1695130749" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
26+
</tool>
27+
<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">
28+
<inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.951781549" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/>
29+
</tool>
30+
</toolChain>
31+
</folderInfo>
32+
</configuration>
33+
</storageModule>
34+
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
35+
</cconfiguration>
36+
</storageModule>
37+
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
38+
<project id="pngpal2raw.null.397858479" name="pngpal2raw"/>
39+
</storageModule>
40+
<storageModule moduleId="scannerConfiguration">
41+
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
42+
</storageModule>
43+
<storageModule moduleId="org.eclipse.cdt.make.core.buildtargets">
44+
<buildTargets>
45+
<target name="all" path="" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
46+
<buildCommand>make</buildCommand>
47+
<buildArguments/>
48+
<buildTarget>all</buildTarget>
49+
<stopOnError>true</stopOnError>
50+
<useDefaultCommand>true</useDefaultCommand>
51+
<runAllBuilders>true</runAllBuilders>
52+
</target>
53+
<target name="clean" path="" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
54+
<buildCommand>make</buildCommand>
55+
<buildArguments/>
56+
<buildTarget>clean</buildTarget>
57+
<stopOnError>true</stopOnError>
58+
<useDefaultCommand>true</useDefaultCommand>
59+
<runAllBuilders>true</runAllBuilders>
60+
</target>
61+
<target name="package" path="" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
62+
<buildCommand>make</buildCommand>
63+
<buildArguments/>
64+
<buildTarget>package</buildTarget>
65+
<stopOnError>true</stopOnError>
66+
<useDefaultCommand>true</useDefaultCommand>
67+
<runAllBuilders>true</runAllBuilders>
68+
</target>
69+
</buildTargets>
70+
</storageModule>
71+
<storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
72+
</cproject>

.project

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<projectDescription>
3+
<name>pngpal2raw</name>
4+
<comment></comment>
5+
<projects>
6+
</projects>
7+
<buildSpec>
8+
<buildCommand>
9+
<name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
10+
<triggers>clean,full,incremental,</triggers>
11+
<arguments>
12+
</arguments>
13+
</buildCommand>
14+
<buildCommand>
15+
<name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
16+
<triggers>full,incremental,</triggers>
17+
<arguments>
18+
</arguments>
19+
</buildCommand>
20+
</buildSpec>
21+
<natures>
22+
<nature>org.eclipse.cdt.core.cnature</nature>
23+
<nature>org.eclipse.cdt.core.ccnature</nature>
24+
<nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
25+
<nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
26+
</natures>
27+
</projectDescription>

Makefile

Lines changed: 75 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -17,20 +17,29 @@
1717
# (at your option) any later version.
1818
#
1919
#******************************************************************************
20-
OS = $(shell uname -s)
21-
ifneq (,$(findstring MINGW,$(OS)))
22-
RES = obj/pngpal2raw_stdres.res
23-
EXEEXT = .exe
20+
ifneq (,$(findstring Windows,$(OS)))
21+
RES = obj/pngpal2raw_stdres.res
22+
EXEEXT = .exe
23+
PKGFMT = zip
24+
PKGOS = win
2425
else
25-
RES =
26-
EXEEXT =
26+
RES =
27+
EXEEXT =
28+
PKGFMT = tar.gz
29+
PKGOS = lin
2730
endif
31+
2832
CPP = g++
2933
CC = gcc
3034
WINDRES = windres
3135
DLLTOOL = dlltool
3236
RM = rm -f
37+
MV = mv -f
38+
CP = cp -f
3339
MKDIR = mkdir -p
40+
ECHO = @echo
41+
TAR = tar
42+
ZIP = zip
3443

3544
BIN = bin/pngpal2raw$(EXEEXT)
3645
LIBS =
@@ -39,6 +48,7 @@ obj/imagedata.o \
3948
obj/pngpal2raw.o \
4049
$(RES)
4150

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

61-
.PHONY: all all-before all-after clean clean-custom
70+
# load program version
71+
include version.mk
72+
VER_STRING = $(VER_MAJOR).$(VER_MINOR).$(VER_RELEASE).$(VER_BUILD)
73+
74+
.PHONY: all all-before all-after clean clean-custom package pkg-before zip tar.gz
6275

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

6578
all-before:
6679
$(MKDIR) obj bin
6780

6881
clean: clean-custom
69-
-${RM} $(OBJS) $(BIN) $(LIBS)
70-
-@echo ' '
82+
-${RM} $(OBJS) $(GENSRC) $(BIN) $(LIBS)
83+
-${RM} pkg/*
84+
-$(ECHO) ' '
7185

7286
$(BIN): $(OBJS) $(LIBS)
73-
@echo 'Building target: $@'
87+
-$(ECHO) 'Building target: $@'
7488
$(CPP) $(LINKOBJ) -o "$@" $(LDFLAGS)
75-
@echo 'Finished building target: $@'
76-
@echo ' '
89+
-$(ECHO) 'Finished building target: $@'
90+
-$(ECHO) ' '
7791

78-
obj/%.o: src/%.cpp
79-
@echo 'Building file: $<'
92+
obj/%.o: src/%.cpp $(GENSRC)
93+
-$(ECHO) 'Building file: $<'
8094
$(CPP) $(CXXFLAGS) -o"$@" "$<"
81-
@echo 'Finished building: $<'
82-
@echo ' '
95+
-$(ECHO) 'Finished building: $<'
96+
-$(ECHO) ' '
8397

84-
obj/%.o: src/%.c
85-
@echo 'Building file: $<'
98+
obj/%.o: src/%.c $(GENSRC)
99+
-$(ECHO) 'Building file: $<'
86100
$(CC) $(CFLAGS) -o"$@" "$<"
87-
@echo 'Finished building: $<'
88-
@echo ' '
101+
-$(ECHO) 'Finished building: $<'
102+
-$(ECHO) ' '
89103

90-
obj/%.res: res/%.rc
91-
@echo 'Building resource: $<'
104+
obj/%.res: res/%.rc $(GENSRC)
105+
-$(ECHO) 'Building resource: $<'
92106
$(WINDRES) -i "$<" --input-format=rc -o "$@" -O coff
93-
@echo 'Finished building: $<'
94-
@echo ' '
107+
-$(ECHO) 'Finished building: $<'
108+
-$(ECHO) ' '
109+
110+
obj/ver_defs.h: version.mk Makefile
111+
$(ECHO) \#define VER_MAJOR $(VER_MAJOR) > "$(@D)/tmp"
112+
$(ECHO) \#define VER_MINOR $(VER_MINOR) >> "$(@D)/tmp"
113+
$(ECHO) \#define VER_RELEASE $(VER_RELEASE) >> "$(@D)/tmp"
114+
$(ECHO) \#define VER_BUILD $(VER_BUILD) >> "$(@D)/tmp"
115+
$(ECHO) \#define VER_STRING \"$(VER_STRING)\" >> "$(@D)/tmp"
116+
$(ECHO) \#define PACKAGE_SUFFIX \"$(PACKAGE_SUFFIX)\" >> "$(@D)/tmp"
117+
$(MV) "$(@D)/tmp" "$@"
118+
119+
package: pkg-before $(PKGFMT)
120+
121+
pkg-before:
122+
-${RM} pkg/*
123+
$(MKDIR) pkg
124+
$(CP) bin/* pkg/
125+
$(CP) docs/*_readme.txt pkg/
126+
127+
pkg/%.tar.gz: pkg-before
128+
-$(ECHO) 'Creating package: $<'
129+
cd $(@D); \
130+
$(TAR) --owner=0 --group=0 --exclude=*.tar.gz --exclude=*.zip -zcf "$(@F)" .
131+
-$(ECHO) 'Finished creating: $<'
132+
-$(ECHO) ' '
133+
134+
tar.gz: pkg/pngpal2raw-$(subst .,_,$(VER_STRING))-$(PACKAGE_SUFFIX)-$(PKGOS).tar.gz
135+
136+
pkg/%.zip: pkg-before
137+
-$(ECHO) 'Creating package: $<'
138+
cd $(@D); \
139+
$(ZIP) -x*.tar.gz -x*.zip -9 -r "$(@F)" .
140+
-$(ECHO) 'Finished creating: $<'
141+
-$(ECHO) ' '
142+
143+
zip: pkg/pngpal2raw-$(subst .,_,$(VER_STRING))-$(PACKAGE_SUFFIX)-$(PKGOS).zip
144+
95145
#******************************************************************************

src/pngpal2raw_version.h

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,13 @@
2020
#define PNGPAL2RAW_VERSION_H
2121

2222
/* Version definitions */
23-
#define VER_MAJOR 1
24-
#define VER_MINOR 0
25-
#define VER_RELEASE 2
26-
#define VER_BUILD 2
27-
#define VER_STRING "1.0.2.2"
23+
#include "../obj/ver_defs.h"
24+
//#define VER_MAJOR 1
25+
//#define VER_MINOR 2
26+
//#define VER_RELEASE 3
27+
//#define VER_BUILD 4
28+
//#define VER_STRING "1.2.3.4"
29+
2830
/* Program name, copyrights and file names */
2931
#define PROGRAM_NAME "PngPal2raw"
3032
#define PROGRAM_FULL_NAME "PNG and PAL to RAW files converter"

version.mk

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
VER_MAJOR=1
2+
VER_MINOR=0
3+
VER_RELEASE=2
4+
VER_BUILD=35
5+
PACKAGE_SUFFIX=devel

0 commit comments

Comments
 (0)