src/http.o src/hpack-dec.o src/action.o src/proto_udp.o src/http_acl.o \
src/xxhash.o src/hpack-enc.o src/h2.o src/freq_ctr.o src/lru.o \
src/protocol.o src/arg.o src/hpack-huff.o src/hdr_idx.o src/base64.o \
- src/hash.o src/mailers.o src/activity.o src/http_msg.o
+ src/hash.o src/mailers.o src/activity.o src/http_msg.o src/version.o
EBTREE_OBJS = $(EBTREE_DIR)/ebtree.o $(EBTREE_DIR)/eb32sctree.o \
$(EBTREE_DIR)/eb32tree.o $(EBTREE_DIR)/eb64tree.o \
%.o: %.c $(DEP)
$(cmd_CC) $(COPTS) -c -o $@ $<
+# rebuild it every time
+.PHONY: src/version.c
+
src/trace.o: src/trace.c $(DEP)
$(cmd_CC) $(TRACE_COPTS) -c -o $@ $<
#error "Must define CONFIG_HAPROXY_DATE"
#endif
+extern const char *haproxy_version;
+extern const char *haproxy_date;
+extern const char *stats_version_string;
+
#endif /* _COMMON_VERSION_H */
static void display_version()
{
- printf("HA-Proxy version " HAPROXY_VERSION " " HAPROXY_DATE" - https://haproxy.org/\n");
+ printf("HA-Proxy version %s %s - https://haproxy.org/\n", haproxy_version, haproxy_date);
}
static void display_build_opts()
"<td align=\"left\" valign=\"top\" nowrap width=\"1%%\">"
"<b>Display option:</b><ul style=\"margin-top: 0.25em;\">"
"",
- (uri->flags & ST_HIDEVER) ? "" : (STATS_VERSION_STRING),
+ (uri->flags & ST_HIDEVER) ? "" : (stats_version_string),
pid, (uri->flags & ST_SHNODE) ? " on " : "",
(uri->flags & ST_SHNODE) ? (uri->node ? uri->node : global.node) : "",
(uri->flags & ST_SHDESC) ? ": " : "",
memset(info, 0, sizeof(*info) * len);
info[INF_NAME] = mkf_str(FO_PRODUCT|FN_OUTPUT|FS_SERVICE, PRODUCT_NAME);
- info[INF_VERSION] = mkf_str(FO_PRODUCT|FN_OUTPUT|FS_SERVICE, HAPROXY_VERSION);
- info[INF_RELEASE_DATE] = mkf_str(FO_PRODUCT|FN_OUTPUT|FS_SERVICE, HAPROXY_DATE);
+ info[INF_VERSION] = mkf_str(FO_PRODUCT|FN_OUTPUT|FS_SERVICE, haproxy_version);
+ info[INF_RELEASE_DATE] = mkf_str(FO_PRODUCT|FN_OUTPUT|FS_SERVICE, haproxy_date);
info[INF_NBTHREAD] = mkf_u32(FO_CONFIG|FS_SERVICE, global.nbthread);
info[INF_NBPROC] = mkf_u32(FO_CONFIG|FS_SERVICE, global.nbproc);
--- /dev/null
+/*
+ * Version reporting : all user-visible version information should come from
+ * this file so that rebuilding only this one is enough to report the latest
+ * code version.
+ */
+
+#include <common/version.h>
+
+const char *haproxy_version = HAPROXY_VERSION;
+const char *haproxy_date = HAPROXY_DATE;
+const char *stats_version_string = STATS_VERSION_STRING;