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. |