Skip to content

Commit f42639b

Browse files
committed
add: ps2sdkinfo tool for version information
1 parent 28a844b commit f42639b

File tree

2 files changed

+127
-0
lines changed

2 files changed

+127
-0
lines changed

tools/ps2sdkinfo/Makefile

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
# _____ ___ ____ ___ ____
2+
# ____| | ____| | | |____|
3+
# | ___| |____ ___| ____| | \ PS2DEV Open Source Project.
4+
#-----------------------------------------------------------------------
5+
# Copyright ps2dev - http://www.ps2dev.org
6+
# Licenced under Academic Free License version 2.0
7+
# Review ps2sdk README & LICENSE files for further details.
8+
9+
TOOLS_INCS += -I$(TOOLS_OBJS_DIR)
10+
TOOLS_CFLAGS += -std=c99 -D_DEFAULT_SOURCE=1
11+
TOOLS_LDFLAGS +=
12+
13+
TOOLS_OBJS = main.o
14+
15+
PS2SDK_GIT_REMOTE_URL := $(shell git -C $(CURDIR) config --get remote.origin.url)
16+
PS2SDK_GIT_HASH := $(shell git -C $(CURDIR) log -1 '--format=%H')
17+
PS2SDK_GIT_TAG := $(shell git -C $(CURDIR) log -1 '--format=%(describe:tags,abbrev=0)')
18+
PS2SDK_GIT_TIME := $(shell git -C $(CURDIR) log -1 '--format=%ct')
19+
PS2SDK_GIT_TIME_ISO8601 := $(shell git -C $(CURDIR) log -1 '--format=%cd' --date="format:%Y-%m-%dT%H:%M:%S%z")
20+
PS2SDK_GIT_TIME_RFC2822 := $(shell git -C $(CURDIR) log -1 '--format=%cd' --date="format:%a, %d %b %Y %H:%M:%S %z")
21+
22+
PS2SDK_BUILD_PATH := $(PS2SDKSRC)
23+
PS2SDK_BUILD_USER := $(shell whoami)
24+
PS2SDK_BUILD_MACHINE := $(shell hostname)
25+
PS2SDK_BUILD_TIME := $(shell date +"%s")
26+
PS2SDK_BUILD_TIME_ISO8601 := $(shell date -d'@'$(PS2SDK_BUILD_TIME) +"%Y-%m-%dT%H:%M:%S%z")
27+
PS2SDK_BUILD_TIME_RFC2822 := $(shell date -d'@'$(PS2SDK_BUILD_TIME) +"%a, %d %b %Y %H:%M:%S %z")
28+
29+
include $(PS2SDKSRC)/Defs.make
30+
include $(PS2SDKSRC)/tools/Rules.bin.make
31+
include $(PS2SDKSRC)/tools/Rules.make
32+
include $(PS2SDKSRC)/tools/Rules.release
33+
34+
$(TOOLS_OBJS_DIR)gitinfo.h:
35+
printf '/* Git info for ps2sdk */\n' > $@ && \
36+
printf '#ifndef %s\n#define %s "%s"\n#endif\n' PS2SDK_GIT_REMOTE_URL PS2SDK_GIT_REMOTE_URL "$(PS2SDK_GIT_REMOTE_URL)" >> $@ && \
37+
printf '#ifndef %s\n#define %s "%s"\n#endif\n' PS2SDK_GIT_HASH PS2SDK_GIT_HASH "$(PS2SDK_GIT_HASH)" >> $@ && \
38+
printf '#ifndef %s\n#define %s "%s"\n#endif\n' PS2SDK_GIT_TIME PS2SDK_GIT_TIME "$(PS2SDK_GIT_TIME)" >> $@ && \
39+
printf '#ifndef %s\n#define %s "%s"\n#endif\n' PS2SDK_GIT_TIME_ISO8601 PS2SDK_GIT_TIME_ISO8601 "$(PS2SDK_GIT_TIME_ISO8601)" >> $@ && \
40+
printf '#ifndef %s\n#define %s "%s"\n#endif\n' PS2SDK_GIT_TIME_RFC2822 PS2SDK_GIT_TIME_RFC2822 "$(PS2SDK_GIT_TIME_RFC2822)" >> $@ && \
41+
printf '#ifndef %s\n#define %s "%s"\n#endif\n' PS2SDK_GIT_TAG PS2SDK_GIT_TAG "$(PS2SDK_GIT_TAG)" >> $@ && \
42+
printf '/* Git info for ps2sdk end */\n' >> $@
43+
44+
$(TOOLS_OBJS_DIR)buildinfo.h:
45+
printf '/* Build info for ps2sdk */\n' > $@ && \
46+
printf '#ifndef %s\n#define %s "%s"\n#endif\n' PS2SDK_BUILD_PATH PS2SDK_BUILD_PATH "$(PS2SDK_BUILD_PATH)" >> $@ && \
47+
printf '#ifndef %s\n#define %s "%s"\n#endif\n' PS2SDK_BUILD_USER PS2SDK_BUILD_USER "$(PS2SDK_BUILD_USER)" >> $@ && \
48+
printf '#ifndef %s\n#define %s "%s"\n#endif\n' PS2SDK_BUILD_MACHINE PS2SDK_BUILD_MACHINE "$(PS2SDK_BUILD_MACHINE)" >> $@ && \
49+
printf '#ifndef %s\n#define %s "%s"\n#endif\n' PS2SDK_BUILD_TIME PS2SDK_BUILD_TIME "$(PS2SDK_BUILD_TIME)" >> $@ && \
50+
printf '#ifndef %s\n#define %s "%s"\n#endif\n' PS2SDK_BUILD_TIME_ISO8601 PS2SDK_BUILD_TIME_ISO8601 "$(PS2SDK_BUILD_TIME_ISO8601)" >> $@ && \
51+
printf '#ifndef %s\n#define %s "%s"\n#endif\n' PS2SDK_BUILD_TIME_RFC2822 PS2SDK_BUILD_TIME_RFC2822 "$(PS2SDK_BUILD_TIME_RFC2822)" >> $@ && \
52+
printf '/* Build info for ps2sdk end */\n' >> $@
53+
54+
$(TOOLS_OBJS_DIR)main.o: $(TOOLS_OBJS_DIR)gitinfo.h $(TOOLS_OBJS_DIR)buildinfo.h

tools/ps2sdkinfo/src/main.c

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
/*
2+
# _____ ___ ____ ___ ____
3+
# ____| | ____| | | |____|
4+
# | ___| |____ ___| ____| | \ PS2DEV Open Source Project.
5+
#-----------------------------------------------------------------------
6+
# Copyright ps2dev - http://www.ps2dev.org
7+
# Licenced under Academic Free License version 2.0
8+
# Review ps2sdk README & LICENSE files for further details.
9+
*/
10+
11+
#include <stdio.h>
12+
#include <string.h>
13+
#include "gitinfo.h"
14+
#include "buildinfo.h"
15+
16+
typedef struct info_item_
17+
{
18+
const char *key;
19+
const char *value;
20+
} info_item_t;
21+
22+
static info_item_t info_items[] =
23+
{
24+
{"PS2SDK_GIT_REMOTE_URL", PS2SDK_GIT_REMOTE_URL},
25+
{"PS2SDK_GIT_HASH", PS2SDK_GIT_HASH},
26+
{"PS2SDK_GIT_TIME", PS2SDK_GIT_TIME},
27+
{"PS2SDK_GIT_TIME_ISO8601", PS2SDK_GIT_TIME_ISO8601},
28+
{"PS2SDK_GIT_TIME_RFC2822", PS2SDK_GIT_TIME_RFC2822},
29+
{"PS2SDK_GIT_TAG", PS2SDK_GIT_TAG},
30+
{"PS2SDK_BUILD_PATH", PS2SDK_BUILD_PATH},
31+
{"PS2SDK_BUILD_USER", PS2SDK_BUILD_USER},
32+
{"PS2SDK_BUILD_MACHINE", PS2SDK_BUILD_MACHINE},
33+
{"PS2SDK_BUILD_TIME", PS2SDK_BUILD_TIME},
34+
{"PS2SDK_BUILD_TIME_ISO8601", PS2SDK_BUILD_TIME_ISO8601},
35+
{"PS2SDK_BUILD_TIME_RFC2822", PS2SDK_BUILD_TIME_RFC2822},
36+
{NULL, NULL},
37+
};
38+
39+
int main(int argc, char *argv[])
40+
{
41+
int retval;
42+
retval = 0;
43+
if (argc <= 1)
44+
{
45+
for (int i = 0; info_items[i].key != NULL; i += 1)
46+
{
47+
printf("%s=%s\n", info_items[i].key, info_items[i].value);
48+
}
49+
return retval;
50+
}
51+
52+
for (int i = 1; i < argc; i += 1)
53+
{
54+
int found;
55+
found = 0;
56+
for (int j = 0; info_items[j].key != NULL; j += 1)
57+
{
58+
if (strcmp(info_items[j].key, argv[i]) == 0)
59+
{
60+
printf("%s\n", info_items[j].value);
61+
found = 1;
62+
break;
63+
}
64+
}
65+
if (found == 0)
66+
{
67+
printf("%s\n", "NOTFOUND");
68+
retval = 1;
69+
}
70+
}
71+
72+
return retval;
73+
}

0 commit comments

Comments
 (0)