Simon and Diego,  

Your assistance was most helpful.  Just to follow up I am posting my
modifications to the code I was working on in case anyone else has the
same question:

To allegro-learning/src/Makefile.am:

stargatedir = $(datadir)/stargate
stargate_DATA = stargate.bmp
stargate_SOURCES = stargate.c
stargate_CFLAGS = $(ALLEGRO_CFLAGS) -DPKGDATADIR=\"$(stargatedir)\"
stargate_LDFLAGS = $(ALLEGRO_LIBS) 

To stargate.c I added the following:

#include <stdio.h>

// for nice string concatenation:
#define Sasprintf(write_to,  ...) {           \
    char *tmp_string_for_extend = (write_to); \
    asprintf(&(write_to), __VA_ARGS__);       \
    free(tmp_string_for_extend);              \
}

char* addImageBaseDir(char* filename) {
  char *abspath = NULL;
  Sasprintf(abspath, PKGDATADIR);
  Sasprintf(abspath, "%s%s%s", abspath, "/", "stargate.bmp");
  return abspath;
}

and now I replace the original,

stargate = load_bitmap("stargate.bmp", NULL);

with,

stargate = load_bitmap(addImageBaseDir("stargate.bmp"), NULL)

and building with autotools now works just fine.  All the files land in
the proper location and through the macro the paths are available to the
code.  

Thanks again!
Jamil




Reply via email to