From 4429e842236015b51be37f3351d8f8df640744f5 Mon Sep 17 00:00:00 2001 From: Aravinda VK Date: Thu, 28 Jul 2016 15:49:59 +0530 Subject: eventsapi: Auto generate header files during make $SRC/libglusterfs/src/eventtypes.h and $SRC/events/src/eventtypes.py are generated by running `python $SRC/events/eventskeygen.py` Header files generation step is added to make file itself, Now All new events should be added to only to $SRC/events/eventskeygen.py file. BUG: 1361094 Change-Id: I384961ef2978ca2d0be37f288b39ac0d834bdf06 Signed-off-by: Aravinda VK Reviewed-on: http://review.gluster.org/15035 Smoke: Gluster Build System CentOS-regression: Gluster Build System Reviewed-by: Kotresh HR NetBSD-regression: NetBSD Build System Reviewed-by: Atin Mukherjee --- events/eventskeygen.py | 49 ++++++++++++++++++++++++++---------------------- events/src/Makefile.am | 9 ++++++++- events/src/eventtypes.py | 11 ----------- 3 files changed, 35 insertions(+), 34 deletions(-) delete mode 100644 events/src/eventtypes.py (limited to 'events') diff --git a/events/eventskeygen.py b/events/eventskeygen.py index f9bdb9fed52..5bb03191135 100644 --- a/events/eventskeygen.py +++ b/events/eventskeygen.py @@ -11,11 +11,14 @@ # import os +import sys GLUSTER_SRC_ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) eventtypes_h = os.path.join(GLUSTER_SRC_ROOT, "libglusterfs/src/eventtypes.h") eventtypes_py = os.path.join(GLUSTER_SRC_ROOT, "events/src/eventtypes.py") +gen_header_type = sys.argv[1] + # When adding new keys add it to the END keys = ( "EVENT_PEER_ATTACH", @@ -39,29 +42,31 @@ ERRORS = ( "EVENT_ERROR_SEND" ) -# Generate eventtypes.h -with open(eventtypes_h, "w") as f: - f.write("#ifndef __EVENTTYPES_H__\n") - f.write("#define __EVENTTYPES_H__\n\n") - f.write("typedef enum {\n") - for k in ERRORS: - f.write(" {0},\n".format(k)) - f.write("} event_errors_t;\n") +if gen_header_type == "C_HEADER": + # Generate eventtypes.h + with open(eventtypes_h, "w") as f: + f.write("#ifndef __EVENTTYPES_H__\n") + f.write("#define __EVENTTYPES_H__\n\n") + f.write("typedef enum {\n") + for k in ERRORS: + f.write(" {0},\n".format(k)) + f.write("} event_errors_t;\n") - f.write("\n") + f.write("\n") - f.write("typedef enum {\n") - for k in keys: - f.write(" {0},\n".format(k)) + f.write("typedef enum {\n") + for k in keys: + f.write(" {0},\n".format(k)) - f.write(" {0}\n".format(LAST_EVENT)) - f.write("} eventtypes_t;\n") - f.write("\n#endif /* __EVENTTYPES_H__ */\n") + f.write(" {0}\n".format(LAST_EVENT)) + f.write("} eventtypes_t;\n") + f.write("\n#endif /* __EVENTTYPES_H__ */\n") -# Generate eventtypes.py -with open(eventtypes_py, "w") as f: - f.write("# -*- coding: utf-8 -*-\n") - f.write("all_events = [\n") - for ev in keys: - f.write(' "{0}",\n'.format(ev)) - f.write("]\n") +if gen_header_type == "PY_HEADER": + # Generate eventtypes.py + with open(eventtypes_py, "w") as f: + f.write("# -*- coding: utf-8 -*-\n") + f.write("all_events = [\n") + for ev in keys: + f.write(' "{0}",\n'.format(ev)) + f.write("]\n") diff --git a/events/src/Makefile.am b/events/src/Makefile.am index 50317d45191..8b2150e3aa9 100644 --- a/events/src/Makefile.am +++ b/events/src/Makefile.am @@ -1,6 +1,10 @@ -EXTRA_DIST = glustereventsd.py __init__.py eventsapiconf.py.in eventtypes.py \ +noinst_PYTHON = $(top_srcdir)/events/eventskeygen.py +EXTRA_DIST = glustereventsd.py __init__.py eventsapiconf.py.in \ handlers.py utils.py peer_eventsapi.py eventsconfig.json +BUILT_SOURCES = eventtypes.py +CLEANFILES = eventtypes.py + eventsdir = $(libexecdir)/glusterfs/events eventspeerscriptdir = $(libexecdir)/glusterfs eventsconfdir = $(sysconfdir)/glusterfs @@ -10,6 +14,9 @@ events_PYTHON = __init__.py eventsapiconf.py eventtypes.py handlers.py utils.py events_SCRIPTS = glustereventsd.py eventspeerscript_SCRIPTS = peer_eventsapi.py +eventtypes.py: $(top_srcdir)/events/eventskeygen.py + $(PYTHON) $(top_srcdir)/events/eventskeygen.py PY_HEADER + install-exec-hook: $(mkdir_p) $(DESTDIR)$(sbindir) rm -f $(DESTDIR)$(sbindir)/glustereventsd diff --git a/events/src/eventtypes.py b/events/src/eventtypes.py deleted file mode 100644 index b09e5bcff9a..00000000000 --- a/events/src/eventtypes.py +++ /dev/null @@ -1,11 +0,0 @@ -# -*- coding: utf-8 -*- -all_events = [ - "EVENT_PEER_ATTACH", - "EVENT_PEER_DETACH", - "EVENT_VOLUME_CREATE", - "EVENT_VOLUME_START", - "EVENT_VOLUME_STOP", - "EVENT_VOLUME_DELETE", - "EVENT_VOLUME_SET", - "EVENT_VOLUME_RESET", -] -- cgit