1 /*** sxemacs.h -- meta include file for external emodule sources
3 * Copyright (C) 2004 Steve Youngs.
4 * Copyright (C) 2007 Sebastian Freundt
6 * This file is part of SXEmacs.
8 * Redistribution and use in source and binary forms, with or without
9 * modification, are permitted provided that the following conditions
12 * 1. Redistributions of source code must retain the above copyright
13 * notice, this list of conditions and the following disclaimer.
15 * 2. Redistributions in binary form must reproduce the above copyright
16 * notice, this list of conditions and the following disclaimer in the
17 * documentation and/or other materials provided with the distribution.
19 * 3. Neither the name of the author nor the names of any contributors
20 * may be used to endorse or promote products derived from this
21 * software without specific prior written permission.
23 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR
24 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
25 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
26 * DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
27 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
28 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
29 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
30 * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
31 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
32 * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
33 * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
37 #ifndef INCLUDED_sxemacs_h_
38 #define INCLUDED_sxemacs_h_
41 * This header is just a convenience thing. Projects using SXEmacs will solely
42 * need to include this one and will not have to care about additional stuff.
43 * In particular this simplifies include paths since we might not be the only
44 * project on this earth with a lisp.h header and we are definitely not the
45 * only ones with a process.h file. Thus, to avoid confusion because of
46 * mistakenly included files from other projects we provide this meta-header.
48 * To use this in your emodules (or wherever) install SXEmacs (>= 22.1.7)
49 * properly (or assume it has been done already), then invoke pkg-config to
50 * determine the include path of the latest and greatest SXEmacs on your/that
53 * pkg-config --cflags sxemacs
55 * and save that value somehow, say to SXE_CPPFLAGS, then as your final
56 * CPPFLAGS you'd use "${YOUR_CPPFLAGS} ${SXE_CPPFLAGS}" in the Makefile (or
57 * whatever system you're using). It's probably not the fastest way to do but
58 * of course you could just invoke your C compiler like so:
60 * gcc $(pkg-config --cflags sxemacs) ...
62 * In your project, thence, just use
64 * #include <sxemacs.h>
66 * and forget about all the other include files. Of course, you can include
67 * sxemacs.h as many times as you like.
73 /* pretend to be an emacs
74 * some stuff is suitable for other than emacsen modules too
75 * however to avoid one more CPPFLAG we simply define `emacs' here
81 #if defined USE_SXEMACS_CONFIG_H
84 #include "sxe-utils.h"
102 #if defined EF_USE_ASYNEQ
103 # include "events/worker-asyneq.h"
106 #include "emodules-ng.h"
108 #if defined USE_SXEMACS_CONFIG_H
109 /* clean up, if someone else wants to use autoheader,
110 * we shouldn't leave this stuff here */
112 # undef PACKAGE_VERSION
113 # undef PACKAGE_STRING
115 # undef PACKAGE_BUGREPORT
116 # undef PACKAGE_TARNAME
118 #endif /* USE_SXEMACS_CONFIG_H */
120 #endif /* INCLUDED_sxemacs_h_ */