From d3981b599c67697ed394d2ee780183334e25629b Mon Sep 17 00:00:00 2001 From: raster Date: Wed, 10 Aug 2011 05:48:09 +0000 Subject: [PATCH] strealine the getting started guide to have simpler autofoo. git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/elementary@62286 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33 --- src/lib/Elementary.h.in | 141 ++++++------------------------------------------ 1 file changed, 17 insertions(+), 124 deletions(-) diff --git a/src/lib/Elementary.h.in b/src/lib/Elementary.h.in index f6c1245..55d46d8 100644 --- a/src/lib/Elementary.h.in +++ b/src/lib/Elementary.h.in @@ -52,7 +52,6 @@ organisations behind this, as listed in the @ref authors page. * * @code * #include - * #ifndef ELM_LIB_QUICKLAUNCH * EAPI int * elm_main(int argc, char **argv) * { @@ -61,86 +60,51 @@ organisations behind this, as listed in the @ref authors page. * elm_shutdown(); // after mainloop finishes running, shutdown * return 0; // exit 0 for exit code * } - * #endif * ELM_MAIN() * @endcode * - * To take full advantage of the quicklaunch architecture for launching - * processes as quickly as possible (saving time at startup time like - * connecting to X11, loading and linking shared libraries) you may want to - * use the following configure.in/configure.ac and Makefile.am and autogen.sh - * script to generate your files. It is assumed your application uses the - * main.c file for its code. + * To use autotools (which helps in many ways in the long run, like being able + * to immediately create releases of your software directly from your tree + * and ensure everything needed to buiuld it is there) you will need a + * configure.ac, Makefile.am and autogen.sh file. * - * configure.in/configure.ac: + * configure.ac: * @verbatim AC_INIT(myapp, 0.0.0, myname@mydomain.com) AC_PREREQ(2.52) -AC_CONFIG_SRCDIR(configure.in) - -AM_INIT_AUTOMAKE(1.6 dist-bzip2) +AC_CONFIG_SRCDIR(configure.ac) AM_CONFIG_HEADER(config.h) - -AC_C_BIGENDIAN -AC_ISC_POSIX AC_PROG_CC -AM_PROG_CC_STDC -AC_HEADER_STDC -AC_C_CONST - -AC_LIBTOOL_WIN32_DLL -define([AC_LIBTOOL_LANG_CXX_CONFIG], [:])dnl -define([AC_LIBTOOL_LANG_F77_CONFIG], [:])dnl -AC_PROG_LIBTOOL - +AM_INIT_AUTOMAKE(1.6 dist-bzip2) PKG_CHECK_MODULES([ELEMENTARY], elementary) - AC_OUTPUT(Makefile) @endverbatim * * Makefile.am: * @verbatim -AUTOMAKE_OPTIONS = 1.4 foreign -MAINTAINERCLEANFILES = Makefile.in - -INCLUDES = -I$(top_srcdir) @ELEMENTARY_CFLAGS@ - -bin_PROGRAMS = myapp -myapp_LTLIBRARIES = myapp.la +AUTOMAKE_OPTIONS = 1.4 foreign +MAINTAINERCLEANFILES = Makefile.in aclocal.m4 config.h.in configure depcomp install-sh missing -myappdir = $(libdir) +INCLUDES = -I$(top_srcdir) -myapp_la_SOURCES = main.c -myapp_la_LIBADD = @ELEMENTARY_LIBS@ -myapp_la_CFLAGS = -myapp_la_LDFLAGS = -module -avoid-version -no-undefined +bin_PROGRAMS = myapp myapp_SOURCES = main.c myapp_LDADD = @ELEMENTARY_LIBS@ -myapp_CFLAGS = -DELM_LIB_QUICKLAUNCH=1 +myapp_CFLAGS = @ELEMENTARY_CFLAGS@ @endverbatim * * autogen.sh: * @verbatim #!/bin/sh -rm -rf autom4te.cache -rm -f aclocal.m4 ltmain.sh -rm -rf m4 -mkdir m4 - -touch README -echo "Running aclocal..." ; aclocal $ACLOCAL_FLAGS -I m4 || exit 1 +echo "Running aclocal..." ; aclocal $ACLOCAL_FLAGS || exit 1 echo "Running autoheader..." ; autoheader || exit 1 echo "Running autoconf..." ; autoconf || exit 1 -echo "Running libtoolize..." ; (libtoolize --copy --automake || glibtoolize --automake) || exit 1 echo "Running automake..." ; automake --add-missing --copy --gnu || exit 1 - -if [ -z "$NOCONFIGURE" ]; then - ./configure "$@" -fi +./configure "$@" @endverbatim * * To generate all the things needed to bootstrap just run: @@ -209,80 +173,9 @@ make maintainer-clean * This deletes all the files autogen.sh will produce so the tree is clean * to be put into a revision-control system (like CVS, SVN or GIT for example). * - * The above will build a library - libmyapp.so and install in the target - * library directory (default is /usr/local/lib). You will also get a - * myapp.a and myapp.la - these are useless and can be deleted. Libtool likes - * to generate these all the time. You will also get a binary in the target - * binary directory (default is /usr/local/bin). This is a "debug binary". - * This will run and dlopen() the myapp.so and then jump to it's elm_main - * function. This allows for easy debugging with GDB and Valgrind. When you - * are ready to go to production do the following: - * - * 1. delete the myapp binary. i.e. rm /usr/local/bin/myapp - * - * 2. symlink the myapp binary to elementary_run (supplied by elementary). - * i.e. ln -s elmentary_run /usr/local/bin/myapp - * - * 3. run elementary_quicklaunch as part of your graphical login session and - * keep it running. - * - * This will man elementary_quicklaunch does pre-initialization before the - * application needs to be run, saving the effort at the time the application - * is needed, thus speeding up the time it takes to appear. - * - * If you don't want to use the quicklaunch infrastructure (which is - * optional), you can execute the old fashioned way by just running the - * myapp binary loader than will load the myapp.so for you, or you can - * remove the split-file binary and put it into one binary as things always - * have been with the following configure.in/configure.ac and Makfile.am - * files: - * - * configure.in/configure.ac: - * -@verbatim -AC_INIT(myapp, 0.0.0, myname@mydomain.com) -AC_PREREQ(2.52) -AC_CONFIG_SRCDIR(configure.in) - -AM_INIT_AUTOMAKE(1.6 dist-bzip2) -AM_CONFIG_HEADER(config.h) - -AC_C_BIGENDIAN -AC_ISC_POSIX -AC_PROG_CC -AM_PROG_CC_STDC -AC_HEADER_STDC -AC_C_CONST - -PKG_CHECK_MODULES([ELEMENTARY], elementary) - -AC_OUTPUT(Makefile) -@endverbatim - * - * Makefile.am: - * -@verbatim -AUTOMAKE_OPTIONS = 1.4 foreign -MAINTAINERCLEANFILES = Makefile.in - -INCLUDES = -I$(top_srcdir) @ELEMENTARY_CFLAGS@ - -bin_PROGRAMS = myapp - -myapp_SOURCES = main.c -myapp_LDADD = @ELEMENTARY_LIBS@ -myapp_CFLAGS = -@endverbatim - * - * Notice that they are the same as before, just with libtool and library - * building sections removed. Both ways work for building elementary - * applications. It is up to you to decide what is best for you. If you just - * follow the template above, you can do it both ways and can decide at build - * time. The more advanced of you may suggest making it a configure option. - * That is perfectly valid, but has been left out here for simplicity, as our - * aim to have an Elementary (and EFL) tutorial, not an autoconf & automake - * document. - * + * There is a more advanced way of making use of the quicklaunch infrastructure + * in Elementary (which will not be covered here due to its more advanced + * nature). */ /** -- 2.7.4