diff options
author | Adam Jackson <ajax@nwnk.net> | 2005-07-23 19:29:58 +0000 |
---|---|---|
committer | Adam Jackson <ajax@nwnk.net> | 2005-07-23 19:29:58 +0000 |
commit | f331a325447449982efba8adc5bc079371dfb77a (patch) | |
tree | c31db713b1f0dc3dc59c392194873e7a8c2a90dd /GL | |
parent | a5532e456d763718036e84891ff57c6f7417615a (diff) |
Add the symlink script for the Mesa source.
Diffstat (limited to 'GL')
-rwxr-xr-x | GL/symlink-mesa.sh | 618 |
1 files changed, 618 insertions, 0 deletions
diff --git a/GL/symlink-mesa.sh b/GL/symlink-mesa.sh new file mode 100755 index 000000000..833ec607a --- /dev/null +++ b/GL/symlink-mesa.sh @@ -0,0 +1,618 @@ +#!/bin/sh + +# +# A script that symlinks source files from Mesa to modular +# +# Author: Soren Sandmann (sandmann@redhat.com) (original) +# adapted for Mesa by Adam Jackson (ajax@nwnk.net) + +# +# Things we would like to do +# +# - Check that all the relevant files exist +# - AUTHORS, autogen.sh, configure.ac, ... +# - Check that we have actually linked everything +# - if a file doesn't need to be linked, then it needs +# to be listed as "not-linked" +# - Compute diffs between all the files (shouldn't be necessary) +# - possibly check that files are listet in Makefile.am's +# - Clean target directory of irrelevant files +# + +check_destinations () { + # don't do anything - we are relying on the side + # effect of dst_dir + true +} + +check_exist() { + # Check whether $1 exists + + if [ ! -e $1 ] ; then + error "$1 not found" + fi +} + +delete_existing() { + # Delete $2 + + rm -f $2 +} + +link_files() { + # Link $1 to $2 + + if [ ! -e $2 ] ; then + ln -s $1 $2 + fi +} + +main() { + check_args $1 $2 + + run check_destinations "Creating destination directories" + run check_exist "Checking that the source files exist" + run delete_existing "Deleting existing files" + run link_files "Linking files" +} + +## actual symlinking + +symlink_mesa_glapi() { + src_dir src/mesa/glapi + dst_dir mesa/glapi + + action dispatch.h + action glapi.c + action glapi.h + action glapioffsets.h + action glapitable.h + action glapitemp.h + action glprocs.h + action glthread.c + action glthread.h +} + +symlink_mesa_main() { + src_dir src/mesa/main + dst_dir mesa/main + + action accum.c + action accum.h + action api_arrayelt.c + action api_arrayelt.h + action api_eval.h + action api_loopback.c + action api_loopback.h + action api_noop.c + action api_noop.h + action api_validate.c + action api_validate.h + action attrib.c + action attrib.h + action blend.c + action blend.h + action bufferobj.c + action bufferobj.h + action buffers.c + action buffers.h + action clip.c + action clip.h + action colormac.h + action colortab.c + action colortab.h + action config.h + action context.c + action context.h + action convolve.c + action convolve.h + action dd.h + action debug.c + action debug.h + action depth.c + action depth.h + action dispatch.c + action dlist.c + action dlist.h + action drawpix.c + action drawpix.h + action enable.c + action enable.h + action enums.c + action enums.h + action eval.c + action eval.h + action extensions.c + action extensions.h + action fbobject.c + action fbobject.h + action feedback.c + action feedback.h + action fog.c + action fog.h + action framebuffer.c + action framebuffer.h + action get.c + action get.h + action getstring.c + action glheader.h + action hash.c + action hash.h + action hint.c + action hint.h + action histogram.c + action histogram.h + action image.c + action image.h + action imports.c + action imports.h + action light.c + action light.h + action lines.c + action lines.h + action macros.h + action matrix.c + action matrix.h + action mtypes.h + action occlude.c + action occlude.h + action pixel.c + action pixel.h + action points.c + action points.h + action polygon.c + action polygon.h + action rastpos.c + action rastpos.h + action renderbuffer.c + action renderbuffer.h + action simple_list.h + action state.c + action state.h + action stencil.c + action stencil.h + action texcompress.c + action texcompress.h + action texcompress_fxt1.c + action texcompress_s3tc.c + action texenvprogram.c + action texenvprogram.h + action texformat.c + action texformat.h + action texformat_tmp.h + action teximage.c + action teximage.h + action texobj.c + action texobj.h + action texrender.c + action texrender.h + action texstate.c + action texstate.h + action texstore.c + action texstore.h + action varray.c + action varray.h + action version.h + action vsnprintf.c + action vtxfmt.c + action vtxfmt.h + action vtxfmt_tmp.h +} + +symlink_mesa_math() { + src_dir src/mesa/math + dst_dir mesa/math + + action m_clip_tmp.h + action m_copy_tmp.h + action m_debug.h + action m_debug_clip.c + action m_debug_norm.c + action m_debug_util.h + action m_debug_xform.c + action m_dotprod_tmp.h + action m_eval.c + action m_eval.h + action m_matrix.c + action m_matrix.h + action m_norm_tmp.h + action m_trans_tmp.h + action m_translate.c + action m_translate.h + action m_vector.c + action m_vector.h + action m_xform.c + action m_xform.h + action m_xform_tmp.h + action mathmod.h +} + +symlink_mesa_ac() { + src_dir src/mesa/array_cache + dst_dir mesa/array_cache + + action ac_context.c + action ac_context.h + action ac_import.c + action acache.h +} + +symlink_mesa_swrast() { + src_dir src/mesa/swrast + dst_dir mesa/swrast + + action s_aaline.c + action s_aaline.h + action s_aalinetemp.h + action s_aatriangle.c + action s_aatriangle.h + action s_aatritemp.h + action s_accum.c + action s_accum.h + action s_alpha.c + action s_alpha.h + action s_atifragshader.c + action s_atifragshader.h + action s_bitmap.c + action s_blend.c + action s_blend.h + action s_buffers.c + action s_context.c + action s_context.h + action s_copypix.c + action s_depth.c + action s_depth.h + action s_drawpix.c + action s_drawpix.h + action s_feedback.c + action s_feedback.h + action s_fog.c + action s_fog.h + action s_fragprog_to_c.c + action s_imaging.c + action s_lines.c + action s_lines.h + action s_linetemp.h + action s_logic.c + action s_logic.h + action s_masking.c + action s_masking.h + action s_nvfragprog.c + action s_nvfragprog.h + action s_pixeltex.c + action s_pixeltex.h + action s_points.c + action s_points.h + action s_pointtemp.h + action s_readpix.c + action s_span.c + action s_span.h + action s_spantemp.h + action s_stencil.c + action s_stencil.h + action s_tcc.c + action s_texstore.c + action s_texture.c + action s_texture.h + action s_triangle.c + action s_triangle.h + action s_trispan.h + action s_tritemp.h + action s_zoom.c + action s_zoom.h + action swrast.h +} + +symlink_mesa_ss() { + src_dir src/mesa/swrast_setup + dst_dir mesa/swrast_setup + + action ss_context.c + action ss_context.h + action ss_triangle.c + action ss_triangle.h + action ss_tritmp.h + action ss_vb.h + action swrast_setup.h +} + +symlink_mesa_tnl() { + src_dir src/mesa/tnl + dst_dir mesa/tnl + + action t_array_api.c + action t_array_api.h + action t_array_import.c + action t_array_import.h + action t_context.c + action t_context.h + action t_pipeline.c + action t_pipeline.h + action t_save_api.c + action t_save_api.h + action t_save_loopback.c + action t_save_playback.c + action t_vb_arbprogram.c + action t_vb_arbprogram.h + action t_vb_arbprogram_sse.c + action t_vb_cliptmp.h + action t_vb_cull.c + action t_vb_fog.c + action t_vb_light.c + action t_vb_lighttmp.h + action t_vb_normals.c + action t_vb_points.c + action t_vb_program.c + action t_vb_render.c + action t_vb_rendertmp.h + action t_vb_texgen.c + action t_vb_texmat.c + action t_vb_vertex.c + action t_vertex.c + action t_vertex.h + action t_vertex_generic.c + action t_vertex_sse.c + action t_vp_build.c + action t_vp_build.h + action t_vtx_api.c + action t_vtx_api.h + action t_vtx_eval.c + action t_vtx_exec.c + action t_vtx_generic.c + action t_vtx_x86.c + action tnl.h +} + +symlink_mesa_shader() { + src_dir src/mesa/shader + dst_dir mesa/shader + + action arbfragparse.c + action arbfragparse.h + action arbprogparse.c + action arbprogparse.h + action arbprogram.c + action arbprogram.h + action arbprogram_syn.h + action arbvertparse.c + action arbvertparse.h + action atifragshader.c + action atifragshader.h + action nvfragparse.c + action nvfragparse.h + action nvfragprog.h + action nvprogram.c + action nvprogram.h + action nvvertexec.c + action nvvertexec.h + action nvvertparse.c + action nvvertparse.h + action nvvertprog.h + action program.c + action program.h + action shaderobjects.c + action shaderobjects.h + action shaderobjects_3dlabs.c + action shaderobjects_3dlabs.h +} + +symlink_mesa_shader_grammar() { + src_dir src/mesa/shader/grammar + dst_dir mesa/shader/grammar + + action grammar.c + action grammar.h + action grammar_syn.h + action grammar_mesa.c + action grammar_mesa.h +} + +symlink_mesa_shader_slang() { + src_dir src/mesa/shader/slang + dst_dir mesa/shader/slang + + action slang_assemble_assignment.c + action slang_assemble_assignment.h + action slang_assemble.c + action slang_assemble_conditional.c + action slang_assemble_conditional.h + action slang_assemble_constructor.c + action slang_assemble_constructor.h + action slang_assemble.h + action slang_assemble_typeinfo.c + action slang_assemble_typeinfo.h + action slang_compile.c + action slang_compile.h + action slang_execute.c + action slang_execute.h + action slang_mesa.h + action slang_preprocess.c + action slang_preprocess.h + action slang_storage.c + action slang_storage.h + action slang_utility.c + action slang_utility.h + action traverse_wrap.h +} + +symlink_mesa_shader_slang_library() { + src_dir src/mesa/shader/slang/library + dst_dir mesa/shader/slang/library + + action slang_common_builtin_gc_bin.h + action slang_common_builtin_gc.h + action slang_core_gc_bin.h + action slang_core_gc.h + action slang_fragment_builtin_gc_bin.h + action slang_fragment_builtin_gc.h + action slang_shader_syn.h + action slang_version_syn.h + action slang_vertex_builtin_gc_bin.h + action slang_vertex_builtin_gc.h +} + +symlink_mesa_x() { + src_dir src/mesa/drivers/x11 + dst_dir mesa/X + + # action glxapi.h + action glxheader.h + # action realglx.h + # action xfonts.h + action xm_api.c + action xm_buffer.c + action xm_dd.c + action xm_line.c + action xm_span.c + action xm_tri.c + action xmesaP.h + + # another hack + src_dir src/mesa/drivers/common + dst_dir mesa/X/drivers/common + action driverfuncs.c + action driverfuncs.h + + # and another + src_dir src/glx/x11 + dst_dir mesa/X + action indirect_size.c + action indirect_size.h +} + +symlink_mesa_ppc() { + src_dir src/mesa/ppc + dst_dir mesa/ppc +} + +symlink_mesa_sparc() { + src_dir src/mesa/sparc + dst_dir mesa/sparc +} + +symlink_mesa_x86() { + src_dir src/mesa/x86 + dst_dir mesa/x86 +} + +symlink_mesa_x8664() { + src_dir src/mesa/x86-64 + dst_dir mesa/x86-64 +} + +symlink_mesa() { + symlink_mesa_main + symlink_mesa_math + symlink_mesa_ac + symlink_mesa_swrast + symlink_mesa_ss + symlink_mesa_tnl + symlink_mesa_shader + symlink_mesa_shader_grammar + symlink_mesa_shader_slang + symlink_mesa_shader_slang_library + symlink_mesa_x + symlink_mesa_glapi + symlink_mesa_ppc + symlink_mesa_sparc + symlink_mesa_x86 + symlink_mesa_x8664 +} + +######### +# +# Helper functions +# +######### + +error() { + echo + echo \ \ \ error:\ \ \ $1 + exit +} + +# printing out what's going on +run_module() { + # $1 module + # $2 explanation + echo -n $EXPLANATION for $1 module ...\ + symlink_$1 + echo DONE +} + +run() { + # $1 what to do + # $2 explanation + + ACTION=$1 EXPLANATION=$2 run_module mesa +} + +src_dir() { + REAL_SRC_DIR=$SRC_DIR/$1 + if [ ! -d $REAL_SRC_DIR ] ; then + error "Source directory $REAL_SRC_DIR does not exist" + fi +} + +dst_dir() { + REAL_DST_DIR=$DST_DIR/$1 + if [ ! -d $REAL_DST_DIR ] ; then + mkdir -p $REAL_DST_DIR + fi +} + +action() { + if [ -z $2 ] ; then + $ACTION $REAL_SRC_DIR/$1 $REAL_DST_DIR/$1 + else + $ACTION $REAL_SRC_DIR/$1 $REAL_DST_DIR/$2 + fi +} + +usage() { + echo symlink.sh src-dir dst-dir + echo src-dir: the xc directory of the monolithic source tree + echo dst-dir: the modular source tree containing proto, app, lib, ... +} + +# Check commandline args +check_args() { + if [ -z $1 ] ; then + echo Missing source dir + usage + exit 1 + fi + + if [ -z $2 ] ; then + echo Missing destination dir + usage + exit 1 + fi + + if [ ! -d $1 ] ; then + echo $1 is not a dir + usage + exit 1 + fi + + if [ ! -d $2 ] ; then + echo $2 is not a dir + usage + exit 1 + fi + + if [ $1 = $2 ] ; then + echo source and destination can\'t be the same + usage + exit 1 + fi + + D=`dirname "$relpath"` + B=`basename "$relpath"` + abspath="`cd \"$D\" 2>/dev/null && pwd || echo \"$D\"`/$B" + + SRC_DIR=`( cd $1 ; pwd )` + DST_DIR=`(cd $2 ; pwd )` +} + +main $1 $2 |