Doxygen Source Code Documentation
ckconfig.c File Reference
#include <stddef.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
Go to the source code of this file.
Data Structures | |
struct | methods_struct |
Defines | |
#define | HAVE_STDDEF_H |
#define | HAVE_STDLIB_H |
#define | HAVE_PROTOTYPES |
#define | HAVE_UNSIGNED_CHAR |
#define | HAVE_UNSIGNED_SHORT |
#define | HAVE_VOID |
#define | HAVE_CONST |
Typedefs | |
typedef size_t | my_size_t |
typedef void * | void_ptr |
typedef void(* | void_func )(int a, int b) |
typedef undefined_structure * | undef_struct_ptr |
Functions | |
int | testfunction (int arg1, int *arg2) |
int | test2function (void) |
void | test3function (void_ptr arg1, void_func arg2) |
int | test4function (const int arg1) |
int | possibly_duplicate_function () |
int | possibly_dupli_function () |
int | is_char_signed (int arg) |
int | is_shifting_signed (long arg) |
int | main (int argc, char **argv) |
Variables | |
unsigned char | un_char |
unsigned short | un_short |
const int | carray [3] = {1, 2, 3} |
Define Documentation
|
Definition at line 181 of file ckconfig.c. |
|
Definition at line 100 of file ckconfig.c. |
|
Definition at line 35 of file ckconfig.c. |
|
Definition at line 40 of file ckconfig.c. |
|
Definition at line 128 of file ckconfig.c. |
|
Definition at line 140 of file ckconfig.c. |
|
Definition at line 151 of file ckconfig.c. |
Typedef Documentation
|
Definition at line 90 of file ckconfig.c. |
|
Definition at line 205 of file ckconfig.c. |
|
Definition at line 157 of file ckconfig.c. Referenced by test3function(). |
|
Definition at line 155 of file ckconfig.c. Referenced by test3function(). |
Function Documentation
|
Definition at line 243 of file ckconfig.c. References arg. Referenced by main().
00248 { 00249 if (arg == 189) { /* expected result for unsigned char */ 00250 return 0; /* type char is unsigned */ 00251 } 00252 else if (arg != -67) { /* expected result for signed char */ 00253 printf("Hmm, it seems 'char' is not eight bits wide on your machine.\n"); 00254 printf("I fear the JPEG software will not work at all.\n\n"); 00255 } 00256 return 1; /* assume char is signed otherwise */ 00257 } |
|
Definition at line 261 of file ckconfig.c. Referenced by main().
00267 { 00268 long res = arg >> 4; 00269 00270 if (res == -0x7F7E80CL) { /* expected result for signed shift */ 00271 return 1; /* right shift is signed */ 00272 } 00273 /* see if unsigned-shift hack will fix it. */ 00274 /* we can't just test exact value since it depends on width of long... */ 00275 res |= (~0L) << (32-4); 00276 if (res == -0x7F7E80CL) { /* expected result now? */ 00277 return 0; /* right shift is unsigned */ 00278 } 00279 printf("Right shift isn't acting as I expect it to.\n"); 00280 printf("I fear the JPEG software will not work at all.\n\n"); 00281 return 0; /* try it with unsigned anyway */ 00282 } |
|
Definition at line 286 of file ckconfig.c. References argc, is_char_signed(), and is_shifting_signed().
00292 { 00293 char signed_char_check = (char) (-67); 00294 FILE *outfile; 00295 00296 /* Attempt to write jconfig.h */ 00297 if ((outfile = fopen("jconfig.h", "w")) == NULL) { 00298 printf("Failed to write jconfig.h\n"); 00299 return 1; 00300 } 00301 00302 /* Write out all the info */ 00303 fprintf(outfile, "/* jconfig.h --- generated by ckconfig.c */\n"); 00304 fprintf(outfile, "/* see jconfig.doc for explanations */\n\n"); 00305 #ifdef HAVE_PROTOTYPES 00306 fprintf(outfile, "#define HAVE_PROTOTYPES\n"); 00307 #else 00308 fprintf(outfile, "#undef HAVE_PROTOTYPES\n"); 00309 #endif 00310 #ifdef HAVE_UNSIGNED_CHAR 00311 fprintf(outfile, "#define HAVE_UNSIGNED_CHAR\n"); 00312 #else 00313 fprintf(outfile, "#undef HAVE_UNSIGNED_CHAR\n"); 00314 #endif 00315 #ifdef HAVE_UNSIGNED_SHORT 00316 fprintf(outfile, "#define HAVE_UNSIGNED_SHORT\n"); 00317 #else 00318 fprintf(outfile, "#undef HAVE_UNSIGNED_SHORT\n"); 00319 #endif 00320 #ifdef HAVE_VOID 00321 fprintf(outfile, "/* #define void char */\n"); 00322 #else 00323 fprintf(outfile, "#define void char\n"); 00324 #endif 00325 #ifdef HAVE_CONST 00326 fprintf(outfile, "/* #define const */\n"); 00327 #else 00328 fprintf(outfile, "#define const\n"); 00329 #endif 00330 if (is_char_signed((int) signed_char_check)) 00331 fprintf(outfile, "#undef CHAR_IS_UNSIGNED\n"); 00332 else 00333 fprintf(outfile, "#define CHAR_IS_UNSIGNED\n"); 00334 #ifdef HAVE_STDDEF_H 00335 fprintf(outfile, "#define HAVE_STDDEF_H\n"); 00336 #else 00337 fprintf(outfile, "#undef HAVE_STDDEF_H\n"); 00338 #endif 00339 #ifdef HAVE_STDLIB_H 00340 fprintf(outfile, "#define HAVE_STDLIB_H\n"); 00341 #else 00342 fprintf(outfile, "#undef HAVE_STDLIB_H\n"); 00343 #endif 00344 #ifdef NEED_BSD_STRINGS 00345 fprintf(outfile, "#define NEED_BSD_STRINGS\n"); 00346 #else 00347 fprintf(outfile, "#undef NEED_BSD_STRINGS\n"); 00348 #endif 00349 #ifdef NEED_SYS_TYPES_H 00350 fprintf(outfile, "#define NEED_SYS_TYPES_H\n"); 00351 #else 00352 fprintf(outfile, "#undef NEED_SYS_TYPES_H\n"); 00353 #endif 00354 fprintf(outfile, "#undef NEED_FAR_POINTERS\n"); 00355 #ifdef NEED_SHORT_EXTERNAL_NAMES 00356 fprintf(outfile, "#define NEED_SHORT_EXTERNAL_NAMES\n"); 00357 #else 00358 fprintf(outfile, "#undef NEED_SHORT_EXTERNAL_NAMES\n"); 00359 #endif 00360 #ifdef INCOMPLETE_TYPES_BROKEN 00361 fprintf(outfile, "#define INCOMPLETE_TYPES_BROKEN\n"); 00362 #else 00363 fprintf(outfile, "#undef INCOMPLETE_TYPES_BROKEN\n"); 00364 #endif 00365 fprintf(outfile, "\n#ifdef JPEG_INTERNALS\n\n"); 00366 if (is_shifting_signed(-0x7F7E80B1L)) 00367 fprintf(outfile, "#undef RIGHT_SHIFT_IS_UNSIGNED\n"); 00368 else 00369 fprintf(outfile, "#define RIGHT_SHIFT_IS_UNSIGNED\n"); 00370 fprintf(outfile, "\n#endif /* JPEG_INTERNALS */\n"); 00371 fprintf(outfile, "\n#ifdef JPEG_CJPEG_DJPEG\n\n"); 00372 fprintf(outfile, "#define BMP_SUPPORTED /* BMP image file format */\n"); 00373 fprintf(outfile, "#define GIF_SUPPORTED /* GIF image file format */\n"); 00374 fprintf(outfile, "#define PPM_SUPPORTED /* PBMPLUS PPM/PGM image file format */\n"); 00375 fprintf(outfile, "#undef RLE_SUPPORTED /* Utah RLE image file format */\n"); 00376 fprintf(outfile, "#define TARGA_SUPPORTED /* Targa image file format */\n\n"); 00377 fprintf(outfile, "#undef TWO_FILE_COMMANDLINE /* You may need this on non-Unix systems */\n"); 00378 fprintf(outfile, "#undef NEED_SIGNAL_CATCHER /* Define this if you use jmemname.c */\n"); 00379 fprintf(outfile, "#undef DONT_USE_B_MODE\n"); 00380 fprintf(outfile, "/* #define PROGRESS_REPORT */ /* optional */\n"); 00381 fprintf(outfile, "\n#endif /* JPEG_CJPEG_DJPEG */\n"); 00382 00383 /* Close the jconfig.h file */ 00384 fclose(outfile); 00385 00386 /* User report */ 00387 printf("Configuration check for Independent JPEG Group's software done.\n"); 00388 printf("\nI have written the jconfig.h file for you.\n\n"); 00389 #ifdef HAVE_PROTOTYPES 00390 printf("You should use makefile.ansi as the starting point for your Makefile.\n"); 00391 #else 00392 printf("You should use makefile.unix as the starting point for your Makefile.\n"); 00393 #endif 00394 00395 #ifdef NEED_SPECIAL_INCLUDE 00396 printf("\nYou'll need to change jconfig.h to include the system include file\n"); 00397 printf("that you found type size_t in, or add a direct definition of type\n"); 00398 printf("size_t if that's what you used. Just add it to the end.\n"); 00399 #endif 00400 00401 return 0; 00402 } |
|
Definition at line 222 of file ckconfig.c.
00223 {
00224 return 1;
00225 }
|
|
Definition at line 217 of file ckconfig.c.
00218 {
00219 return 0;
00220 }
|
|
Definition at line 116 of file ckconfig.c.
00117 {
00118 return 0;
00119 }
|
|
Definition at line 163 of file ckconfig.c. References void_func, and void_ptr.
00169 { 00170 char * locptr = (char *) arg1; /* check casting to and from void * */ 00171 arg1 = (void *) locptr; 00172 (*arg2) (1, 2); /* check call of fcn returning void */ 00173 } |
|
Definition at line 187 of file ckconfig.c. References carray.
00192 { 00193 return carray[arg1]; 00194 } |
|
Definition at line 111 of file ckconfig.c.
00112 {
00113 return arg2[arg1];
00114 }
|
Variable Documentation
|
Definition at line 184 of file ckconfig.c. Referenced by test4function(). |
|
Definition at line 131 of file ckconfig.c. |
|
Definition at line 143 of file ckconfig.c. |