diff options
author | Zack Weinberg <zackw@panix.com> | 2012-04-27 09:32:51 -0400 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2012-04-27 09:42:01 -0400 |
commit | 5859c235de96a8781ad63371d692334b20ecff18 (patch) | |
tree | 514e212c1df72b5ce027bfd896fcc6bb527d3870 | |
parent | e02222741e55983e048bbfc6107c743a5c81c101 (diff) | |
download | libevent-5859c235de96a8781ad63371d692334b20ecff18.tar.gz |
Generate event-config.h with a single sed script
This approach should make the creation of the file more atomic, to
fix a bug reported by Dinh.
This patch has one change from Zack's original version: it avoids
$<, since Dave Hart tells me he thinks that's not so portable.
(commit message by nickm)
-rw-r--r-- | Makefile.am | 28 | ||||
-rw-r--r-- | make-event-config.sed | 23 |
2 files changed, 30 insertions, 21 deletions
diff --git a/Makefile.am b/Makefile.am index 7dee8864..19b3799f 100644 --- a/Makefile.am +++ b/Makefile.am @@ -103,6 +103,7 @@ EXTRA_DIST = \ autogen.sh \ event_rpcgen.py \ libevent.pc.in \ + make-event-config.sed \ whatsnew-2.0.txt \ whatsnew-2.1.txt \ $(PLATFORM_DEPENDENT_SRC) @@ -163,27 +164,12 @@ if SIGNAL_SUPPORT SYS_SRC += signal.c endif -BUILT_SOURCES = ./include/event2/event-config.h - -./include/event2/event-config.h: config.h Makefile.am - $(MKDIR_P) ./include/event2 || true - echo '/* event2/event-config.h' > $@ - echo ' *' >> $@ - echo ' * This file was generated by autoconf when libevent was built, and post-' >> $@ - echo ' * processed by Libevent so that its macros would have a uniform prefix.' >> $@ - echo ' *' >> $@ - echo ' * DO NOT EDIT THIS FILE.' >> $@ - echo ' *' >> $@ - echo ' * Do not rely on macros in this file existing in later versions.'>> $@ - echo ' */' >> $@ - echo '#ifndef EVENT2_EVENT_CONFIG_H_INCLUDED_' >> $@ - echo '#define EVENT2_EVENT_CONFIG_H_INCLUDED_' >> $@ - - sed -e 's/#define /#define EVENT__/' \ - -e 's/#undef /#undef EVENT__/' \ - -e 's/# define /# define EVENT__/' \ - -e 's/#ifndef /#ifndef EVENT__/' < config.h >> $@ - echo "#endif" >> $@ +BUILT_SOURCES = include/event2/event-config.h + +include/event2/event-config.h: config.h make-event-config.sed + test -d include/event2 || $(MKDIR_P) include/event2 + $(SED) -f $(srcdir)/make-event-config.sed < config.h > $@T + mv -f $@T $@ CORE_SRC = \ buffer.c \ diff --git a/make-event-config.sed b/make-event-config.sed new file mode 100644 index 00000000..e31018a2 --- /dev/null +++ b/make-event-config.sed @@ -0,0 +1,23 @@ +# Sed script to postprocess config.h into event-config.h. + +1i\ +/* event2/event-config.h\ + *\ + * This file was generated by autoconf when libevent was built, and post-\ + * processed by Libevent so that its macros would have a uniform prefix.\ + *\ + * DO NOT EDIT THIS FILE.\ + *\ + * Do not rely on macros in this file existing in later versions.\ + */\ +\ +#ifndef EVENT2_EVENT_CONFIG_H_INCLUDED_\ +#define EVENT2_EVENT_CONFIG_H_INCLUDED_\ + +$a\ +\ +#endif /* event2/event-config.h */ + +s/#\( *\)define /#\1define EVENT__/ +s/#\( *\)undef /#\1undef EVENT__/ +s/#\( *\)if\(n*\)def /#\1if\2def EVENT__/ |