Changeset 2025:58267001583a in roaraudio


Ignore:
Timestamp:
06/19/09 22:28:12 (15 years ago)
Author:
phi
Branch:
default
Phase:
public
Message:

added support for multibe libs

File:
1 edited

Legend:

Unmodified
Added
Removed
  • roarclients/roar-config.c

    r669 r2025  
    2525#include <roaraudio.h> 
    2626 
     27struct { 
     28 char * name; 
     29 char * cflags; 
     30 char * libs; 
     31} flags[] = { 
     32 {"roar",      ROAR_CFLAGS, ROAR_LIBS      }, // NOTE: libroar *MUST* be the first entry 
     33 {"roardsp",   ROAR_CFLAGS, ROAR_LIBS_DSP  }, 
     34 {"roarmidi",  ROAR_CFLAGS, ROAR_LIBS_MIDI }, 
     35 {"roarlight", ROAR_CFLAGS, ROAR_LIBS_LIGHT}, 
     36 {NULL, NULL, NULL} 
     37}, * flags_ptr = NULL; 
     38 
    2739int main (int argc, char * argv[]) { 
    28  int i; 
     40 int i, h; 
     41 int cflags = 0; 
     42 int libs   = 0; 
     43 char buf[1024] = {0}; 
    2944 
    3045 if ( argc == 1 ) { 
    31   printf("Usage: roar-config [--version] [--libs] [--cflags]\n"); 
     46  printf("Usage: roar-config [--version] [--libs] [--cflags] [lib]\n"); 
    3247  return 0; 
    3348 } 
     
    3752   printf("unknown\n"); 
    3853  } else if ( !strcmp(argv[i], "--libs") ) { 
    39    printf("%s\n", ROAR_LIBS); 
     54   libs   = 1; 
    4055  } else if ( !strcmp(argv[i], "--cflags") ) { 
    41    printf("%s\n", ROAR_CFLAGS); 
     56   cflags = 1; 
     57  } else if ( flags_ptr == NULL ) { 
     58   for (h = 0; flags[h].name != NULL; h++) { 
     59    if ( !strcasecmp(argv[i], flags[h].name) ) 
     60     flags_ptr = &(flags[h]); 
     61   } 
     62 
     63   if ( flags_ptr == NULL ) { 
     64    ROAR_ERR("Unknown lib: %s", argv[i]); 
     65    return 2; 
     66   } 
    4267  } else { 
    4368   fprintf(stderr, "Unknown option: %s\n", argv[i]); 
     
    4671 } 
    4772 
     73 if ( flags_ptr == NULL ) 
     74  flags_ptr = &(flags[0]); 
     75 
     76 if ( cflags ) 
     77  strcat(buf, flags_ptr->cflags); 
     78 
     79 if ( libs ) 
     80  strcat(buf, flags_ptr->libs); 
     81 
     82 puts(buf); 
     83 
    4884 return 0; 
    4985} 
Note: See TracChangeset for help on using the changeset viewer.