configure 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. #!/bin/sh
  2. LIBS="x11"
  3. USE_XINERAMA="xinerama"
  4. USE_XRANDR="xrandr"
  5. USE_IMLIB2="imlib2"
  6. USE_XFT="xft freetype2"
  7. OS=`uname -s`
  8. PREFIX=/usr/local
  9. MANPREFIX="$PREFIX/man"
  10. XDG_CONFIG_DIR="$PREFIX/etc/xdg"
  11. while true; do
  12. case "$1" in
  13. --without-xinerama)
  14. USE_XINERAMA=""; shift;;
  15. --without-imlib2)
  16. USE_IMLIB2=""; shift;;
  17. --prefix)
  18. [ -z "$2" ] && echo "Missing argument" && exit 1
  19. PREFIX=$2; shift 2;;
  20. --man-prefix)
  21. [ -z "$2" ] && echo "Missing argument" && exit 1
  22. MANPREFIX=$2; shift 2;;
  23. --xdg-config-dir)
  24. [ -z "$2" ] && echo "Missing argument" && exit 1
  25. XDG_CONFIG_DIR=$2; shift 2;;
  26. --help|-h)
  27. echo "Usage: ./configure [options]
  28. --without-xinerama : compile without xinerama support
  29. --without-imlib2 : compile without imlib2 support
  30. --prefix DIRECTORY : install binary with specified prefix (default $PREFIX)
  31. --man-prefix DIRECTORY : install binary with specified prefix (default $PREFIX)
  32. --xdg-config-dir DIRECTORY : install configuration to specified directory (default $XDG_CONFIG_DIR)"
  33. exit 0;;
  34. *) break;;
  35. esac
  36. done
  37. LIBS="$LIBS $USE_XINERAMA $USE_IMLIB2"
  38. which pkg-config > /dev/null 2>&1
  39. if [ $? -eq 0 ];
  40. then
  41. CFLAGS=`pkg-config --cflags-only-I $LIBS`
  42. LDFLAGS=`pkg-config --libs $LIBS`
  43. else
  44. # Try to use some known paths
  45. case $OS in
  46. FreeBSD)
  47. CFLAGS="-I/usr/local/include"
  48. LDFLAGS="-L/usr/local/lib";;
  49. OpenBSD)
  50. CFLAGS="-I/usr/X11R6/include -I/usr/local/include"
  51. LDFLAGS="-L/usr/X11R6/lib -L/usr/local/lib";;
  52. NetBSD)
  53. CFLAGS="-I/usr/X11R7/include -I/usr/pkg/include"
  54. LDFLAGS="-L/usr/X11R7/lib -L/usr/pkg/lib";;
  55. Linux)
  56. CFLAGS=""
  57. LDFLAGS=""
  58. ;;
  59. *)
  60. echo "No default CFLAGS and LDFLAGS found for your OS, feel free to contribute or install pkg-config :)"
  61. exit 1;;
  62. esac
  63. LDFLAGS="$LDFLAGS -lX11"
  64. [ -n "$USE_XINERAMA" ] && LDFLAGS="$LDFLAGS -lXinerama"
  65. [ -n "$USE_IMLIB2" ] && LDFLAGS="$LDFLAGS -lImlib2"
  66. fi
  67. [ -n "$USE_XINERAMA" ] && CFLAGS="$CFLAGS -DHAVE_XINERAMA"
  68. [ -n "$USE_IMLIB2" ] && CFLAGS="$CFLAGS -DHAVE_IMLIB2"
  69. # Debian hardening options http://wiki.debian.org/Hardening
  70. which dpkg-buildflags > /dev/null 2>&1
  71. if [ $? -eq 0 ];
  72. then
  73. CFLAGS="$CFLAGS -D_FORTIFY_SOURCE=2 `dpkg-buildflags --get CFLAGS`"
  74. LDFLAGS="$LDFLAGS `dpkg-buildflags --get LDFLAGS`"
  75. fi
  76. cat > Makefile << EOF
  77. PREFIX=$PREFIX
  78. XDG_CONFIG_DIR=$XDG_CONFIG_DIR
  79. MANPREFIX=$MANPREFIX
  80. CFLAGS+=$CFLAGS
  81. LDFLAGS+=$LDFLAGS
  82. EOF
  83. cat Makefile.in >> Makefile
  84. echo "Compilation resume:
  85. OS=$OS
  86. CFLAGS=$CFLAGS
  87. LDFLAGS=$LDFLAGS
  88. PREFIX=$PREFIX
  89. MANPREFIX=$MANPREFIX
  90. XDG_CONFIG_DIR=$XDG_CONFIG_DIR
  91. You can run 'make' now :-)
  92. "