Commit e6521494 authored by Vincent Seguin's avatar Vincent Seguin

Makefile et config.

parent 1cc50a23
...@@ -10,8 +10,8 @@ ...@@ -10,8 +10,8 @@
################################################################################ ################################################################################
# Environment # Environment
#CC = gcc #CC=gcc
#SHELL = /bin/sh #SHELL=/bin/sh
# Video output settings # Video output settings
VIDEO=X11 VIDEO=X11
...@@ -26,11 +26,17 @@ ARCH=MMX ...@@ -26,11 +26,17 @@ ARCH=MMX
#ARCH=PPC #ARCH=PPC
#ARCH=SPARC #ARCH=SPARC
# Target operating system
SYS=LINUX
#SYS=BSD
#SYS=BEOS
# Decoder choice - ?? old decoder will be removed soon # Decoder choice - ?? old decoder will be removed soon
DECODER=old DECODER=old
#DECODER=new #DECODER=new
# !!! don't forget to run this command after changing decoder type !!!
# touch input/input.c input/input_ctrl.c include/vlc.h include/video_decoder.h # Debugging mode on or off
DEBUG=1
#----------------- do not change anything below this line ---------------------- #----------------- do not change anything below this line ----------------------
...@@ -38,22 +44,38 @@ DECODER=old ...@@ -38,22 +44,38 @@ DECODER=old
# Configuration pre-processing # Configuration pre-processing
################################################################################ ################################################################################
# DEFINE will contain all the constants definitions decided in Makefile # Program version - may only be changed by the project leader
DEFINE = -DVIDEO_$(VIDEO) PROGRAM_VERSION = 1.0-dev
# PROGRAM_OPTIONS is an identification string of the compilation options
PROGRAM_OPTIONS = $(VIDEO) $(ARCH) $(SYS)
ifneq ($(DEBUG),)
PROGRAM_OPTIONS += DEBUG
endif
# PROGRAM_BUILD is a complete identification of the build
PROGRAM_BUILD = `date -R` $(USER)@`hostname`
# DEFINE will contain some of the constants definitions decided in Makefile,
# including VIDEO_xx and ARCH_xx. It will be passed to C compiler.
DEFINE += -DVIDEO_$(VIDEO)
DEFINE += -DARCH_$(ARCH)
DEFINE += -DSYS_$(SYS)
DEFINE += -DPROGRAM_VERSION="\"$(PROGRAM_VERSION)\""
DEFINE += -DPROGRAM_OPTIONS="\"$(PROGRAM_OPTIONS)\""
DEFINE += -DPROGRAM_BUILD="\"$(PROGRAM_BUILD)\""
ifneq ($(DEBUG),)
DEFINE += -DDEBUG
endif
# video is a lowercase version of VIDEO used for filenames # video is a lowercase version of VIDEO used for filenames
video = $(shell echo $(VIDEO) | tr 'A-Z' 'a-z') video = $(shell echo $(VIDEO) | tr 'A-Z' 'a-z')
################################################################################ ################################################################################
# Tunning and other variables # Tunning and other variables - do not change anything except if you know
# exactly what you are doing
################################################################################ ################################################################################
#
# Transformation for video decompression (Fourier or cosine)
#
TRANSFORM=vdec_idct
#TRANSFORM=vdec_idft
# #
# C headers directories # C headers directories
# #
...@@ -78,9 +100,6 @@ ifeq ($(VIDEO),GGI) ...@@ -78,9 +100,6 @@ ifeq ($(VIDEO),GGI)
LIB += -lggi LIB += -lggi
endif endif
# System dependant libraries
#??LIB += -lXxf86dga
# #
# C compiler flags: compilation # C compiler flags: compilation
# #
...@@ -90,7 +109,6 @@ CCFLAGS += -D_REENTRANT ...@@ -90,7 +109,6 @@ CCFLAGS += -D_REENTRANT
CCFLAGS += -D_GNU_SOURCE CCFLAGS += -D_GNU_SOURCE
# Optimizations : don't compile debug versions with them # Optimizations : don't compile debug versions with them
CCFLAGS += -g
CCFLAGS += -O6 CCFLAGS += -O6
CCFLAGS += -ffast-math -funroll-loops -fargument-noalias-global CCFLAGS += -ffast-math -funroll-loops -fargument-noalias-global
CCFLAGS += -fomit-frame-pointer CCFLAGS += -fomit-frame-pointer
...@@ -143,21 +161,19 @@ endif ...@@ -143,21 +161,19 @@ endif
# #
# Additionnal debugging flags # Additionnal debugging flags
# #
# Debugging settings: electric fence, debuging symbols and profiling support.
# Note that electric fence and accurate profiling are quite uncompatible. # Debugging support
#CCFLAGS += -g ifneq ($(DEBUG),)
#CCFLAGS += -pg CFLAGS += -g
#LCFLAGS += -g #CFLAGS += -pg
#LCFLAGS += -pg endif
#LIB += -ldmalloc
#LIB += -lefence
################################################################################# #################################################################################
# Objects and files # Objects and files
################################################################################# #################################################################################
# #
# Objects # C Objects
# #
interface_obj = interface/main.o \ interface_obj = interface/main.o \
interface/interface.o \ interface/interface.o \
...@@ -224,24 +240,13 @@ video_parser_obj = video_parser/video_parser.o \ ...@@ -224,24 +240,13 @@ video_parser_obj = video_parser/video_parser.o \
video_decoder_obj = video_decoder/video_decoder.o \ video_decoder_obj = video_decoder/video_decoder.o \
video_decoder/vdec_motion.o \ video_decoder/vdec_motion.o \
video_decoder/$(TRANSFORM).o video_decoder/vdec_idct.o
endif endif
misc_obj = misc/mtime.o \ misc_obj = misc/mtime.o \
misc/rsc_files.o \ misc/rsc_files.o \
misc/netutils.o misc/netutils.o
ifeq ($(ARCH),MMX)
ifeq ($(DECODER),old)
ASM_OBJ = video_decoder_ref/idctmmx.o \
video_output/video_yuv_mmx.o
else
ASM_OBJ = video_decoder/idctmmx.o \
video_output/video_yuv_mmx.o
endif
endif
C_OBJ = $(interface_obj) \ C_OBJ = $(interface_obj) \
$(input_obj) \ $(input_obj) \
$(audio_output_obj) \ $(audio_output_obj) \
...@@ -255,6 +260,19 @@ C_OBJ = $(interface_obj) \ ...@@ -255,6 +260,19 @@ C_OBJ = $(interface_obj) \
$(vlan_obj) \ $(vlan_obj) \
$(misc_obj) $(misc_obj)
#
# Assembler Objects
#
ifeq ($(ARCH),MMX)
ifeq ($(DECODER),old)
ASM_OBJ = video_decoder_ref/idctmmx.o \
video_output/video_yuv_mmx.o
else
ASM_OBJ = video_decoder/idctmmx.o \
video_output/video_yuv_mmx.o
endif
endif
# #
# Other lists of files # Other lists of files
# #
...@@ -281,13 +299,20 @@ distclean: clean ...@@ -281,13 +299,20 @@ distclean: clean
rm -f vlc gmon.out core rm -f vlc gmon.out core
rm -rf dep rm -rf dep
show:
@echo "Command line for C objects:"
@echo $(CC) $(CCFLAGS) $(CFLAGS) -c -o "<dest.o>" "<src.c>"
@echo
@echo "Command line for assembler objects:"
@echo $(CC) $(CFLAGS) -c -o "<dest.o>" "<src.S>"
FORCE: FORCE:
# #
# Real targets # Real targets
# #
vlc: $(C_OBJ) $(ASM_OBJ) vlc: $(C_OBJ) $(ASM_OBJ)
$(CC) $(LCFLAGS) $(CFLAGS) -o $@ $(C_OBJ) $(ASM_OBJ) $(CC) $(LCFLAGS) $(CFLAGS) -o $@ $(C_OBJ) $(ASM_OBJ)
# #
# Generic rules (see below) # Generic rules (see below)
...@@ -295,12 +320,16 @@ vlc: $(C_OBJ) $(ASM_OBJ) ...@@ -295,12 +320,16 @@ vlc: $(C_OBJ) $(ASM_OBJ)
$(dependancies): %.d: FORCE $(dependancies): %.d: FORCE
@$(MAKE) -s --no-print-directory -f Makefile.dep $@ @$(MAKE) -s --no-print-directory -f Makefile.dep $@
$(C_OBJ): %.o: Makefile Makefile.dep
$(C_OBJ): %.o: dep/%.d $(C_OBJ): %.o: dep/%.d
$(C_OBJ): %.o: %.c $(C_OBJ): %.o: %.c
$(CC) $(CCFLAGS) $(CFLAGS) -c -o $@ $< @echo "compiling $*.c"
@$(CC) $(CCFLAGS) $(CFLAGS) -c -o $@ $<
$(ASM_OBJ): %.o: Makefile Makefile.dep
$(ASM_OBJ): %.o: %.S $(ASM_OBJ): %.o: %.S
$(CC) $(CFLAGS) -c -o $@ $< @echo "assembling $*.S"
@$(CC) $(CFLAGS) -c -o $@ $<
################################################################################ ################################################################################
# Note on generic rules and dependancies # Note on generic rules and dependancies
......
...@@ -23,29 +23,11 @@ ...@@ -23,29 +23,11 @@
* Program information * Program information
*******************************************************************************/ *******************************************************************************/
/* Program options - this part will produce a copyright message with compilation
* options informations, based on some definines set in the Makefile - do not
* edit */
#if defined(VIDEO_X11)
#define VIDEO_OPTIONS "X11"
#elif defined(VIDEO_FB)
#define VIDEO_OPTIONS "Framebuffer"
#elif defined(VIDEO_GGI)
#define VIDEO_OPTIONS "GGI"
#else
#define VIDEO_OPTIONS ""
#endif
#if defined(HAVE_MMX)
#define ARCH_OPTIONS "MMX"
#else
#define ARCH_OPTIONS ""
#endif
#define PROGRAM_OPTIONS VIDEO_OPTIONS " " ARCH_OPTIONS
/* Program version and copyright message */ /* Program version and copyright message */
#define PROGRAM_VERSION "1.0-dev" #define COPYRIGHT_MESSAGE "VideoLAN Client v" PROGRAM_VERSION " - (c)1999-2000 VideoLAN"
#define COPYRIGHT_MESSAGE "VideoLAN Client v" PROGRAM_VERSION " (" __DATE__ ") - " \ #define VERSION_MESSAGE "VideoLAN Client - (c)1999-2000 VideoLAN\n" \
PROGRAM_OPTIONS " - (c)1999-2000 VideoLAN" "version " PROGRAM_VERSION " ( " PROGRAM_BUILD " )\n" \
"compilation options: " PROGRAM_OPTIONS
/******************************************************************************* /*******************************************************************************
* General compilation options * General compilation options
...@@ -71,22 +53,24 @@ ...@@ -71,22 +53,24 @@
/******************************************************************************* /*******************************************************************************
* Debugging options - define or undefine symbols * Debugging options - define or undefine symbols
*******************************************************************************/ *******************************************************************************/
#ifdef DEBUG
/* General debugging support */ /* General debugging support, which depends of the DEBUG define, is determined
//#define DEBUG * in the Makefile */
/* Modules specific debugging - this will produce a lot of output, but can be /* Modules specific debugging - this will produce a lot of output, but can be
* usefull to track a bug */ * usefull to track a bug */
/*#define DEBUG_INTF #define DEBUG_INTF
#define DEBUG_INPUT #define DEBUG_INPUT
#define DEBUG_AUDIO #define DEBUG_AUDIO
#define DEBUG_VIDEO*/ #define DEBUG_VIDEO
/* Debugging log file - if defined, a file can be used to store all messages. If /* Debugging log file - if defined, a file can be used to store all messages. If
* DEBUG_LOG_ONLY is defined, debug messages will only be printed to the log and * DEBUG_LOG_ONLY is defined, debug messages will only be printed to the log and
* will not appear on the screen */ * will not appear on the screen */
//#define DEBUG_LOG "vlc-debug.log" #define DEBUG_LOG "vlc-debug.log"
//#define DEBUG_LOG_ONLY #define DEBUG_LOG_ONLY
#endif
/******************************************************************************* /*******************************************************************************
* General configuration * General configuration
...@@ -341,7 +325,9 @@ ...@@ -341,7 +325,9 @@
/* Define to enable messages queues - disabling messages queue can be usefull /* Define to enable messages queues - disabling messages queue can be usefull
* when debugging, since it allows messages which would not otherwise be printed, * when debugging, since it allows messages which would not otherwise be printed,
* due to a crash, to be printed anyway */ * due to a crash, to be printed anyway */
#ifndef DEBUG
#define INTF_MSG_QUEUE #define INTF_MSG_QUEUE
#endif
/* Format of the header for debug messages. The arguments following this header /* Format of the header for debug messages. The arguments following this header
* are the file (char *), the function (char *) and the line (int) in which the * are the file (char *), the function (char *) and the line (int) in which the
......
...@@ -56,6 +56,7 @@ static const struct option longopts[] = ...@@ -56,6 +56,7 @@ static const struct option longopts[] =
/* General/common options */ /* General/common options */
{ "help", 0, 0, 'h' }, { "help", 0, 0, 'h' },
{ "version", 0, 0, 'v' },
/* Audio options */ /* Audio options */
{ "noaudio", 0, 0, OPT_NOAUDIO }, { "noaudio", 0, 0, OPT_NOAUDIO },
...@@ -79,7 +80,7 @@ static const struct option longopts[] = ...@@ -79,7 +80,7 @@ static const struct option longopts[] =
}; };
/* Short options */ /* Short options */
static const char *psz_shortopts = "hg"; static const char *psz_shortopts = "hvg";
/******************************************************************************* /*******************************************************************************
* Global variable program_data - this is the one and only, see main.h * Global variable program_data - this is the one and only, see main.h
...@@ -92,6 +93,7 @@ main_t *p_main; ...@@ -92,6 +93,7 @@ main_t *p_main;
static void SetDefaultConfiguration ( void ); static void SetDefaultConfiguration ( void );
static int GetConfiguration ( int i_argc, char *ppsz_argv[], char *ppsz_env[] ); static int GetConfiguration ( int i_argc, char *ppsz_argv[], char *ppsz_env[] );
static void Usage ( void ); static void Usage ( void );
static void Version ( void );
static void InitSignalHandler ( void ); static void InitSignalHandler ( void );
static void SignalHandler ( int i_signal ); static void SignalHandler ( int i_signal );
...@@ -318,15 +320,19 @@ static int GetConfiguration( int i_argc, char *ppsz_argv[], char *ppsz_env[] ) ...@@ -318,15 +320,19 @@ static int GetConfiguration( int i_argc, char *ppsz_argv[], char *ppsz_env[] )
Usage(); Usage();
return( -1 ); return( -1 );
break; break;
case 'v': /* -v, --version */
Version();
return( -1 );
break;
/* Audio options */ /* Audio options */
case OPT_NOAUDIO: /* --noaudio */ case OPT_NOAUDIO: /* --noaudio */
p_main->b_audio = 0; p_main->b_audio = 0;
break; break;
case OPT_STEREO: /* --stereo */ case OPT_STEREO: /* --stereo */
main_PutIntVariable( AOUT_STEREO_VAR, 1 ); main_PutIntVariable( AOUT_STEREO_VAR, 1 );
break; break;
case OPT_MONO: /* --mono */ case OPT_MONO: /* --mono */
main_PutIntVariable( AOUT_STEREO_VAR, 0 ); main_PutIntVariable( AOUT_STEREO_VAR, 0 );
break; break;
...@@ -394,6 +400,7 @@ static void Usage( void ) ...@@ -394,6 +400,7 @@ static void Usage( void )
/* Options */ /* Options */
intf_Msg("Options:\n" \ intf_Msg("Options:\n" \
" -h, --help \tprint usage\n" \ " -h, --help \tprint usage\n" \
" -v, --version \tprint program version\n" \
" --noaudio \tdisable audio\n" \ " --noaudio \tdisable audio\n" \
" --stereo, --mono \tstereo/mono audio\n" \ " --stereo, --mono \tstereo/mono audio\n" \
" --novideo \tdisable video\n" \ " --novideo \tdisable video\n" \
...@@ -444,6 +451,23 @@ static void Usage( void ) ...@@ -444,6 +451,23 @@ static void Usage( void )
); );
} }
/*******************************************************************************
* Version: print complete program version
*******************************************************************************
* Print complete program version and build number.
*******************************************************************************/
static void Version( void )
{
intf_Msg(VERSION_MESSAGE "\n\n");
intf_Msg("This is free software; see the documentation or contact <videolan@via.ecp.fr>\n" \
"for use and copying conditions.\n" \
"\n" \
"This software is protected by the international copyright laws, and is\n" \
"provided without any warranty, including the implied warranties of\n" \
"merchantibility and fitness for a particular purpose.\n" \
);
}
/******************************************************************************* /*******************************************************************************
* InitSignalHandler: system signal handler initialization * InitSignalHandler: system signal handler initialization
******************************************************************************* *******************************************************************************
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment