aboutsummaryrefslogblamecommitdiffstats
path: root/configure
blob: cfd22a1e656b0967017567713db80b682bca65b3 (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11
12











                                                                      
                                               







                                                    
                





               

         




                                                       
                                                       

                                                         


                                                      
                                               
                                           


                                                         
                                                     
                                               













                                                         
                                               

                                                        
                                               



                                                        
                                               

                                                        
                                               




                                                             
                                                             












                                                             
                                    
                                                   

                        







                                                      







                                
                                     


                                
                                    

                                                          


                                
                                      
                                                            
                                                             
                                                              
                                                   


                                  
                                        
                                                              
                                                           
                                                            
                                                     

                      








                                                                                               
                              
                                        
                                                              
                                                      
                                                       
                                                     


                                 
                                      

                                                            


                                 
                                        
                                                                         




                                                                                                                        
                                                                


                               
                                     

                                                            






                                                                   
                                       

                                                                         





                                                                   

                        

                             
                          
                         

                                   

                              
  
 





                 


         
                                        




                                                  
                                                  





                                                 
#!/bin/sh

# Copying and distribution of this file, with or without modification,
# are permitted in any medium without royalty provided the copyright
# notice and this notice are preserved.  This file is offered as-is,
# without any warranty.


have_debug='No, enable with --debug'
have_dummy='No, enable with --enable-dummy'
have_randr='No, enable with --enable-randr'
have_vidmode='No, enable with --enable-vidmode'
have_wayland='No, enable with --enable-wayland'
have_drm='No, enable with --enable-drm'
have_w32gdi='No, enable with --enable-w32gdi[=fake]'
have_quartz='No, enable with --enable-quartz[=fake]'

enable_debug=0
enable_dummy=0
enable_randr=0
enable_vidmode=0
enable_wayland=0
enable_drm=0
enable_w32gdi=0
enable_quartz=0
fake_w32gdi=0
fake_quartz=0

os=common


for arg in "$@"; do
    case "${arg}" in
	(--linux=developer|--developer)  enable_debug=1
					 enable_dummy=1
					 enable_randr=1
					 enable_vidmode=1
					 enable_wayland=1
					 enable_drm=1
					 fake_w32gdi=1
					 fake_quartz=1
					 os=gnu
					 ;;
	(--linux)                        enable_randr=1
					 enable_vidmode=1
					 enable_wayland=1
					 enable_drm=1
					 os=gnu
					 ;;
	(--*bsd=developer)               enable_debug=1
					 enable_dummy=1
					 enable_vidmode=1
					 enable_randr=1
					 fake_w32gdi=1
					 fake_quartz=1
					 ;;
	(--*bsd)                         enable_vidmode=1
					 enable_randr=1
					 ;;
	(--windows=developer)            enable_debug=1
					 enable_dummy=1
					 enable_w32gdi=1
					 os=w32
					 ;;
	(--windows)                      enable_w32gdi=1
					 os=w32
					 ;;
	(--mac-os-x=developer)           enable_debug=1
					 enable_dummy=1
					 enable_quartz=1
					 os=osx
					 ;;
	(--mac-os-x)                     enable_quartz=1
					 os=osx
					 ;;
	(--debug)                        enable_debug=1    ;;
	(--enable-dummy)                 enable_dummy=1    ;;
	(--enable-randr)                 enable_randr=1    ;;
	(--enable-vidmode)               enable_vidmode=1  ;;
	(--enable-wayland)               enable_wayland=1  ;;
	(--enable-drm)                   enable_drm=1      ;;
	(--enable-w32gdi)                enable_w32gdi=1   ;;
	(--enable-quartz)                enable_quartz=1   ;;
	(--enable-w32gdi=fake)           fake_w32gdi=1     ;;
	(--enable-quartz=fake)           fake_quartz=1     ;;
	(*)
	    echo "$0: unrecognised option: ${arg}" >&2
	    exit 1
	    ;;
    esac
done


exec 3> "$(dirname "$0")/.config.mk"
exec 4> "$(dirname "$0")/src/lib/libgamma-config.h"
echo 'DEFINITIONS =' >&3

echo '/**' >&4
cat "$(dirname "$0")/COPYING" | sed -e 's:^: \* :' >&4
echo ' */' >&4
echo '#ifndef LIBGAMMA_CONFIG_H' >&4
echo '#define LIBGAMMA_CONFIG_H' >&4
echo >&4
echo >&4

if [ ${fake_w32gdi} = 1 ]; then
    enable_w32gdi=1
fi
if [ ${fake_quartz} = 1 ]; then
    enable_quartz=1
fi
if [ ${enable_debug} = 1 ]; then
    echo "DEBUG = y" >&3
    echo 'DEBUG_FLAGS += -DDEBUG' >&3
    have_debug='Yes'
fi
if [ ${enable_dummy} = 1 ]; then
    echo 'LIBOBJ += gamma-dummy' >&3
    echo 'DEFINITIONS += -DHAVE_LIBGAMMA_METHOD_DUMMY' >&3
    echo '#define HAVE_LIBGAMMA_METHOD_DUMMY' >&4
    have_dummy='Yes'
fi
if [ ${enable_randr} = 1 ]; then
    echo 'LIBOBJ += gamma-x-randr' >&3
    echo 'DEFINITIONS += -DHAVE_LIBGAMMA_METHOD_X_RANDR' >&3
    echo 'LIBS_LD += $$(pkg-config --libs xcb xcb-randr)' >&3
    echo 'LIBS_C += $$(pkg-config --cflags xcb xcb-randr)' >&3
    echo '#define HAVE_LIBGAMMA_METHOD_X_RANDR' >&4
    have_randr='Yes'
fi
if [ ${enable_vidmode} = 1 ]; then
    echo 'LIBOBJ += gamma-x-vidmode' >&3
    echo 'DEFINITIONS += -DHAVE_LIBGAMMA_METHOD_X_VIDMODE' >&3
    echo 'LIBS_LD += $$(pkg-config --libs x11 xxf86vm)' >&3
    echo 'LIBS_C += $$(pkg-config --cflags x11 xxf86vm)' >&3
    echo '#define HAVE_LIBGAMMA_METHOD_X_VIDMODE' >&4
    have_vidmode='Yes'
fi
if [ ${enable_wayland} = 1 ]; then
    echo 'LIBOBJ += gamma-wayland wayland-gamma-control-protocol' >&3
    echo 'DEFINITIONS += -DHAVE_LIBGAMMA_METHOD_WAYLAND' >&3
    echo 'LIBS_LD += $$(pkg-config --libs wayland-client)' >&3
    echo 'LIBS_C += $$(pkg-config --cflags wayland-client)' >&3
    echo 'WAYLAND_SCANNER = $(shell pkg-config --variable=wayland_scanner wayland-scanner)' >&3
    echo '#define HAVE_LIBGAMMA_METHOD_WAYLAND' >&4
    have_wayland='Yes'
fi
if [ ${enable_drm} = 1 ]; then
    echo 'LIBOBJ += gamma-linux-drm' >&3
    echo 'DEFINITIONS += -DHAVE_LIBGAMMA_METHOD_LINUX_DRM' >&3
    echo 'LIBS_LD += $$(pkg-config --libs libdrm)' >&3
    echo 'LIBS_C += $$(pkg-config --cflags libdrm)' >&3
    echo '#define HAVE_LIBGAMMA_METHOD_LINUX_DRM' >&4
    have_drm='Yes'
fi
if [ ${enable_w32gdi} = 1 ]; then
    echo 'LIBOBJ += gamma-w32-gdi' >&3
    echo 'DEFINITIONS += -DHAVE_LIBGAMMA_METHOD_W32_GDI' >&3
    echo '#define HAVE_LIBGAMMA_METHOD_W32_GDI' >&4
    have_w32gdi='Yes'
fi
if [ ${enable_quartz} = 1 ]; then
    echo 'LIBOBJ += gamma-quartz-cg' >&3
    echo 'DEFINITIONS += -DHAVE_LIBGAMMA_METHOD_QUARTZ_CORE_GRAPHICS' >&3
    if [ ${fake_w32gdi} = 0 ]; then
	F_ApplicationServices="/System/Library/Frameworks/ApplicationServices.framework"
	I_ApplicationServices="${F_ApplicationServices}/Versions/A/Frameworks/CoreGraphics.framework/Versions/A/Headers"
	echo "LIBS_LD += -I${I_ApplicationServices} -F${F_ApplicationServices} -framework ApplicationServices" >&3
    fi
    echo '#define HAVE_LIBGAMMA_METHOD_QUARTZ_CORE_GRAPHICS' >&4
    have_quartz='Yes'
fi
if [ ${fake_w32gdi} = 1 ]; then
    echo 'LIBOBJ += fake-w32-gdi' >&3
    echo 'DEFINITIONS += -DFAKE_LIBGAMMA_METHOD_W32_GDI' >&3
    echo '#define FAKE_LIBGAMMA_METHOD_W32_GDI' >&4
    if [ ${enable_randr} = 1 ]; then
	have_w32gdi='Yes, fake via the RandR protocol for X'
    else
	have_w32gdi='Yes, fake via dummy method, `/dev/null`-style'
    fi
fi
if [ ${fake_quartz} = 1 ]; then
    echo 'LIBOBJ += fake-quartz-cg' >&3
    echo 'DEFINITIONS += -DFAKE_LIBGAMMA_METHOD_QUARTZ_CORE_GRAPHICS' >&3
    echo '#define FAKE_LIBGAMMA_METHOD_QUARTZ_CORE_GRAPHICS' >&4
    if [ ${enable_randr} = 1 ]; then
	have_quartz='Yes, fake via the RandR protocol for X'
    else
	have_quartz='Yes, fake via dummy method, `/dev/null`-style'
    fi
fi
if [ ${os} = w32 ]; then
    echo 'SO = dll' >&3
    echo 'PIC = ' >&3
    echo 'SHARED = -mdll' >&3
elif [ ${os} = osx ]; then
    echo 'SO = dylib' >&3
    echo 'SHARED = -dynamiclib' >&3
    echo 'LDSO = ' >&3
elif [ ${os} = gnu ]; then
    echo 'HAVE_INT128 = y' >&3
fi

echo >&4
echo >&4
echo '#endif' >&4
echo >&4

exec 4<&-
exec 3<&-


echo 'libgamma has now been configured.'
echo
echo "  Debug mode:               ${have_debug}"
echo "  Dummy method:             ${have_dummy}"
echo "  X.org via RandR:          ${have_randr}"
echo "  X.org via VidMode:        ${have_vidmode}"
echo "  Wayland/Orbital:          ${have_wayland}"
echo "  Linux DRM:                ${have_drm}"
echo "  Windows GDI:              ${have_w32gdi}"
echo "  Quartz via CoreGraphics:  ${have_quartz}"
echo
echo 'Compile with `make`.'