www.pudn.com > dsr-uu-0.2.rar > endian.c


/* Copyright (C) Uppsala University
 *
 * This file is distributed under the terms of the GNU general Public
 * License (GPL), see the file LICENSE
 *
 * Author: Björn Wiberg 
 */

/*
  This code was partially borrowed from Per Kristian Hove
  , who originally posted it to the rdesktop
  mailing list at rdesktop.org.

  It solves the problem of non-existent  on some systems by
  generating it.

  (Compile, run, and redirect the output to endian.h.)
*/

#include 

int litend(void)
{
	int i = 0;
	((char *)(&i))[0] = 1;
	return (i == 1);
}

int bigend(void)
{
	return !litend();
}

int main(int argc, char **argv)
{
	printf("#ifndef _DSR_ENDIAN_H\n");
	printf("#define _DSR_ENDIAN_H\n");
	printf("#define __%s_ENDIAN_BITFIELD 1234\n",
	       litend()? "LITTLE" : "BIG");
	printf("#endif\n");
	return 0;
}