13:29:39 <debiansid> #startmeeting 13:29:39 <zodbot> Meeting started Mon May 3 13:29:39 2010 UTC. The chair is debiansid. Information about MeetBot at http://wiki.debian.org/MeetBot. 13:29:40 <Spencer_tt> so is the teacher here 13:29:40 <zodbot> Useful Commands: #action #agreed #halp #info #idea #link #topic. 13:29:47 <debiansid> #meetingtopic Autotools workshop 13:29:54 <debiansid> #meetingname Autotools workshop 13:29:54 <zodbot> The meeting name has been set to 'autotools_workshop' 13:30:01 <debiansid> #chair debiansid 13:30:02 <zodbot> Current chairs: debiansid 13:30:07 <npatil> Spencer_tt: debiansid is teacher 13:30:21 <debiansid> #info Introduction 13:30:25 <Spencer_tt> k got it 13:30:28 <debiansid> Hi, I am Siddhesh Poyarekar, a FOSS contributor. I will be leading you guys through the autotools workshop today 13:30:31 <FranciscoD> debiansid: #topic 13:30:39 <FranciscoD> to set topic 13:31:15 <debiansid> FranciscoD: ahh yes, thanks. I was using info instead :) 13:31:45 <FranciscoD> :) 13:31:56 <debiansid> So we will be autotoolizing the program at http://siddhesh.in/linkc.tar.bz2 13:32:06 <debiansid> This program is a Turbo C++ clone written by Yogesh Wani and Narendra kangralkar 13:32:15 <debiansid> It is very raw, but the project is complete enough to demonstrate this workshop 13:32:30 <debiansid> You will need the gcc, make, autoconf and automake packages as a minimum for this workshop 13:32:46 <debiansid> Without them, you won't be able to get the real fun of it, which is being able to build the package yourself 13:32:56 <debiansid> If you plan to autotoolize anything related to libraries, then you'll also need libtool 13:33:08 <debiansid> We won't go into that in this session, since this is only meant as an introductory session 13:33:15 <debiansid> Please feel free to ask questions during the session by raising your hand (!) 13:33:36 <debiansid> #topic What are autotools 13:34:06 <debiansid> So autotools are programs used to make a bunch of scripts to ensure that the code we write can build correctly on the target system 13:34:24 <debiansid> It is how we get the 'configure' script in most popular GNU sources 13:34:37 <debiansid> The script does the job of choosing the compiler needed, checks for dependent libraries, files and programs 13:34:51 <debiansid> Based on the above it generates a bunch of makefiles, one for each directory within the source tree and one for the root source directory 13:35:08 <debiansid> We will be using an example program to demonstrate the process of "autotoolizing" any code 13:35:33 <debiansid> #topic Getting sources 13:35:47 <morpheuss> ok 13:35:48 <debiansid> You can download the example program from http://siddhesh.in/linkc.tar.bz2 13:35:56 <debiansid> #link http://siddhesh.in/linkc.tar.bz2 13:36:04 <praveenkumar> ok 13:36:08 <debiansid> If you have git and know how to use it, you can clone this repository: git://github.com/siddhesh/linkc.git 13:36:23 <debiansid> cd into the directory once you have untarred/cloned your sources 13:36:30 * DiscordianUK has got and untarred the example 13:36:48 <pranay_09> done 13:36:54 * tuxdna too 13:36:56 * Spencer_tt downloads and reads through 13:37:13 * praveenkumar downloaded 13:37:46 <morpheuss> done 13:37:46 <debiansid> great, so the action starts now. Anyone needs some time/ stuck on anything? 13:37:55 <ashwin_man> ! 13:38:03 <debiansid> ashwin_man: yes 13:38:40 <ashwin_man> want to verify the contents of the tar file - 8 files and 1 folder. Correct ? 13:39:00 <debiansid> ashwin_man: yes, that should be it 13:39:07 <ashwin_man> thanks 13:39:24 <ashwin_man> eof 13:39:25 <debiansid> ok cool, so the first thing we do is move the Makefile out of the way 13:39:45 <debiansid> autotools generates that for us and the current one is quite primitive 13:40:26 <debiansid> So there are two files that we need to create to autotoolize our program: configure.ac and Makefile.am 13:40:42 <debiansid> If the source tree has subdirectories, then you need a Makefile.am for each of those directories 13:41:01 <debiansid> I'll explain the significance of those files as we start writing them 13:41:37 <debiansid> Anyone need help moving makefile out of the way? 13:41:58 <FranciscoD> moving = rm , right? 13:42:00 <debiansid> You can either delete it or back it up as Makefile.bak 13:42:17 <debiansid> FranciscoD: you're ruthless :P 13:42:44 <FranciscoD> well, "moving out of the way" ! :P 13:42:49 * Spencer_tt renames Makefile to Makefile.bkp 13:42:57 <pranay_09> done 13:43:06 <praveenkumar> moved 13:43:10 <debiansid> Cool, so let us start with the first file, configure.ac 13:43:14 * tuxdna moved it 13:43:22 <debiansid> #topic configure.ac 13:44:18 <FranciscoD> adimania: http://meetbot.fedoraproject.org/fedora-classroom/2010-05-03/autotools_workshop.2010-05-03-13.29.log.txt logs so far 13:44:33 * adimania thanks :) 13:44:51 <debiansid> configure.ac is used the create the configure script that one runs (./configure) to detect various properties of the system 13:45:14 <debiansid> The various function-like constructs that we will be writing in this script are referred to as macros 13:45:21 <debiansid> Put the first line in the script as: 13:45:29 <debiansid> AC_INIT([linkc], [0.1], [your_email_address]) 13:46:22 <Spencer_tt> got it 13:46:37 <debiansid> Cool, so the AC_INIT macro is used to initialize the autoconf subsystem 13:46:42 <debiansid> The first argument of the macro is the program name 13:46:46 <debiansid> The second is the version number 13:46:53 <debiansid> The third is the email address of the program maintainer. So enter your email address in place of your_email_address 13:47:22 <tuxdna> ! are all three values mandatory? 13:47:44 <praveenkumar> ls 13:47:59 <debiansid> tuxdna: yes 13:48:10 <tuxdna> debiansid, ok got it 13:48:26 <debiansid> You may use square brackets [] to nest multi-word or multi-line input for individual arguments 13:48:53 <praveenkumar> debiansid: ! 13:48:59 <debiansid> praveenkumar: yes 13:49:30 <praveenkumar> debiansid: we have to make a configure file and then write those things? 13:49:32 <FranciscoD> ! 13:49:37 <pranay_09> ! this file must be made in the same folder where we downloaded the programme? 13:49:51 <FranciscoD> pranay_09: inside the linkc folder 13:49:55 <debiansid> praveenkumar: no, this is in the configure.ac file that I asked to create and open 13:49:59 * FranciscoD looks at debiansid for confirmation 13:50:12 <debiansid> pranay_09: yes, inside the linkc folder 13:50:19 <pranay_09> debiansid: ok 13:50:21 <Spencer_tt> any more lines 13:50:25 <FranciscoD> the second argument, is the version of autotools or the app youre doing? 13:50:41 <mbuf> tuxdna: only package and version are mandatory; AC_INIT(package, version, [bug-report], [tarname], [url]) 13:50:43 <debiansid> Spencer_tt: plenty more, let's take them one at a time :) 13:50:51 * Spencer_tt waits 13:50:58 <mbuf> #link http://www.gnu.org/software/autoconf/manual/autoconf.html#Initializing-configure 13:51:00 <debiansid> FranciscoD: this is the version of your app, so you decide it 13:51:00 <FranciscoD> and can the email be xxx AT yyy DOT zzz or has to be xxx@yyy.zzz ? 13:51:10 <tuxdna> ! if the multi-line string contains square brackets itself, how do we escape them? 13:51:20 <tuxdna> mbuf, thanks :) 13:51:27 <debiansid> mbuf: ahh ok, thanks for that :) 13:53:27 <debiansid> tuxdna: I haven't actually tried that, so don't know how that can be done 13:53:39 * Spencer_tt takes notes 13:53:51 <tuxdna> debiansid, ok 13:54:25 <debiansid> FranciscoD: you can use xx DOT yy AT zz as the email address 13:55:05 <praveenkumar> debiansid: both i mean xx DOT yy AT zz or xxx@yyy.zzz 13:55:34 <debiansid> praveenkumar: yes, you can use either 13:55:43 <praveenkumar> debiansid: ok 13:55:50 <debiansid> Ok, so the next line is: 13:55:56 <debiansid> AM_INIT_AUTOMAKE(dist-bzip2) 13:56:11 <debiansid> This macro is used to initialize the automake subsystem 13:56:51 <debiansid> The macro basically tells some things to be done in the makefile 13:57:27 <debiansid> In the above usage, I've told the automake subsystem to add an additional distribution target, bzip2 13:57:35 <debiansid> By default you only have gzip 13:57:59 <debiansid> So when you eventually do a 'make dist', it will now build a tar.zg and a tar.bz2 13:58:27 <debiansid> There are a number of other options available which can control make options 13:58:38 <debiansid> For example, there is an option 'check-news', which causes 'make dist' to fail if the first few lines of the NEWS file does not have the current version number 13:58:55 <debiansid> you enter multiple options as a space separated list 13:59:11 <debiansid> for example: AM_INIT_AUTOMAKE(dist-bzip2 dist-zip check-news) 13:59:36 <debiansid> A full list of these options is available here: http://www.gnu.org/software/libtool//manual/automake/Options.html#Options 13:59:36 <FranciscoD> debiansid: how do you comment? # ? 13:59:46 * FranciscoD would like to comment the file for future reference 13:59:50 <debiansid> FranciscoD: There is # and there is dnl 14:00:03 <debiansid> dnl This is a comment 14:00:05 <debiansid> or 14:00:09 <debiansid> # This is a comment 14:00:14 <debiansid> both work 14:00:46 <debiansid> So I move on to the next line, which is: 14:00:49 <debiansid> AC_CONFIG_SRCDIR([main.c]) 14:00:53 <Spencer_tt> single hash or double hash for comments 14:01:03 <debiansid> Spencer_tt: single has is enough 14:01:33 <Spencer_tt> ok 14:02:03 <debiansid> AC_CONFIG_SRCDIR is a simple safety check to ensure that the source code is in the directory specified 14:02:23 <debiansid> This is an optional check, so you can skip it if you like 14:02:38 <ashwin_man> ! 14:02:41 <debiansid> You can put in any existing file instead of main.c too 14:02:44 <debiansid> ashwin_man: yes 14:02:58 <FranciscoD> ! 14:03:06 <ashwin_man> is it directory or folder specific or file specific check..? 14:03:16 <debiansid> ashwin_man: file specific 14:03:21 <debiansid> FranciscoD: yes 14:03:27 <ashwin_man> is there any other way to make a file specific check...? 14:03:50 <FranciscoD> debiansid: same query as ashwin_man , is it directory or file, and what file? 14:03:51 <debiansid> ashwin_man: what kind of a check are you looking at? 14:04:06 <debiansid> FranciscoD: any source file in your package 14:04:24 <ashwin_man> ok 14:04:45 <debiansid> Cool, so the next line is: 14:04:47 <debiansid> AM_MAINTAINER_MODE 14:05:07 <debiansid> This is another optional macro, but an important one 14:05:46 <debiansid> mbuf :) 14:06:00 <debiansid> So AM_MAINTAINER_MODE adds additional build rules to the Makefile so that it will do an autoreconf whenever configure.ac or Makefile.am change 14:06:22 <debiansid> I'll come to what autoreconf is a little later 14:06:56 <debiansid> in short, the macro puts in a check to rebuild the configure script whenever the autotools input scripts (configure.ac and Makefile.am) change 14:07:42 <debiansid> Without this macro, you can have a situation where you change these scripts and then wonder why your build is not reflecting the change 14:07:47 <debiansid> happens way too often 14:07:55 <debiansid> This can be enabled at configure time with the --enable-maintainer-mode switch 14:08:11 <debiansid> Alright, So the lines you've entered so far told the autotools subsystem about our program and about the properties of the output 14:08:24 <debiansid> Again, there is a lot more you can do here, but that is something you can find out when you actually need it. $SEARCH_ENGINE is your best friend :) 14:08:39 <debiansid> Next up is the important part: detection of various programs, libraries and headers to make sure they exist 14:08:57 <debiansid> This is where you do what is know as "dependency checks" 14:09:10 <debiansid> Put in the next two lines as: 14:09:17 <debiansid> AC_PROG_CC 14:09:17 <debiansid> AC_PROG_INSTALL 14:09:47 <debiansid> The first line checks for the C compiler installed on the system 14:10:10 <debiansid> The second line checks for the 'install' program. You will have it in your Fedora boxes as /usr/bin/install 14:10:17 <FranciscoD> debiansid: are AM and AC prefixes supposed to mean something? 14:10:23 <morpheuss> ok 14:10:25 <debiansid> AutoMake and AutoConf 14:11:18 <debiansid> Next we check for libraries needed to build the program 14:11:22 <debiansid> This sample program uses libncurses, so we need to check whether libncurses is installed or not 14:11:40 <debiansid> libncurses is part of a Fedora base install, but there will always be some *nix boxes that do not have it by default 14:12:02 <debiansid> So here's what you need as the next two lines: 14:12:14 <debiansid> AC_CHECK_LIB([ncurses], [initscr],, AC_MSG_ERROR([Could not find ncurses library])) 14:12:14 <debiansid> AC_CHECK_LIB([menu], [new_menu],, AC_MSG_ERROR([Could not find ncurses menu library])) 14:12:32 <debiansid> The AC_CHECK_LIB macro is used to check for existence of a particular library 14:12:41 <debiansid> The macro needs 4 arguments 14:12:46 <debiansid> The first one is the library name as you would specify to the linker as -l 14:13:34 <debiansid> The -l switches are provided to the linker to tell it the libraries the program needs to build 14:13:41 <debiansid> So if the library is 'libncurses.so', you need to specify 'ncurses' here 14:13:50 <debiansid> The next argument is any function name present inside the library 14:14:03 <debiansid> The third argument is an action you need to perform if the check succeeds. We don't need to do anything, so we leave it blank 14:14:17 <debiansid> Typically, the space is used to define preprocessor macros or even print out messages, but we need neither of those 14:15:10 <debiansid> Once the above checks are successful, the LDFLAGS Makefile variable will have -lncurses and -lmenu 14:15:32 <debiansid> Finally, the last argument is what you need to do if the check fails 14:15:53 <debiansid> Here we use the AC_MSG_ERROR macro to print out an error message and exit. This will cause the configure script to fail. 14:16:18 <debiansid> We all must have seen that happening due to missing libraries or programs 14:16:48 <debiansid> If you only want to print an error and proceed in case of such check failures, you use AC_MSG_WARNING macro instead -- usage is the same as AC_MSG_ERROR 14:17:24 <debiansid> This completes our checks section. We now need to generate makefiles as an output of the configure. 14:17:47 <debiansid> So put in the last macro in configure.ac as follows: 14:17:56 <debiansid> AC_OUTPUT([Makefile Help/Makefile]) 14:18:25 <debiansid> This tells that the output of configure should be Makefile (in source root directory) and Help/Makefile 14:18:49 <debiansid> That completes our configure.ac. You may now save and close it 14:19:07 <DiscordianUK> Done 14:19:07 <debiansid> Next up is Makefile.am. Any questions so far? 14:19:35 <praveenkumar> done 14:19:36 <debiansid> Alright, I'll go on then 14:19:40 <pranay_09> done 14:19:44 <debiansid> #topic Makefile.am 14:20:00 <debiansid> You can think of Makefile.am as a skeleton for a Makefile 14:20:11 <debiansid> automake creates an intermediate skeleton Makefile.in from this file 14:20:23 <debiansid> Makefile.in is then used by the configure script to generate the final Makefile 14:20:30 <debiansid> We need a Makefile for each subdirectory inside the source directory 14:20:36 <debiansid> So on the same lines, we need to put a Makefile.am for each subdirectory 14:20:51 <debiansid> So first, create a new file Makefile.am in the source root directory 14:21:41 <debiansid> Put in the first line as: 14:21:42 <debiansid> SUBDIRS = Help 14:22:31 <debiansid> This is similar to the SUBDIRS clause in a Makefile. It tells the automake utility to process Makefile.am in the given subdirectories 14:22:43 <debiansid> Next, need to tell automake about the program code. So here's our first line: 14:22:49 <debiansid> bin_PROGRAMS = linkc 14:23:19 <debiansid> This is to declare that our program executable output name is linkc. You can put multiple targets here too if required. We need only one 14:23:34 <debiansid> Next, we mention the sources that linkc needs as follows: 14:23:46 <debiansid> linkc_SOURCES = main.c design.c file.c help.c \ 14:23:46 <debiansid> design.h file.h help.h 14:24:37 <debiansid> I've made this multiline only for readability, and to show that you can continue on the next line with a \ 14:24:48 <debiansid> The directive above reads as <programname>_SOURCES 14:25:01 <debiansid> If the program name contains any non-alphanumeric characters, it is replaced by an underscore 14:25:21 <debiansid> Anyone stuck anywhere so far? 14:25:46 <ashwin_man> no carry on please 14:25:52 <debiansid> ok great 14:25:58 <debiansid> Next is an optional line: 14:26:02 <debiansid> noinst_HEADERS = design.h file.h help.h 14:26:19 <debiansid> which basically tells us that these header files are not to be installed into /usr/include when we do a "make install" 14:26:33 <debiansid> With this, you're done with the first Makefile.am. Save and close. 14:26:46 <debiansid> Next up, create and open Help/Makefile.am 14:26:57 <debiansid> This is where we will write makefile rules for content in Help/ 14:27:03 <debiansid> The Help/ directory contains some documents which the IDE uses to display short help and examples on your basic libraries 14:27:29 <debiansid> So you only really need to copy them to the right place 14:27:40 <debiansid> So all you need to add in this Makefile.am is the following: 14:27:50 <debiansid> Helpdir = $(datadir)/$(PACKAGE)/Help 14:27:50 <debiansid> Help_DATA = *.hlp 14:28:08 <debiansid> Helpdir specifies the directory where files need to be installed 14:28:55 <debiansid> Help_DATA specifies the files that need to be installed 14:29:02 <debiansid> The convention here is simply <somename>dir and <somename>_DATA 14:29:25 <debiansid> Save and close Help/Makefile.am 14:29:37 <debiansid> And you're done with your autotools configuration files 14:29:46 <debiansid> Now we need to execute a set of programs to generate the configure script 14:29:53 <debiansid> any questions so far? 14:30:25 <praveenkumar> debiansid: done 14:30:39 * Spencer_tt makes copious notes 14:30:42 <ashwin_man> done.....let us carry on 14:30:47 <pranay_09> done 14:30:53 <debiansid> Ok, cool 14:30:56 <debiansid> #topic Building configure 14:31:04 <debiansid> So the first command is: 14:31:06 <debiansid> aclocal 14:31:12 <ashwin_man> ! 14:31:19 <debiansid> ashwin_man: yes 14:31:25 <ashwin_man> in which directory...? 14:31:34 <debiansid> in linkc 14:31:41 <ashwin_man> ok 14:31:43 <ashwin_man> eof 14:31:52 <debiansid> aclocal generates common macros (and any additional macros) in aclocal.m4 and in the directory autom4te.cache 14:31:58 <debiansid> Next: 14:32:02 <debiansid> autoconf 14:32:12 <debiansid> This generates the configure script 14:32:30 <mbuf> debiansid: please fpaste a copy of your configure.ac, Makefile.am so people can verify that they have the same as yours! 14:32:44 <debiansid> mbuf: ok, one sec, I'll do that 14:33:42 <debiansid> Here is my configure.ac: http://pastebin.com/AxGBCqUt 14:34:26 <debiansid> Makefile.am 14:34:29 <debiansid> http://pastebin.com/VJ3WMfyq 14:35:14 <Southern_Gentlem> http://fpaste.org/CDO1/ 14:35:39 <debiansid> Help/Makefile.am: http://pastebin.com/NSF4XVCM 14:36:41 <Southern_Gentlem> debiansid, the reason they asked for fpaste is that unlike pastebin it doesnt have ads 14:37:12 <debiansid> Southern_Gentlem: Ohh ok, I don't notice the ads much honestly :) 14:38:10 <debiansid> Makefile: http://fpaste.org/HMKx/ 14:38:40 <debiansid> Help/Makefile.am: http://fpaste.org/cEPo/ 14:38:57 <debiansid> The earlier one was Makefile.am, sorry about the typo 14:39:36 <debiansid> So any questions? 14:39:48 <pranay_09> nope 14:39:48 <ashwin_man> no, carry on 14:40:00 <praveenkumar> carry on 14:40:00 <debiansid> Ok, so I assume everyone has run: 14:40:06 <debiansid> aclocal 14:40:08 <debiansid> autoconf 14:40:16 <DiscordianUK> I have 14:40:18 <pranay_09> yes 14:40:21 <ashwin_man> yes, done 14:40:28 <praveenkumar> yeah done 14:40:30 <debiansid> Next, type: 14:40:32 <debiansid> automake -a -c 14:40:40 <debiansid> This will fail 14:41:06 <pranay_09> ya it does 14:41:13 <praveenkumar> i shows "option `dist-bzip2i' not recognized" 14:41:28 <ashwin_man> ! 14:41:32 <debiansid> praveenkumar: you have a different problem. You have a typo 14:41:48 <debiansid> 'dist-bzip2' not 'dist-bzip2i' 14:41:54 <debiansid> ashwin_man: yes 14:41:57 <praveenkumar> debiansid: ok 14:42:18 <ashwin_man> it is failing with not found complaints 14:42:22 <ashwin_man> for NEWS 14:42:33 <debiansid> ashwin_man: yes, that is the failure I was referring to 14:42:35 <ashwin_man> README AUTHORS Changelog 14:42:49 <ashwin_man> ok...carry on please 14:42:50 <debiansid> automake generates the Makefile.in. -a adds any missing files, like the install script, depcomp (dependency generator), etc -c is to copy the files over. The default action is to create symlinks to existing files 14:42:51 <ashwin_man> eof 14:43:17 <debiansid> But it also checks for existence of some files 14:43:29 <debiansid> NEWS README AUTHORS ChangeLog 14:43:51 <debiansid> It does not add templates for these because they ought to be different for different programs 14:44:02 <debiansid> so you create blank placeholders for them for now 14:44:11 <debiansid> with this command: 14:44:11 <debiansid> touch NEWS README AUTHORS ChangeLog 14:44:30 <debiansid> Now run automake -a -c again 14:44:51 <debiansid> Does it fail for anyone now? 14:45:03 <ashwin_man> no. it is clean 14:45:03 <tuxdna> works for me now 14:45:07 <FranciscoD> +1 14:45:08 <pranay_09> ! 14:45:11 <pranay_09> Makefile.am:4: variable `link_SOURCES' is defined but no program or 14:45:11 <pranay_09> Makefile.am:4: library has `link' as canonical name (possible typo) 14:45:33 <tuxdna> it should be linkc_SOURCES 14:45:36 <debiansid> pranay_09: probably a typo: What does your bin_PROGRAMS have? 14:45:55 <debiansid> tuxdna: yes 14:46:43 <praveenkumar> works for me too now 14:47:07 <pranay_09> linkc 14:47:20 <debiansid> pranay_09: yes 14:47:27 <debiansid> Great, so the last point is the license of the program. It should be mentioned in the file COPYING 14:47:35 <debiansid> If there is no such file, automake installs a GPLv3 license by default 14:47:40 <debiansid> You need to replace the content with the license you actually want to use 14:48:11 <debiansid> That is it. You're package has now been autotoolized 14:48:16 <debiansid> You can now do './configure && make && make install' to install the application 14:48:42 <debiansid> Don't rest our hopes on it running though, the program itself is work in progress :) 14:48:56 <ashwin_man> ! 14:49:00 <pranay_09> ! 14:49:12 <debiansid> To make things easier you can write a little script like this: http://fpaste.org/A1yS/ 14:49:17 <debiansid> ashwin_man: yes 14:49:30 <ashwin_man> where will it install the binary...? 14:49:33 * tuxdna thinks that it was like a breeze 14:49:40 <praveenkumar> ! 14:49:41 <pranay_09> checking for initscr in -lncurses... no configure: error: Could not find ncurses library 14:49:52 * mbuf suggests using ./autogen.sh or autoreconf -vfi 14:49:57 <debiansid> ashwin_man: By default it is /usr/local 14:50:16 <debiansid> mbuf: autogen.sh is a gnome thingy AFAIK 14:50:22 <ashwin_man> it shows lots of errors 14:50:27 <ashwin_man> for make install 14:50:34 <debiansid> pranay_09: you need ncurses-devel package 14:50:54 <debiansid> ashwin_man: You will need root privileges for install 14:51:03 <mbuf> ashwin_man: please fpaste the output; don't try to explain the errors/output 14:51:51 <debiansid> mbuf: I prefer using the individual commands because I add that script to by vcs 14:52:05 <FranciscoD> mbuf: those commands are suggested for what? 14:52:06 <mbuf> debiansid: not necessarily; it is for the GNU build system 14:52:06 <debiansid> mbuf: That way, anyone who checks out the source starts with a ./gen 14:52:50 * FranciscoD 's dir has no autogen.sh as of now 14:52:53 <mbuf> debiansid: some projects use it; 14:53:03 <ashwin_man> http://fpaste.org/GT3J/ 14:53:15 <pranay_09> debiansid: can't find it 14:53:22 <mbuf> FranciscoD: they run the configure and its pre-requisite commands for you 14:53:44 <FranciscoD> mbuf: ill have to write an autogen.sh? 14:53:53 <mbuf> FranciscoD: no! 14:53:55 <pranay_09> debiansid: is it libncurses-dev? 14:53:59 <mbuf> FranciscoD: some upstream projects provide it already 14:54:04 <FranciscoD> the commands we used dint generate one for me. 14:54:08 <mbuf> FranciscoD: just have to run it 14:54:09 <debiansid> mbuf: I saw a lot of gnome projects use it, and they internally call gnome-autogen.sh 14:54:14 <ashwin_man> but after doing a ¨su¨ it works 14:54:22 <mbuf> debiansid: okay 14:54:29 <FranciscoD> mbuf: yeah, how do the upstream projects generate the file? 14:54:40 <mbuf> FranciscoD: it is a bash script 14:54:45 <debiansid> pranay_09: Ahh, yes. I forgot you're using ubuntu 14:54:56 <pranay_09> debiansid: ok 14:54:58 <mbuf> debiansid: but, it is not just a Gnome thingy is what I am trying to tell you 14:55:15 <praveenkumar> debiansid: what is output of that program i installed it successfully but when i type linkc then it show me many hashes(#). 14:55:19 <debiansid> mbuf: Yeah, I explained why I assumed it was, which meant I agree with you :) 14:55:27 <FranciscoD> mbuf: yeah, if im autotoolizing my project, how do i get the bash script? 14:55:48 <debiansid> praveenkumar: don't try testing the program, it is quite broken the way it is written right now :) 14:55:58 <mbuf> FranciscoD: copy it 14:56:04 <ashwin_man> debiansid : Thanks 14:56:09 <praveenkumar> debiansid: ok 14:56:14 <debiansid> mbuf: +1 :D 14:56:22 <ashwin_man> :) 14:56:38 <mbuf> FranciscoD: generally, you shouldn't copy configure.ac, Makefile.am from other projects and use it blindly, but, always try to read the sources, and customize it to your needs 14:56:39 <FranciscoD> mbuf: heh, okay, all of them are the same that means? there's a standard autogen.sh then? 14:56:43 <ashwin_man> debiansid: anything more...? 14:56:58 <FranciscoD> by them here i mean autogen.sh 14:56:58 * zer0c00l is late to the party 14:57:04 <debiansid> ashwin_man: nope, I'm done 14:57:11 <FranciscoD> zer0c00l: no, youve missed the party :P 14:57:12 <mbuf> I just want to add couple of more links here 14:57:16 <debiansid> Thanks everyone for attending :) 14:57:23 <ashwin_man> THANKS ONCE AGAIN :) 14:57:23 <zer0c00l> omg 14:57:26 <mbuf> I encourage those interested in autotools to read this good book: 14:57:30 <mbuf> #link http://www.freesoftwaremagazine.com/books/autotools_a_guide_to_autoconf_automake_libtool 14:57:30 <DiscordianUK> Thank you debiansid 14:57:30 <debiansid> mbuf: ahh ok, I'll wait for the links 14:57:40 <mbuf> and there is a very good presentation available at: 14:57:46 <mbuf> #link http://www.lrde.epita.fr/~adl/autotools.html 14:57:50 * tuxdna finally learned autotools... not its time to explore more 14:57:59 <tuxdna> s/not/now 14:58:08 <luceliofreitas> ok, thanks. 14:58:12 <ashwin_man> bye friends...dinner time 14:58:18 <mbuf> also the manuals for autoconf, automake and libtool are very details, and you are encouraged to kindly refer them! 14:58:19 <tuxdna> debiansid, thanks 14:58:26 <praveenkumar> debiansid: thanks 14:58:41 <debiansid> great, Thanks mbuf! 14:58:48 <debiansid> #endmeeting