Re: How do I compile simple demo

Hello David. 

--- David Boosalis <boosalis@pacbell.net> wrote:
> I downloaded the libwww software, and compiled it successfully on
> Linux.  However I have
> been unable to compile even the simplest of programs that use libwww.
> 
[...]
> If someone could please send or post a makefile that would really
> help.   Or if they can help me get it to compile and linked I would
> be
> happy to submit a Makefile for other newbies.

You forgot to CC: the libwww mailing list. There
are certainly libwww developers/users that know
more about it than I do. :-)

Anyway, what follows is a sample make file and
one of my play files. 

All of this code is under the GPL. 

================== makefile ===============

CFLAGS := $(CFLAGS) 

CFLAGS := $(CFLAGS) -g -I. \
        $(shell libwww-config --cflags) 

LINKFLAGS := $(LINKFLAGS) -g $(shell libwww-config --libs) 

% : %.c

% : %.o
        gcc -o $@ $^ $(LINKFLAGS)

%.o : %.c
        gcc $(CFLAGS) -c $<

all : lwplay4

clean : 
        rm -f $(wildcard lwplay*.o) lwplay lwplay2 lwplay3 lwplay4 \
                lwplay5 lwplay6 lwplay7 lwplay8 lwplay9 lwplay10 \
                lwplay11 logfile.o thork.o ablog.txt w3chttp.out

realclean : clean

distclean : clean

mtest : 
        gcc -E lwplay4.c $(CFLAGS) > outp

.PHONY: clean realclean distclean mtest

================ lwplay4.c ================

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#include <WWWLib.h>
#include <HTProfil.h>
#include <HTChunk.h>

        /************** HEADER FILE *************/

        /************** DEFINES AND TYPES *************/

        /************** PROTOTYPES *************/

PRIVATE int             printer (const char * , va_list);
PRIVATE int             tracer (const char *, va_list);


        /************** GLOBAL VARIABLES *************/

static const int                always_true = 1;
static const int                always_false = 0;

        /************** MAIN *************/

int main (int argc, const char * argv [])
{
HTRequest * request = 0;
HTChunk * chunk = 0;
const char * url = "http://localhost:8080";

        if (argc > 1)
        {
                url = argv [1];
        }

                /***********************************
                Allocate a request object.
                ***********************************/
        request = HTRequest_new ();
        if (0 == request) return 1;

                /***********************************
                Initialize a profile.
                ***********************************/
        HTProfile_newPreemptiveClient ("play4", "0.1");

                /***********************************
                Set up the traces. 
                ***********************************/
        HTPrint_setCallback (printer);
        HTTrace_setCallback (tracer);

                /***********************************
                Turn on the tracing feature. 
                ***********************************/
        HTSetTraceMessageMask ("sop");

                /***********************************
                Use the raw output format, including
                headers. 
                ***********************************/
        HTRequest_setOutputFormat (request, WWW_RAW);

                /***********************************
                Close connection immediately. 
                ***********************************/
        HTRequest_addConnection (request, "close", "");

        if (always_true)
        {
        char * nullone = 0;
        char * absolute_url = HTSACopy (&nullone, url);
        if (absolute_url)
                {
                printf ("HT Copy : %s\n", absolute_url);
                chunk = HTLoadToChunk (absolute_url, request); 
                HT_FREE (absolute_url);
                }
        } /* end if */

        if (chunk)
        {
        char * chunkstring = 0;
                chunkstring = HTChunk_toCString (chunk);
                if (chunkstring)
                {
                printf ("CHUNK:\n%s\n", chunkstring);
                HT_FREE(chunkstring);
                }
        }

        puts ("Hmm");

        HTRequest_delete (request);
        HTProfile_delete ();
        return 0;
}

        /************** FUNCTIONS *************/

PRIVATE int     printer (const char * fmt, va_list pargs)
{
        return (vfprintf (stdout, fmt, pargs));
}

PRIVATE int     tracer (const char * fmt, va_list pargs)
{
        return (vfprintf (stdout, fmt, pargs));
}



__________________________________________________
Do You Yahoo!?
Get Yahoo! Mail – Free email you can access from anywhere!
http://mail.yahoo.com/

Received on Wednesday, 12 July 2000 22:51:03 UTC