glogic-2.6/0000775000175000017500000000000012044454516007635 500000000000000glogic-2.6/configure0000755000175000017500000066117212044406014011465 00000000000000#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.69 for glogic 2.6. # # # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. # # # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # Use a proper internal environment variable to ensure we don't fall # into an infinite loop, continuously re-executing ourselves. if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then _as_can_reexec=no; export _as_can_reexec; # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. $as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 as_fn_exit 255 fi # We don't want this to propagate to other subprocesses. { _as_can_reexec=; unset _as_can_reexec;} if test "x$CONFIG_SHELL" = x; then as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else case \`(set -o) 2>/dev/null\` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi " as_required="as_fn_return () { (exit \$1); } as_fn_success () { as_fn_return 0; } as_fn_failure () { as_fn_return 1; } as_fn_ret_success () { return 0; } as_fn_ret_failure () { return 1; } exitcode=0 as_fn_success || { exitcode=1; echo as_fn_success failed.; } as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : else exitcode=1; echo positional parameters were not saved. fi test x\$exitcode = x0 || exit 1 test -x / || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 test \$(( 1 + 1 )) = 2 || exit 1" if (eval "$as_required") 2>/dev/null; then : as_have_required=yes else as_have_required=no fi if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_found=false for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. as_found=: case $as_dir in #( /*) for as_base in sh bash ksh sh5; do # Try only shells that exist, to save several forks. as_shell=$as_dir/$as_base if { test -f "$as_shell" || test -f "$as_shell.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : CONFIG_SHELL=$as_shell as_have_required=yes if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : break 2 fi fi done;; esac as_found=false done $as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : CONFIG_SHELL=$SHELL as_have_required=yes fi; } IFS=$as_save_IFS if test "x$CONFIG_SHELL" != x; then : export CONFIG_SHELL # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. $as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 exit 255 fi if test x$as_have_required = xno; then : $as_echo "$0: This script requires a shell more modern than all" $as_echo "$0: the shells that I found on your system." if test x${ZSH_VERSION+set} = xset ; then $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" $as_echo "$0: be upgraded to zsh 4.3.4 or later." else $as_echo "$0: Please tell bug-autoconf@gnu.org about your system, $0: including any error possibly output before this $0: message. Then install a modern shell, or manually run $0: the script under such a shell if you do have one." fi exit 1 fi fi fi SHELL=${CONFIG_SHELL-/bin/sh} export SHELL # Unset more variables known to interfere with behavior of common tools. CLICOLOR_FORCE= GREP_OPTIONS= unset CLICOLOR_FORCE GREP_OPTIONS ## --------------------- ## ## M4sh Shell Functions. ## ## --------------------- ## # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p # as_fn_executable_p FILE # ----------------------- # Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } # as_fn_executable_p # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits as_lineno_1=$LINENO as_lineno_1a=$LINENO as_lineno_2=$LINENO as_lineno_2a=$LINENO eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } # If we had to re-execute with $CONFIG_SHELL, we're ensured to have # already done that, so ensure we don't try to do so again and fall # in an infinite loop. This has already happened in practice. _as_can_reexec=no; export _as_can_reexec # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" test -n "$DJDIR" || exec 7<&0 &1 # Name of the host. # hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` # # Initializations. # ac_default_prefix=/usr/local ac_clean_files= ac_config_libobj_dir=. LIBOBJS= cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= # Identity of this package. PACKAGE_NAME='glogic' PACKAGE_TARNAME='glogic' PACKAGE_VERSION='2.6' PACKAGE_STRING='glogic 2.6' PACKAGE_BUGREPORT='' PACKAGE_URL='' # Factoring default headers for most tests. ac_includes_default="\ #include #ifdef HAVE_SYS_TYPES_H # include #endif #ifdef HAVE_SYS_STAT_H # include #endif #ifdef STDC_HEADERS # include # include #else # ifdef HAVE_STDLIB_H # include # endif #endif #ifdef HAVE_STRING_H # if !defined STDC_HEADERS && defined HAVE_MEMORY_H # include # endif # include #endif #ifdef HAVE_STRINGS_H # include #endif #ifdef HAVE_INTTYPES_H # include #endif #ifdef HAVE_STDINT_H # include #endif #ifdef HAVE_UNISTD_H # include #endif" ac_subst_vars='am__EXEEXT_FALSE am__EXEEXT_TRUE LTLIBOBJS LIBOBJS YELP_HELP_RULES XMLLINT ITSTOOL HELP_DIR LN_S BZRREV DATADIR ALL_LINGUAS INTLTOOL_PERL MSGMERGE INTLTOOL_POLICY_RULE INTLTOOL_SERVICE_RULE INTLTOOL_THEME_RULE INTLTOOL_SCHEMAS_RULE INTLTOOL_CAVES_RULE INTLTOOL_XML_NOMERGE_RULE INTLTOOL_XML_RULE INTLTOOL_KBD_RULE INTLTOOL_XAM_RULE INTLTOOL_UI_RULE INTLTOOL_SOUNDLIST_RULE INTLTOOL_SHEET_RULE INTLTOOL_SERVER_RULE INTLTOOL_PONG_RULE INTLTOOL_OAF_RULE INTLTOOL_PROP_RULE INTLTOOL_KEYS_RULE INTLTOOL_DIRECTORY_RULE INTLTOOL_DESKTOP_RULE intltool__v_merge_options_0 intltool__v_merge_options_ INTLTOOL_V_MERGE_OPTIONS INTLTOOL__v_MERGE_0 INTLTOOL__v_MERGE_ INTLTOOL_V_MERGE AM_DEFAULT_VERBOSITY INTLTOOL_EXTRACT INTLTOOL_MERGE INTLTOOL_UPDATE MKINSTALLDIRS POSUB POFILES PO_IN_DATADIR_FALSE PO_IN_DATADIR_TRUE INTLLIBS INSTOBJEXT GMOFILES DATADIRNAME CATOBJEXT CATALOGS XGETTEXT GMSGFMT MSGFMT_OPTS MSGFMT USE_NLS EGREP GREP CPP am__fastdepCC_FALSE am__fastdepCC_TRUE CCDEPMODE am__nodep AMDEPBACKSLASH AMDEP_FALSE AMDEP_TRUE am__quote am__include DEPDIR OBJEXT EXEEXT ac_ct_CC CPPFLAGS LDFLAGS CFLAGS CC GETTEXT_PACKAGE pkgpyexecdir pyexecdir pkgpythondir pythondir PYTHON_PLATFORM PYTHON_EXEC_PREFIX PYTHON_PREFIX PYTHON_VERSION PYTHON am__untar am__tar AMTAR am__leading_dot SET_MAKE AWK mkdir_p MKDIR_P INSTALL_STRIP_PROGRAM STRIP install_sh MAKEINFO AUTOHEADER AUTOMAKE AUTOCONF ACLOCAL VERSION PACKAGE CYGPATH_W am__isrc INSTALL_DATA INSTALL_SCRIPT INSTALL_PROGRAM target_alias host_alias build_alias LIBS ECHO_T ECHO_N ECHO_C DEFS mandir localedir libdir psdir pdfdir dvidir htmldir infodir docdir oldincludedir includedir localstatedir sharedstatedir sysconfdir datadir datarootdir libexecdir sbindir bindir program_transform_name prefix exec_prefix PACKAGE_URL PACKAGE_BUGREPORT PACKAGE_STRING PACKAGE_VERSION PACKAGE_TARNAME PACKAGE_NAME PATH_SEPARATOR SHELL' ac_subst_files='' ac_user_opts=' enable_option_checking enable_dependency_tracking enable_nls with_help_dir ' ac_precious_vars='build_alias host_alias target_alias PYTHON CC CFLAGS LDFLAGS LIBS CPPFLAGS CPP ITSTOOL XMLLINT' # Initialize some variables set by options. ac_init_help= ac_init_version=false ac_unrecognized_opts= ac_unrecognized_sep= # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. # (The list follows the same order as the GNU Coding Standards.) bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datarootdir='${prefix}/share' datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' infodir='${datarootdir}/info' htmldir='${docdir}' dvidir='${docdir}' pdfdir='${docdir}' psdir='${docdir}' libdir='${exec_prefix}/lib' localedir='${datarootdir}/locale' mandir='${datarootdir}/man' ac_prev= ac_dashdash= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval $ac_prev=\$ac_option ac_prev= continue fi case $ac_option in *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; *=) ac_optarg= ;; *) ac_optarg=yes ;; esac # Accept the important Cygnus configure options, so we can diagnose typos. case $ac_dashdash$ac_option in --) ac_dashdash=yes ;; -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=*) datadir=$ac_optarg ;; -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ | --dataroo | --dataro | --datar) ac_prev=datarootdir ;; -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) datarootdir=$ac_optarg ;; -disable-* | --disable-*) ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=no ;; -docdir | --docdir | --docdi | --doc | --do) ac_prev=docdir ;; -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) docdir=$ac_optarg ;; -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) ac_prev=dvidir ;; -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) dvidir=$ac_optarg ;; -enable-* | --enable-*) ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=\$ac_optarg ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) ac_prev=htmldir ;; -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ | --ht=*) htmldir=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localedir | --localedir | --localedi | --localed | --locale) ac_prev=localedir ;; -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) localedir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst | --locals) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) ac_prev=pdfdir ;; -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) pdfdir=$ac_optarg ;; -psdir | --psdir | --psdi | --psd | --ps) ac_prev=psdir ;; -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) psdir=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=\$ac_optarg ;; -without-* | --without-*) ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=no ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) as_fn_error $? "unrecognized option: \`$ac_option' Try \`$0 --help' for more information" ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. case $ac_envvar in #( '' | [0-9]* | *[!_$as_cr_alnum]* ) as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; esac eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` as_fn_error $? "missing argument to $ac_option" fi if test -n "$ac_unrecognized_opts"; then case $enable_option_checking in no) ;; fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi # Check all directory arguments for consistency. for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ libdir localedir mandir do eval ac_val=\$$ac_var # Remove trailing slashes. case $ac_val in */ ) ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` eval $ac_var=\$ac_val;; esac # Be sure to have absolute directory names. case $ac_val in [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || as_fn_error $? "working directory cannot be determined" test "X$ac_ls_di" = "X$ac_pwd_ls_di" || as_fn_error $? "pwd does not report name of working directory" # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then the parent directory. ac_confdir=`$as_dirname -- "$as_myself" || $as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_myself" : 'X\(//\)[^/]' \| \ X"$as_myself" : 'X\(//\)$' \| \ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_myself" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` srcdir=$ac_confdir if test ! -r "$srcdir/$ac_unique_file"; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then srcdir=. fi # Remove unnecessary trailing slashes from srcdir. # Double slashes in file names in object file debugging info # mess up M-x gdb in Emacs. case $srcdir in */) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; esac for ac_var in $ac_precious_vars; do eval ac_env_${ac_var}_set=\${${ac_var}+set} eval ac_env_${ac_var}_value=\$${ac_var} eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} eval ac_cv_env_${ac_var}_value=\$${ac_var} done # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures glogic 2.6 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print \`checking ...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] --datadir=DIR read-only architecture-independent data [DATAROOTDIR] --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root [DATAROOTDIR/doc/glogic] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF Program names: --program-prefix=PREFIX prepend PREFIX to installed program names --program-suffix=SUFFIX append SUFFIX to installed program names --program-transform-name=PROGRAM run sed PROGRAM on installed program names _ACEOF fi if test -n "$ac_init_help"; then case $ac_init_help in short | recursive ) echo "Configuration of glogic 2.6:";; esac cat <<\_ACEOF Optional Features: --disable-option-checking ignore unrecognized --enable/--with options --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --disable-dependency-tracking speeds up one-time build --enable-dependency-tracking do not reject slow dependency extractors --disable-nls do not use Native Language Support Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-help-dir=DIR path where help files are installed Some influential environment variables: PYTHON the Python interpreter CC C compiler command CFLAGS C compiler flags LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory LIBS libraries to pass to the linker, e.g. -l CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if you have headers in a nonstandard directory CPP C preprocessor ITSTOOL Path to the `itstool` command XMLLINT Path to the `xmllint` command Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. Report bugs to the package provider. _ACEOF ac_status=$? fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d "$ac_dir" || { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || continue ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" || { ac_status=$?; continue; } # Check for guested configure. if test -f "$ac_srcdir/configure.gnu"; then echo && $SHELL "$ac_srcdir/configure.gnu" --help=recursive elif test -f "$ac_srcdir/configure"; then echo && $SHELL "$ac_srcdir/configure" --help=recursive else $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF glogic configure 2.6 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF exit fi ## ------------------------ ## ## Autoconf initialization. ## ## ------------------------ ## # ac_fn_c_try_compile LINENO # -------------------------- # Try to compile conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_compile # ac_fn_c_try_cpp LINENO # ---------------------- # Try to preprocess conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_cpp () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } > conftest.i && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_cpp # ac_fn_c_try_run LINENO # ---------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. Assumes # that executables *can* be run. ac_fn_c_try_run () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : ac_retval=0 else $as_echo "$as_me: program exited with status $ac_status" >&5 $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=$ac_status fi rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_run # ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES # ------------------------------------------------------- # Tests whether HEADER exists, giving a warning if it cannot be compiled using # the include files in INCLUDES and setting the cache variable VAR # accordingly. ac_fn_c_check_header_mongrel () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if eval \${$3+:} false; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } else # Is the header compilable? { $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 $as_echo_n "checking $2 usability... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_header_compiler=yes else ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 $as_echo "$ac_header_compiler" >&6; } # Is the header present? { $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 $as_echo_n "checking $2 presence... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <$2> _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : ac_header_preproc=yes else ac_header_preproc=no fi rm -f conftest.err conftest.i conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 $as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #(( yes:no: ) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 $as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} ;; no:yes:* ) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 $as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 $as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 $as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 $as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else eval "$3=\$ac_header_compiler" fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_mongrel # ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES # ------------------------------------------------------- # Tests whether HEADER exists and can be compiled using the include files in # INCLUDES, setting the cache variable VAR accordingly. ac_fn_c_check_header_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_compile # ac_fn_c_try_link LINENO # ----------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_link () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext conftest$ac_exeext if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || test -x conftest$ac_exeext }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would # interfere with the next link command; also delete a directory that is # left behind by Apple's compiler. We do this before executing the actions. rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_link # ac_fn_c_check_func LINENO FUNC VAR # ---------------------------------- # Tests whether FUNC exists, setting the cache variable VAR accordingly ac_fn_c_check_func () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Define $2 to an innocuous variant, in case declares $2. For example, HP-UX 11i declares gettimeofday. */ #define $2 innocuous_$2 /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $2 (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef $2 /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char $2 (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_$2 || defined __stub___$2 choke me #endif int main () { return $2 (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_func cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by glogic $as_me 2.6, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ _ACEOF exec 5>>config.log { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` /usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. $as_echo "PATH: $as_dir" done IFS=$as_save_IFS } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; 2) as_fn_append ac_configure_args1 " '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi as_fn_append ac_configure_args " '$ac_arg'" ;; esac done done { ac_configure_args0=; unset ac_configure_args0;} { ac_configure_args1=; unset ac_configure_args1;} # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Use '\'' to represent an apostrophe within the trap. # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { echo $as_echo "## ---------------- ## ## Cache variables. ## ## ---------------- ##" echo # The following way of writing the cache mishandles newlines in values, ( for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( *${as_nl}ac_space=\ *) sed -n \ "s/'\''/'\''\\\\'\'''\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" ;; #( *) sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) echo $as_echo "## ----------------- ## ## Output variables. ## ## ----------------- ##" echo for ac_var in $ac_subst_vars do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then $as_echo "## ------------------- ## ## File substitutions. ## ## ------------------- ##" echo for ac_var in $ac_subst_files do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then $as_echo "## ----------- ## ## confdefs.h. ## ## ----------- ##" echo cat confdefs.h echo fi test "$ac_signal" != 0 && $as_echo "$as_me: caught signal $ac_signal" $as_echo "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h $as_echo "/* confdefs.h */" > confdefs.h # Predefined preprocessor variables. cat >>confdefs.h <<_ACEOF #define PACKAGE_NAME "$PACKAGE_NAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_TARNAME "$PACKAGE_TARNAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_VERSION "$PACKAGE_VERSION" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_STRING "$PACKAGE_STRING" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_URL "$PACKAGE_URL" _ACEOF # Let the site file select an alternate cache file if it wants to. # Prefer an explicitly selected file to automatically selected ones. ac_site_file1=NONE ac_site_file2=NONE if test -n "$CONFIG_SITE"; then # We do not want a PATH search for config.site. case $CONFIG_SITE in #(( -*) ac_site_file1=./$CONFIG_SITE;; */*) ac_site_file1=$CONFIG_SITE;; *) ac_site_file1=./$CONFIG_SITE;; esac elif test "x$prefix" != xNONE; then ac_site_file1=$prefix/share/config.site ac_site_file2=$prefix/etc/config.site else ac_site_file1=$ac_default_prefix/share/config.site ac_site_file2=$ac_default_prefix/etc/config.site fi for ac_site_file in "$ac_site_file1" "$ac_site_file2" do test "x$ac_site_file" = xNONE && continue if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 $as_echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" \ || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "failed to load site script $ac_site_file See \`config.log' for more details" "$LINENO" 5; } fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special files # actually), so we avoid doing that. DJGPP emulates it as a regular file. if test /dev/null != "$cache_file" && test -f "$cache_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 $as_echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 $as_echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in $ac_precious_vars; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val=\$ac_cv_env_${ac_var}_value eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then # differences in whitespace do not lead to failure. ac_old_val_w=`echo x $ac_old_val` ac_new_val_w=`echo x $ac_new_val` if test "$ac_old_val_w" != "$ac_new_val_w"; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 $as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} ac_cache_corrupted=: else { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 $as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} eval $ac_var=\$ac_old_val fi { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 $as_echo "$as_me: former value: \`$ac_old_val'" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 $as_echo "$as_me: current value: \`$ac_new_val'" >&2;} fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) as_fn_append ac_configure_args " '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 $as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 fi ## -------------------- ## ## Main body of script. ## ## -------------------- ## ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu am__api_version='1.11' ac_aux_dir= for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do if test -f "$ac_dir/install-sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" break elif test -f "$ac_dir/install.sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install.sh -c" break elif test -f "$ac_dir/shtool"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/shtool install -c" break fi done if test -z "$ac_aux_dir"; then as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 fi # These three variables are undocumented and unsupported, # and are intended to be withdrawn in a future Autoconf release. # They can cause serious problems if a builder's source tree is in a directory # whose full name contains unusual characters. ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. # Reject install programs that cannot install multiple files. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 $as_echo_n "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then if ${ac_cv_path_install+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. case $as_dir/ in #(( ./ | .// | /[cC]/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else rm -rf conftest.one conftest.two conftest.dir echo one > conftest.one echo two > conftest.two mkdir conftest.dir if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && test -s conftest.one && test -s conftest.two && test -s conftest.dir/conftest.one && test -s conftest.dir/conftest.two then ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi fi done done ;; esac done IFS=$as_save_IFS rm -rf conftest.one conftest.two conftest.dir fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. Don't cache a # value for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. INSTALL=$ac_install_sh fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 $as_echo "$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 $as_echo_n "checking whether build environment is sane... " >&6; } # Just in case sleep 1 echo timestamp > conftest.file # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[\\\"\#\$\&\'\`$am_lf]*) as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;; esac case $srcdir in *[\\\"\#\$\&\'\`$am_lf\ \ ]*) as_fn_error $? "unsafe srcdir value: \`$srcdir'" "$LINENO" 5;; esac # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` if test "$*" = "X"; then # -L didn't work. set X `ls -t "$srcdir/configure" conftest.file` fi rm -f conftest.file if test "$*" != "X $srcdir/configure conftest.file" \ && test "$*" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". as_fn_error $? "ls -t appears to fail. Make sure there is not a broken alias in your environment" "$LINENO" 5 fi test "$2" = conftest.file ) then # Ok. : else as_fn_error $? "newly created file is older than distributed files! Check your system clock" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } test "$program_prefix" != NONE && program_transform_name="s&^&$program_prefix&;$program_transform_name" # Use a double $ so make ignores it. test "$program_suffix" != NONE && program_transform_name="s&\$&$program_suffix&;$program_transform_name" # Double any \ or $. # By default was `s,x,x', remove it if useless. ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` if test x"${MISSING+set}" != xset; then case $am_aux_dir in *\ * | *\ *) MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; *) MISSING="\${SHELL} $am_aux_dir/missing" ;; esac fi # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`missing' script is too old or missing" >&5 $as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} fi if test x"${install_sh}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; *) install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi # Installed binaries are usually stripped using `strip' when the user # run `make install-strip'. However `strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the `STRIP' environment variable to overrule this program. if test "$cross_compiling" != no; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 $as_echo "$STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_STRIP="strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 $as_echo "$ac_ct_STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_STRIP" = x; then STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP fi else STRIP="$ac_cv_prog_STRIP" fi fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 $as_echo_n "checking for a thread-safe mkdir -p... " >&6; } if test -z "$MKDIR_P"; then if ${ac_cv_path_mkdir+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in mkdir gmkdir; do for ac_exec_ext in '' $ac_executable_extensions; do as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( 'mkdir (GNU coreutils) '* | \ 'mkdir (coreutils) '* | \ 'mkdir (fileutils) '4.1*) ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext break 3;; esac done done done IFS=$as_save_IFS fi test -d ./--version && rmdir ./--version if test "${ac_cv_path_mkdir+set}" = set; then MKDIR_P="$ac_cv_path_mkdir -p" else # As a last resort, use the slow shell script. Don't cache a # value for MKDIR_P within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. MKDIR_P="$ac_install_sh -d" fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 $as_echo "$MKDIR_P" >&6; } mkdir_p="$MKDIR_P" case $mkdir_p in [\\/$]* | ?:[\\/]*) ;; */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; esac for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_AWK+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AWK"; then ac_cv_prog_AWK="$AWK" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AWK="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 $as_echo "$AWK" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$AWK" && break done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } set x ${MAKE-make} ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : $as_echo_n "(cached) " >&6 else cat >conftest.make <<\_ACEOF SHELL = /bin/sh all: @echo '@@@%%%=$(MAKE)=@@@%%%' _ACEOF # GNU make sometimes prints "make[1]: Entering ...", which would confuse us. case `${MAKE-make} -f conftest.make 2>/dev/null` in *@@@%%%=?*=@@@%%%*) eval ac_cv_prog_make_${ac_make}_set=yes;; *) eval ac_cv_prog_make_${ac_make}_set=no;; esac rm -f conftest.make fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } SET_MAKE= else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." am__isrc=' -I$(srcdir)' # test to see if srcdir already configured if test -f $srcdir/config.status; then as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi # Define the identity of the package. PACKAGE='glogic' VERSION='2.6' cat >>confdefs.h <<_ACEOF #define PACKAGE "$PACKAGE" _ACEOF cat >>confdefs.h <<_ACEOF #define VERSION "$VERSION" _ACEOF # Some tools Automake needs. ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} # We need awk for the "check" target. The system "awk" is bad on # some platforms. # Always define AMTAR for backward compatibility. Yes, it's still used # in the wild :-( We should find a proper way to deprecate it ... AMTAR='$${TAR-tar}' am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -' if test -n "$PYTHON"; then # If the user set $PYTHON, use it and don't search something else. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $PYTHON version >= 3.1" >&5 $as_echo_n "checking whether $PYTHON version >= 3.1... " >&6; } prog="import sys # split strings by '.' and convert to numeric. Append some zeros # because we need at least 4 digits for the hex conversion. # map returns an iterator in Python 3.0 and a list in 2.x minver = list(map(int, '3.1'.split('.'))) + [0, 0, 0] minverhex = 0 # xrange is not present in Python 3.0 and range returns an iterator for i in list(range(0, 4)): minverhex = (minverhex << 8) + minver[i] sys.exit(sys.hexversion < minverhex)" if { echo "$as_me:$LINENO: $PYTHON -c "$prog"" >&5 ($PYTHON -c "$prog") >&5 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else as_fn_error $? "too old" "$LINENO" 5 fi am_display_PYTHON=$PYTHON else # Otherwise, try each interpreter until we find one that satisfies # VERSION. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a Python interpreter with version >= 3.1" >&5 $as_echo_n "checking for a Python interpreter with version >= 3.1... " >&6; } if ${am_cv_pathless_PYTHON+:} false; then : $as_echo_n "(cached) " >&6 else for am_cv_pathless_PYTHON in python python2 python3 python3.2 python3.1 python3.0 python2.7 python2.6 python2.5 python2.4 python2.3 python2.2 python2.1 python2.0 none; do test "$am_cv_pathless_PYTHON" = none && break prog="import sys # split strings by '.' and convert to numeric. Append some zeros # because we need at least 4 digits for the hex conversion. # map returns an iterator in Python 3.0 and a list in 2.x minver = list(map(int, '3.1'.split('.'))) + [0, 0, 0] minverhex = 0 # xrange is not present in Python 3.0 and range returns an iterator for i in list(range(0, 4)): minverhex = (minverhex << 8) + minver[i] sys.exit(sys.hexversion < minverhex)" if { echo "$as_me:$LINENO: $am_cv_pathless_PYTHON -c "$prog"" >&5 ($am_cv_pathless_PYTHON -c "$prog") >&5 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then : break fi done fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_pathless_PYTHON" >&5 $as_echo "$am_cv_pathless_PYTHON" >&6; } # Set $PYTHON to the absolute path of $am_cv_pathless_PYTHON. if test "$am_cv_pathless_PYTHON" = none; then PYTHON=: else # Extract the first word of "$am_cv_pathless_PYTHON", so it can be a program name with args. set dummy $am_cv_pathless_PYTHON; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_PYTHON+:} false; then : $as_echo_n "(cached) " >&6 else case $PYTHON in [\\/]* | ?:[\\/]*) ac_cv_path_PYTHON="$PYTHON" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_PYTHON="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi PYTHON=$ac_cv_path_PYTHON if test -n "$PYTHON"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON" >&5 $as_echo "$PYTHON" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi am_display_PYTHON=$am_cv_pathless_PYTHON fi if test "$PYTHON" = :; then as_fn_error $? "no suitable Python interpreter found" "$LINENO" 5 else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON version" >&5 $as_echo_n "checking for $am_display_PYTHON version... " >&6; } if ${am_cv_python_version+:} false; then : $as_echo_n "(cached) " >&6 else am_cv_python_version=`$PYTHON -c "import sys; sys.stdout.write(sys.version[:3])"` fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_version" >&5 $as_echo "$am_cv_python_version" >&6; } PYTHON_VERSION=$am_cv_python_version PYTHON_PREFIX='${prefix}' PYTHON_EXEC_PREFIX='${exec_prefix}' { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON platform" >&5 $as_echo_n "checking for $am_display_PYTHON platform... " >&6; } if ${am_cv_python_platform+:} false; then : $as_echo_n "(cached) " >&6 else am_cv_python_platform=`$PYTHON -c "import sys; sys.stdout.write(sys.platform)"` fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_platform" >&5 $as_echo "$am_cv_python_platform" >&6; } PYTHON_PLATFORM=$am_cv_python_platform { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON script directory" >&5 $as_echo_n "checking for $am_display_PYTHON script directory... " >&6; } if ${am_cv_python_pythondir+:} false; then : $as_echo_n "(cached) " >&6 else if test "x$prefix" = xNONE then am_py_prefix=$ac_default_prefix else am_py_prefix=$prefix fi am_cv_python_pythondir=`$PYTHON -c "import sys; from distutils import sysconfig; sys.stdout.write(sysconfig.get_python_lib(0,0,prefix='$am_py_prefix'))" 2>/dev/null` case $am_cv_python_pythondir in $am_py_prefix*) am__strip_prefix=`echo "$am_py_prefix" | sed 's|.|.|g'` am_cv_python_pythondir=`echo "$am_cv_python_pythondir" | sed "s,^$am__strip_prefix,$PYTHON_PREFIX,"` ;; *) case $am_py_prefix in /usr|/System*) ;; *) am_cv_python_pythondir=$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages ;; esac ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_pythondir" >&5 $as_echo "$am_cv_python_pythondir" >&6; } pythondir=$am_cv_python_pythondir pkgpythondir=\${pythondir}/$PACKAGE { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON extension module directory" >&5 $as_echo_n "checking for $am_display_PYTHON extension module directory... " >&6; } if ${am_cv_python_pyexecdir+:} false; then : $as_echo_n "(cached) " >&6 else if test "x$exec_prefix" = xNONE then am_py_exec_prefix=$am_py_prefix else am_py_exec_prefix=$exec_prefix fi am_cv_python_pyexecdir=`$PYTHON -c "import sys; from distutils import sysconfig; sys.stdout.write(sysconfig.get_python_lib(1,0,prefix='$am_py_exec_prefix'))" 2>/dev/null` case $am_cv_python_pyexecdir in $am_py_exec_prefix*) am__strip_prefix=`echo "$am_py_exec_prefix" | sed 's|.|.|g'` am_cv_python_pyexecdir=`echo "$am_cv_python_pyexecdir" | sed "s,^$am__strip_prefix,$PYTHON_EXEC_PREFIX,"` ;; *) case $am_py_exec_prefix in /usr|/System*) ;; *) am_cv_python_pyexecdir=$PYTHON_EXEC_PREFIX/lib/python$PYTHON_VERSION/site-packages ;; esac ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_pyexecdir" >&5 $as_echo "$am_cv_python_pyexecdir" >&6; } pyexecdir=$am_cv_python_pyexecdir pkgpyexecdir=\${pyexecdir}/$PACKAGE fi GETTEXT_PACKAGE=glogic cat >>confdefs.h <<_ACEOF #define GETTEXT_PACKAGE "$GETTEXT_PACKAGE" _ACEOF DEPDIR="${am__leading_dot}deps" ac_config_commands="$ac_config_commands depfiles" am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo this is the am__doit target .PHONY: am__doit END # If we don't find an include directive, just comment out the code. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5 $as_echo_n "checking for style of include used by $am_make... " >&6; } am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # Ignore all kinds of additional output from `make'. case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=include am__quote= _am_result=GNU ;; esac # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=.include am__quote="\"" _am_result=BSD ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5 $as_echo "$_am_result" >&6; } rm -f confinc confmf # Check whether --enable-dependency-tracking was given. if test "${enable_dependency_tracking+set}" = set; then : enableval=$enable_dependency_tracking; fi if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' am__nodep='_no' fi if test "x$enable_dependency_tracking" != xno; then AMDEP_TRUE= AMDEP_FALSE='#' else AMDEP_TRUE='#' AMDEP_FALSE= fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl.exe do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl.exe do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CC" && break done if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "no acceptable C compiler found in \$PATH See \`config.log' for more details" "$LINENO" 5; } # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 $as_echo_n "checking whether the C compiler works... " >&6; } ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` # The possible output files: ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" ac_rmfiles= for ac_file in $ac_files do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; * ) ac_rmfiles="$ac_rmfiles $ac_file";; esac done rm -f $ac_rmfiles if { { ac_try="$ac_link_default" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link_default") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. # So ignore a value of `no', otherwise this would lead to `EXEEXT = no' # in a Makefile. We should not override ac_cv_exeext if it was cached, # so that the user can short-circuit this test for compilers unknown to # Autoconf. for ac_file in $ac_files '' do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; [ab].out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; then :; else ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` fi # We set ac_cv_exeext here because the later test for it is not # safe: cross compilers may not add the suffix if given an `-o' # argument, so we may need to know it at that point already. # Even if this section looks crufty: it has the advantage of # actually working. break;; * ) break;; esac done test "$ac_cv_exeext" = no && ac_cv_exeext= else ac_file='' fi if test -z "$ac_file"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "C compiler cannot create executables See \`config.log' for more details" "$LINENO" 5; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 $as_echo_n "checking for C compiler default output file name... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 $as_echo "$ac_file" >&6; } ac_exeext=$ac_cv_exeext rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 $as_echo_n "checking for suffix of executables... " >&6; } if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will # work properly (i.e., refer to `conftest.exe'), while it won't with # `rm'. for ac_file in conftest.exe conftest conftest.*; do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` break;; * ) break;; esac done else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of executables: cannot compile and link See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest conftest$ac_cv_exeext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 $as_echo "$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { FILE *f = fopen ("conftest.out", "w"); return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF ac_clean_files="$ac_clean_files conftest.out" # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 $as_echo_n "checking whether we are cross compiling... " >&6; } if test "$cross_compiling" != yes; then { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if { ac_try='./conftest$ac_cv_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details" "$LINENO" 5; } fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 $as_echo "$cross_compiling" >&6; } rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 $as_echo_n "checking for suffix of object files... " >&6; } if ${ac_cv_objext+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.o conftest.obj if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : for ac_file in conftest.o conftest.obj conftest.*; do test -f "$ac_file" || continue; case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of object files: cannot compile See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 $as_echo "$ac_cv_objext" >&6; } OBJEXT=$ac_cv_objext ac_objext=$OBJEXT { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; } if ${ac_cv_c_compiler_gnu+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_compiler_gnu=yes else ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 $as_echo "$ac_cv_c_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GCC=yes else GCC= fi ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 $as_echo_n "checking whether $CC accepts -g... " >&6; } if ${ac_cv_prog_cc_g+:} false; then : $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes else CFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 $as_echo "$ac_cv_prog_cc_g" >&6; } if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } if ${ac_cv_prog_cc_c89+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include struct stat; /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters inside strings and character constants. */ #define FOO(x) 'x' int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_c89=$ac_arg fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 $as_echo "none needed" >&6; } ;; xno) { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 $as_echo "unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 $as_echo "$ac_cv_prog_cc_c89" >&6; } ;; esac if test "x$ac_cv_prog_cc_c89" != xno; then : fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu depcc="$CC" am_compiler_list= { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } if ${am_cv_CC_dependencies_compiler_type+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CC_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi am__universal=false case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvc7 | msvc7msys | msvisualcpp | msvcmsys) # This compiler won't grok `-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CC_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CC_dependencies_compiler_type=none fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 $as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then am__fastdepCC_TRUE= am__fastdepCC_FALSE='#' else am__fastdepCC_TRUE='#' am__fastdepCC_FALSE= fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 $as_echo_n "checking how to run the C preprocessor... " >&6; } # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then if ${ac_cv_prog_CPP+:} false; then : $as_echo_n "(cached) " >&6 else # Double quotes because CPP needs to be expanded for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" do ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : break fi done ac_cv_prog_CPP=$CPP fi CPP=$ac_cv_prog_CPP else ac_cv_prog_CPP=$CPP fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 $as_echo "$CPP" >&6; } ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details" "$LINENO" 5; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 $as_echo_n "checking for grep that handles long lines and -e... " >&6; } if ${ac_cv_path_GREP+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$GREP"; then ac_path_GREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in grep ggrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_GREP" || continue # Check for GNU ac_path_GREP and select it if it is found. # Check for GNU $ac_path_GREP case `"$ac_path_GREP" --version 2>&1` in *GNU*) ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'GREP' >> "conftest.nl" "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_GREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_GREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_GREP"; then as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_GREP=$GREP fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 $as_echo "$ac_cv_path_GREP" >&6; } GREP="$ac_cv_path_GREP" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 $as_echo_n "checking for egrep... " >&6; } if ${ac_cv_path_EGREP+:} false; then : $as_echo_n "(cached) " >&6 else if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 then ac_cv_path_EGREP="$GREP -E" else if test -z "$EGREP"; then ac_path_EGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in egrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_EGREP" || continue # Check for GNU ac_path_EGREP and select it if it is found. # Check for GNU $ac_path_EGREP case `"$ac_path_EGREP" --version 2>&1` in *GNU*) ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'EGREP' >> "conftest.nl" "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_EGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_EGREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_EGREP"; then as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_EGREP=$EGREP fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 $as_echo "$ac_cv_path_EGREP" >&6; } EGREP="$ac_cv_path_EGREP" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } if ${ac_cv_header_stdc+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_stdc=yes else ac_cv_header_stdc=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) return 2; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : else ac_cv_header_stdc=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 $as_echo "$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then $as_echo "#define STDC_HEADERS 1" >>confdefs.h fi # On IRIX 5.3, sys/types and inttypes.h are conflicting. for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ inttypes.h stdint.h unistd.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default " if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done for ac_header in locale.h do : ac_fn_c_check_header_mongrel "$LINENO" "locale.h" "ac_cv_header_locale_h" "$ac_includes_default" if test "x$ac_cv_header_locale_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LOCALE_H 1 _ACEOF fi done if test $ac_cv_header_locale_h = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for LC_MESSAGES" >&5 $as_echo_n "checking for LC_MESSAGES... " >&6; } if ${am_cv_val_LC_MESSAGES+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { return LC_MESSAGES ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : am_cv_val_LC_MESSAGES=yes else am_cv_val_LC_MESSAGES=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_val_LC_MESSAGES" >&5 $as_echo "$am_cv_val_LC_MESSAGES" >&6; } if test $am_cv_val_LC_MESSAGES = yes; then $as_echo "#define HAVE_LC_MESSAGES 1" >>confdefs.h fi fi USE_NLS=yes gt_cv_have_gettext=no CATOBJEXT=NONE XGETTEXT=: INTLLIBS= ac_fn_c_check_header_mongrel "$LINENO" "libintl.h" "ac_cv_header_libintl_h" "$ac_includes_default" if test "x$ac_cv_header_libintl_h" = xyes; then : gt_cv_func_dgettext_libintl="no" libintl_extra_libs="" # # First check in libc # { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ngettext in libc" >&5 $as_echo_n "checking for ngettext in libc... " >&6; } if ${gt_cv_func_ngettext_libc+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { return !ngettext ("","", 1) ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gt_cv_func_ngettext_libc=yes else gt_cv_func_ngettext_libc=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_ngettext_libc" >&5 $as_echo "$gt_cv_func_ngettext_libc" >&6; } if test "$gt_cv_func_ngettext_libc" = "yes" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dgettext in libc" >&5 $as_echo_n "checking for dgettext in libc... " >&6; } if ${gt_cv_func_dgettext_libc+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { return !dgettext ("","") ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gt_cv_func_dgettext_libc=yes else gt_cv_func_dgettext_libc=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_dgettext_libc" >&5 $as_echo "$gt_cv_func_dgettext_libc" >&6; } fi if test "$gt_cv_func_ngettext_libc" = "yes" ; then for ac_func in bind_textdomain_codeset do : ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset" if test "x$ac_cv_func_bind_textdomain_codeset" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_BIND_TEXTDOMAIN_CODESET 1 _ACEOF fi done fi # # If we don't have everything we want, check in libintl # if test "$gt_cv_func_dgettext_libc" != "yes" \ || test "$gt_cv_func_ngettext_libc" != "yes" \ || test "$ac_cv_func_bind_textdomain_codeset" != "yes" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for bindtextdomain in -lintl" >&5 $as_echo_n "checking for bindtextdomain in -lintl... " >&6; } if ${ac_cv_lib_intl_bindtextdomain+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lintl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char bindtextdomain (); int main () { return bindtextdomain (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_intl_bindtextdomain=yes else ac_cv_lib_intl_bindtextdomain=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_bindtextdomain" >&5 $as_echo "$ac_cv_lib_intl_bindtextdomain" >&6; } if test "x$ac_cv_lib_intl_bindtextdomain" = xyes; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ngettext in -lintl" >&5 $as_echo_n "checking for ngettext in -lintl... " >&6; } if ${ac_cv_lib_intl_ngettext+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lintl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char ngettext (); int main () { return ngettext (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_intl_ngettext=yes else ac_cv_lib_intl_ngettext=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_ngettext" >&5 $as_echo "$ac_cv_lib_intl_ngettext" >&6; } if test "x$ac_cv_lib_intl_ngettext" = xyes; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dgettext in -lintl" >&5 $as_echo_n "checking for dgettext in -lintl... " >&6; } if ${ac_cv_lib_intl_dgettext+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lintl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dgettext (); int main () { return dgettext (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_intl_dgettext=yes else ac_cv_lib_intl_dgettext=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_dgettext" >&5 $as_echo "$ac_cv_lib_intl_dgettext" >&6; } if test "x$ac_cv_lib_intl_dgettext" = xyes; then : gt_cv_func_dgettext_libintl=yes fi fi fi if test "$gt_cv_func_dgettext_libintl" != "yes" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking if -liconv is needed to use gettext" >&5 $as_echo_n "checking if -liconv is needed to use gettext... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 $as_echo "" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ngettext in -lintl" >&5 $as_echo_n "checking for ngettext in -lintl... " >&6; } if ${ac_cv_lib_intl_ngettext+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lintl -liconv $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char ngettext (); int main () { return ngettext (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_intl_ngettext=yes else ac_cv_lib_intl_ngettext=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_ngettext" >&5 $as_echo "$ac_cv_lib_intl_ngettext" >&6; } if test "x$ac_cv_lib_intl_ngettext" = xyes; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dcgettext in -lintl" >&5 $as_echo_n "checking for dcgettext in -lintl... " >&6; } if ${ac_cv_lib_intl_dcgettext+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lintl -liconv $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dcgettext (); int main () { return dcgettext (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_intl_dcgettext=yes else ac_cv_lib_intl_dcgettext=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_dcgettext" >&5 $as_echo "$ac_cv_lib_intl_dcgettext" >&6; } if test "x$ac_cv_lib_intl_dcgettext" = xyes; then : gt_cv_func_dgettext_libintl=yes libintl_extra_libs=-liconv else : fi else : fi fi # # If we found libintl, then check in it for bind_textdomain_codeset(); # we'll prefer libc if neither have bind_textdomain_codeset(), # and both have dgettext and ngettext # if test "$gt_cv_func_dgettext_libintl" = "yes" ; then glib_save_LIBS="$LIBS" LIBS="$LIBS -lintl $libintl_extra_libs" unset ac_cv_func_bind_textdomain_codeset for ac_func in bind_textdomain_codeset do : ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset" if test "x$ac_cv_func_bind_textdomain_codeset" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_BIND_TEXTDOMAIN_CODESET 1 _ACEOF fi done LIBS="$glib_save_LIBS" if test "$ac_cv_func_bind_textdomain_codeset" = "yes" ; then gt_cv_func_dgettext_libc=no else if test "$gt_cv_func_dgettext_libc" = "yes" \ && test "$gt_cv_func_ngettext_libc" = "yes"; then gt_cv_func_dgettext_libintl=no fi fi fi fi if test "$gt_cv_func_dgettext_libc" = "yes" \ || test "$gt_cv_func_dgettext_libintl" = "yes"; then gt_cv_have_gettext=yes fi if test "$gt_cv_func_dgettext_libintl" = "yes"; then INTLLIBS="-lintl $libintl_extra_libs" fi if test "$gt_cv_have_gettext" = "yes"; then $as_echo "#define HAVE_GETTEXT 1" >>confdefs.h # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_MSGFMT+:} false; then : $as_echo_n "(cached) " >&6 else case "$MSGFMT" in /*) ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. ;; *) IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" for ac_dir in $PATH; do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then if test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"; then ac_cv_path_MSGFMT="$ac_dir/$ac_word" break fi fi done IFS="$ac_save_ifs" test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT="no" ;; esac fi MSGFMT="$ac_cv_path_MSGFMT" if test "$MSGFMT" != "no"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5 $as_echo "$MSGFMT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "$MSGFMT" != "no"; then glib_save_LIBS="$LIBS" LIBS="$LIBS $INTLLIBS" for ac_func in dcgettext do : ac_fn_c_check_func "$LINENO" "dcgettext" "ac_cv_func_dcgettext" if test "x$ac_cv_func_dcgettext" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_DCGETTEXT 1 _ACEOF fi done MSGFMT_OPTS= { $as_echo "$as_me:${as_lineno-$LINENO}: checking if msgfmt accepts -c" >&5 $as_echo_n "checking if msgfmt accepts -c... " >&6; } cat >conftest.foo <<_ACEOF msgid "" msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Project-Id-Version: test 1.0\n" "PO-Revision-Date: 2007-02-15 12:01+0100\n" "Last-Translator: test \n" "Language-Team: C \n" "MIME-Version: 1.0\n" "Content-Transfer-Encoding: 8bit\n" _ACEOF if { { $as_echo "$as_me:${as_lineno-$LINENO}: \$MSGFMT -c -o /dev/null conftest.foo"; } >&5 ($MSGFMT -c -o /dev/null conftest.foo) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then MSGFMT_OPTS=-c; { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } echo "$as_me: failed input was:" >&5 sed 's/^/| /' conftest.foo >&5 fi # Extract the first word of "gmsgfmt", so it can be a program name with args. set dummy gmsgfmt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_GMSGFMT+:} false; then : $as_echo_n "(cached) " >&6 else case $GMSGFMT in [\\/]* | ?:[\\/]*) ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" ;; esac fi GMSGFMT=$ac_cv_path_GMSGFMT if test -n "$GMSGFMT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5 $as_echo "$GMSGFMT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "xgettext", so it can be a program name with args. set dummy xgettext; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_XGETTEXT+:} false; then : $as_echo_n "(cached) " >&6 else case "$XGETTEXT" in /*) ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. ;; *) IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" for ac_dir in $PATH; do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then if test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"; then ac_cv_path_XGETTEXT="$ac_dir/$ac_word" break fi fi done IFS="$ac_save_ifs" test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":" ;; esac fi XGETTEXT="$ac_cv_path_XGETTEXT" if test "$XGETTEXT" != ":"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5 $as_echo "$XGETTEXT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { extern int _nl_msg_cat_cntr; return _nl_msg_cat_cntr ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : CATOBJEXT=.gmo DATADIRNAME=share else case $host in *-*-solaris*) ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset" if test "x$ac_cv_func_bind_textdomain_codeset" = xyes; then : CATOBJEXT=.gmo DATADIRNAME=share else CATOBJEXT=.mo DATADIRNAME=lib fi ;; *-*-openbsd*) CATOBJEXT=.mo DATADIRNAME=share ;; *) CATOBJEXT=.mo DATADIRNAME=lib ;; esac fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="$glib_save_LIBS" INSTOBJEXT=.mo else gt_cv_have_gettext=no fi fi fi if test "$gt_cv_have_gettext" = "yes" ; then $as_echo "#define ENABLE_NLS 1" >>confdefs.h fi if test "$XGETTEXT" != ":"; then if $XGETTEXT --omit-header /dev/null 2> /dev/null; then : ; else { $as_echo "$as_me:${as_lineno-$LINENO}: result: found xgettext program is not GNU xgettext; ignore it" >&5 $as_echo "found xgettext program is not GNU xgettext; ignore it" >&6; } XGETTEXT=":" fi fi # We need to process the po/ directory. POSUB=po ac_config_commands="$ac_config_commands default-1" for lang in $ALL_LINGUAS; do GMOFILES="$GMOFILES $lang.gmo" POFILES="$POFILES $lang.po" done if test "$gt_cv_have_gettext" = "yes"; then if test "x$ALL_LINGUAS" = "x"; then LINGUAS= else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for catalogs to be installed" >&5 $as_echo_n "checking for catalogs to be installed... " >&6; } NEW_LINGUAS= for presentlang in $ALL_LINGUAS; do useit=no if test "%UNSET%" != "${LINGUAS-%UNSET%}"; then desiredlanguages="$LINGUAS" else desiredlanguages="$ALL_LINGUAS" fi for desiredlang in $desiredlanguages; do # Use the presentlang catalog if desiredlang is # a. equal to presentlang, or # b. a variant of presentlang (because in this case, # presentlang can be used as a fallback for messages # which are not translated in the desiredlang catalog). case "$desiredlang" in "$presentlang"*) useit=yes;; esac done if test $useit = yes; then NEW_LINGUAS="$NEW_LINGUAS $presentlang" fi done LINGUAS=$NEW_LINGUAS { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LINGUAS" >&5 $as_echo "$LINGUAS" >&6; } fi if test -n "$LINGUAS"; then for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done fi fi MKINSTALLDIRS= if test -n "$ac_aux_dir"; then MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" fi if test -z "$MKINSTALLDIRS"; then MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs" fi test -d po || mkdir po if test "x$srcdir" != "x."; then if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then posrcprefix="$srcdir/" else posrcprefix="../$srcdir/" fi else posrcprefix="../" fi rm -f po/POTFILES sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \ < $srcdir/po/POTFILES.in > po/POTFILES { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NLS is requested" >&5 $as_echo_n "checking whether NLS is requested... " >&6; } # Check whether --enable-nls was given. if test "${enable_nls+set}" = set; then : enableval=$enable_nls; USE_NLS=$enableval else USE_NLS=yes fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5 $as_echo "$USE_NLS" >&6; } case "$am__api_version" in 1.01234) as_fn_error $? "Automake 1.5 or newer is required to use intltool" "$LINENO" 5 ;; *) ;; esac INTLTOOL_REQUIRED_VERSION_AS_INT=`echo 0.35.0 | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` INTLTOOL_APPLIED_VERSION=`intltool-update --version | head -1 | cut -d" " -f3` INTLTOOL_APPLIED_VERSION_AS_INT=`echo $INTLTOOL_APPLIED_VERSION | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` if test -n "0.35.0"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for intltool >= 0.35.0" >&5 $as_echo_n "checking for intltool >= 0.35.0... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_APPLIED_VERSION found" >&5 $as_echo "$INTLTOOL_APPLIED_VERSION found" >&6; } test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge "$INTLTOOL_REQUIRED_VERSION_AS_INT" || as_fn_error $? "Your intltool is too old. You need intltool 0.35.0 or later." "$LINENO" 5 fi # Extract the first word of "intltool-update", so it can be a program name with args. set dummy intltool-update; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_INTLTOOL_UPDATE+:} false; then : $as_echo_n "(cached) " >&6 else case $INTLTOOL_UPDATE in [\\/]* | ?:[\\/]*) ac_cv_path_INTLTOOL_UPDATE="$INTLTOOL_UPDATE" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_INTLTOOL_UPDATE="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi INTLTOOL_UPDATE=$ac_cv_path_INTLTOOL_UPDATE if test -n "$INTLTOOL_UPDATE"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_UPDATE" >&5 $as_echo "$INTLTOOL_UPDATE" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "intltool-merge", so it can be a program name with args. set dummy intltool-merge; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_INTLTOOL_MERGE+:} false; then : $as_echo_n "(cached) " >&6 else case $INTLTOOL_MERGE in [\\/]* | ?:[\\/]*) ac_cv_path_INTLTOOL_MERGE="$INTLTOOL_MERGE" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_INTLTOOL_MERGE="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi INTLTOOL_MERGE=$ac_cv_path_INTLTOOL_MERGE if test -n "$INTLTOOL_MERGE"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_MERGE" >&5 $as_echo "$INTLTOOL_MERGE" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "intltool-extract", so it can be a program name with args. set dummy intltool-extract; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_INTLTOOL_EXTRACT+:} false; then : $as_echo_n "(cached) " >&6 else case $INTLTOOL_EXTRACT in [\\/]* | ?:[\\/]*) ac_cv_path_INTLTOOL_EXTRACT="$INTLTOOL_EXTRACT" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_INTLTOOL_EXTRACT="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi INTLTOOL_EXTRACT=$ac_cv_path_INTLTOOL_EXTRACT if test -n "$INTLTOOL_EXTRACT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_EXTRACT" >&5 $as_echo "$INTLTOOL_EXTRACT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test -z "$INTLTOOL_UPDATE" -o -z "$INTLTOOL_MERGE" -o -z "$INTLTOOL_EXTRACT"; then as_fn_error $? "The intltool scripts were not found. Please install intltool." "$LINENO" 5 fi if test -z "$AM_DEFAULT_VERBOSITY"; then AM_DEFAULT_VERBOSITY=1 fi INTLTOOL_V_MERGE='$(INTLTOOL__v_MERGE_$(V))' INTLTOOL__v_MERGE_='$(INTLTOOL__v_MERGE_$(AM_DEFAULT_VERBOSITY))' INTLTOOL__v_MERGE_0='@echo " ITMRG " $@;' INTLTOOL_V_MERGE_OPTIONS='$(intltool__v_merge_options_$(V))' intltool__v_merge_options_='$(intltool__v_merge_options_$(AM_DEFAULT_VERBOSITY))' intltool__v_merge_options_0='-q' INTLTOOL_DESKTOP_RULE='%.desktop: %.desktop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_DIRECTORY_RULE='%.directory: %.directory.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_KEYS_RULE='%.keys: %.keys.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -k -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_PROP_RULE='%.prop: %.prop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_OAF_RULE='%.oaf: %.oaf.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -o -p $(top_srcdir)/po $< $@' INTLTOOL_PONG_RULE='%.pong: %.pong.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_SERVER_RULE='%.server: %.server.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -o -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_SHEET_RULE='%.sheet: %.sheet.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_SOUNDLIST_RULE='%.soundlist: %.soundlist.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_UI_RULE='%.ui: %.ui.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_XML_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' if test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge 5000; then INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u --no-translations $< $@' else INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; $(INTLTOOL_V_MERGE)_it_tmp_dir=tmp.intltool.$$RANDOM && mkdir $$_it_tmp_dir && LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u $$_it_tmp_dir $< $@ && rmdir $$_it_tmp_dir' fi INTLTOOL_XAM_RULE='%.xam: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_KBD_RULE='%.kbd: %.kbd.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -m -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_CAVES_RULE='%.caves: %.caves.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_SCHEMAS_RULE='%.schemas: %.schemas.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -s -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_THEME_RULE='%.theme: %.theme.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_SERVICE_RULE='%.service: %.service.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_POLICY_RULE='%.policy: %.policy.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' # Check the gettext tools to make sure they are GNU # Extract the first word of "xgettext", so it can be a program name with args. set dummy xgettext; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_XGETTEXT+:} false; then : $as_echo_n "(cached) " >&6 else case $XGETTEXT in [\\/]* | ?:[\\/]*) ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_XGETTEXT="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi XGETTEXT=$ac_cv_path_XGETTEXT if test -n "$XGETTEXT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5 $as_echo "$XGETTEXT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "msgmerge", so it can be a program name with args. set dummy msgmerge; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_MSGMERGE+:} false; then : $as_echo_n "(cached) " >&6 else case $MSGMERGE in [\\/]* | ?:[\\/]*) ac_cv_path_MSGMERGE="$MSGMERGE" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_MSGMERGE="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi MSGMERGE=$ac_cv_path_MSGMERGE if test -n "$MSGMERGE"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGMERGE" >&5 $as_echo "$MSGMERGE" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_MSGFMT+:} false; then : $as_echo_n "(cached) " >&6 else case $MSGFMT in [\\/]* | ?:[\\/]*) ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_MSGFMT="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi MSGFMT=$ac_cv_path_MSGFMT if test -n "$MSGFMT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5 $as_echo "$MSGFMT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "gmsgfmt", so it can be a program name with args. set dummy gmsgfmt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_GMSGFMT+:} false; then : $as_echo_n "(cached) " >&6 else case $GMSGFMT in [\\/]* | ?:[\\/]*) ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" ;; esac fi GMSGFMT=$ac_cv_path_GMSGFMT if test -n "$GMSGFMT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5 $as_echo "$GMSGFMT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test -z "$XGETTEXT" -o -z "$MSGMERGE" -o -z "$MSGFMT"; then as_fn_error $? "GNU gettext tools not found; required for intltool" "$LINENO" 5 fi xgversion="`$XGETTEXT --version|grep '(GNU ' 2> /dev/null`" mmversion="`$MSGMERGE --version|grep '(GNU ' 2> /dev/null`" mfversion="`$MSGFMT --version|grep '(GNU ' 2> /dev/null`" if test -z "$xgversion" -o -z "$mmversion" -o -z "$mfversion"; then as_fn_error $? "GNU gettext tools not found; required for intltool" "$LINENO" 5 fi # Extract the first word of "perl", so it can be a program name with args. set dummy perl; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_INTLTOOL_PERL+:} false; then : $as_echo_n "(cached) " >&6 else case $INTLTOOL_PERL in [\\/]* | ?:[\\/]*) ac_cv_path_INTLTOOL_PERL="$INTLTOOL_PERL" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_INTLTOOL_PERL="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi INTLTOOL_PERL=$ac_cv_path_INTLTOOL_PERL if test -n "$INTLTOOL_PERL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_PERL" >&5 $as_echo "$INTLTOOL_PERL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test -z "$INTLTOOL_PERL"; then as_fn_error $? "perl not found" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for perl >= 5.8.1" >&5 $as_echo_n "checking for perl >= 5.8.1... " >&6; } $INTLTOOL_PERL -e "use 5.8.1;" > /dev/null 2>&1 if test $? -ne 0; then as_fn_error $? "perl 5.8.1 is required for intltool" "$LINENO" 5 else IT_PERL_VERSION=`$INTLTOOL_PERL -e "printf '%vd', $^V"` { $as_echo "$as_me:${as_lineno-$LINENO}: result: $IT_PERL_VERSION" >&5 $as_echo "$IT_PERL_VERSION" >&6; } fi if test "x" != "xno-xml"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XML::Parser" >&5 $as_echo_n "checking for XML::Parser... " >&6; } if `$INTLTOOL_PERL -e "require XML::Parser" 2>/dev/null`; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 $as_echo "ok" >&6; } else as_fn_error $? "XML::Parser perl module is required for intltool" "$LINENO" 5 fi fi # Substitute ALL_LINGUAS so we can use it in po/Makefile # Set DATADIRNAME correctly if it is not set yet # (copied from glib-gettext.m4) if test -z "$DATADIRNAME"; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { extern int _nl_msg_cat_cntr; return _nl_msg_cat_cntr ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : DATADIRNAME=share else case $host in *-*-solaris*) ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset" if test "x$ac_cv_func_bind_textdomain_codeset" = xyes; then : DATADIRNAME=share else DATADIRNAME=lib fi ;; *) DATADIRNAME=lib ;; esac fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." am__isrc=' -I$(srcdir)' # test to see if srcdir already configured if test -f $srcdir/config.status; then as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi # Define the identity of the package. PACKAGE='glogic' VERSION='2.6' cat >>confdefs.h <<_ACEOF #define PACKAGE "$PACKAGE" _ACEOF cat >>confdefs.h <<_ACEOF #define VERSION "$VERSION" _ACEOF # Some tools Automake needs. ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} # We need awk for the "check" target. The system "awk" is bad on # some platforms. # Always define AMTAR for backward compatibility. Yes, it's still used # in the wild :-( We should find a proper way to deprecate it ... AMTAR='$${TAR-tar}' am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -' depcc="$CC" am_compiler_list= { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } if ${am_cv_CC_dependencies_compiler_type+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CC_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi am__universal=false case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvc7 | msvc7msys | msvisualcpp | msvcmsys) # This compiler won't grok `-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CC_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CC_dependencies_compiler_type=none fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 $as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then am__fastdepCC_TRUE= am__fastdepCC_FALSE='#' else am__fastdepCC_TRUE='#' am__fastdepCC_FALSE= fi EXP_VAR=DATADIR FROM_VAR=$datadir prefix_save=$prefix exec_prefix_save=$exec_prefix if test "x$prefix" = "xNONE"; then prefix="$ac_default_prefix" fi if test "x$exec_prefix" = "xNONE"; then exec_prefix=$prefix fi full_var="$FROM_VAR" while true; do new_full_var="`eval echo $full_var`" if test "x$new_full_var" = "x$full_var"; then break; fi full_var=$new_full_var done full_var=$new_full_var DATADIR="$full_var" prefix=$prefix_save exec_prefix=$exec_prefix_save bzrrev="" if test -d "$srcdir/.bzr"; \ then \ echo This is a development branch && \ cd $srcdir && \ bzrrev=`$srcdir/missing --run bzr revno` \ || echo Failed to get revision number >&2 \ else \ echo This is a released software; \ fi BZRREV=$bzrrev { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 $as_echo_n "checking whether ln -s works... " >&6; } LN_S=$as_ln_s if test "$LN_S" = "ln -s"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 $as_echo "no, using $LN_S" >&6; } fi # Check whether --with-help-dir was given. if test "${with_help_dir+set}" = set; then : withval=$with_help_dir; else with_help_dir='${datadir}/help' fi HELP_DIR="$with_help_dir" # Extract the first word of "itstool", so it can be a program name with args. set dummy itstool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ITSTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ITSTOOL"; then ac_cv_prog_ITSTOOL="$ITSTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ITSTOOL="itstool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ITSTOOL=$ac_cv_prog_ITSTOOL if test -n "$ITSTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ITSTOOL" >&5 $as_echo "$ITSTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test x"$ITSTOOL" = x; then as_fn_error $? "itstool not found" "$LINENO" 5 fi # Extract the first word of "xmllint", so it can be a program name with args. set dummy xmllint; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_XMLLINT+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$XMLLINT"; then ac_cv_prog_XMLLINT="$XMLLINT" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_XMLLINT="xmllint" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi XMLLINT=$ac_cv_prog_XMLLINT if test -n "$XMLLINT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XMLLINT" >&5 $as_echo "$XMLLINT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test x"$XMLLINT" = x; then as_fn_error $? "xmllint not found" "$LINENO" 5 fi YELP_HELP_RULES=' HELP_ID ?= HELP_POT ?= HELP_FILES ?= HELP_EXTRA ?= HELP_MEDIA ?= HELP_LINGUAS ?= _HELP_LINGUAS = $(if $(filter environment,$(origin LINGUAS)),$(filter $(LINGUAS),$(HELP_LINGUAS)),$(HELP_LINGUAS)) _HELP_POTFILE = $(if $(HELP_POT),$(HELP_POT),$(if $(HELP_ID),$(HELP_ID).pot)) _HELP_POFILES = $(if $(HELP_ID),$(foreach lc,$(_HELP_LINGUAS),$(lc)/$(lc).po)) _HELP_MOFILES = $(patsubst %.po,%.mo,$(_HELP_POFILES)) _HELP_C_FILES = $(foreach f,$(HELP_FILES),C/$(f)) _HELP_C_EXTRA = $(foreach f,$(HELP_EXTRA),C/$(f)) _HELP_C_MEDIA = $(foreach f,$(HELP_MEDIA),C/$(f)) _HELP_LC_FILES = $(foreach lc,$(_HELP_LINGUAS),$(foreach f,$(HELP_FILES),$(lc)/$(f))) _HELP_LC_STAMPS = $(foreach lc,$(_HELP_LINGUAS),$(lc)/$(lc).stamp) _HELP_DEFAULT_V = $(if $(AM_DEFAULT_VERBOSITY),$(AM_DEFAULT_VERBOSITY),1) _HELP_V = $(if $(V),$(V),$(_HELP_DEFAULT_V)) _HELP_LC_VERBOSE = $(_HELP_LC_VERBOSE_$(_HELP_V)) _HELP_LC_VERBOSE_ = $(_HELP_LC_VERBOSE_$(_HELP_DEFAULT_V)) _HELP_LC_VERBOSE_0 = @echo " GEN "$(dir $@); all: $(_HELP_C_FILES) $(_HELP_C_EXTRA) $(_HELP_C_MEDIA) $(_HELP_LC_FILES) $(_HELP_POFILES) .PHONY: pot pot: $(_HELP_POTFILE) $(_HELP_POTFILE): $(_HELP_C_FILES) $(_HELP_C_EXTRA) $(_HELP_C_MEDIA) $(AM_V_GEN)$(ITSTOOL) -o "$@" $(_HELP_C_FILES) .PHONY: repo repo: $(_HELP_POTFILE) $(AM_V_at)for po in $(_HELP_POFILES); do \ if test "x$(_HELP_V)" = "x0"; then echo " GEN $${po}"; fi; \ msgmerge -q -o "$${po}" "$${po}" "$(_HELP_POTFILE)"; \ done $(_HELP_POFILES): $(AM_V_at)if ! test -d "$(dir $@)"; then mkdir "$(dir $@)"; fi $(AM_V_at)if test ! -f "$@" -a -f "$(srcdir)/$@"; then cp "$(srcdir)/$@" "$@"; fi $(AM_V_GEN)if ! test -f "$@"; then \ (cd "$(dir $@)" && \ $(ITSTOOL) -o "$(notdir $@).tmp" $(_HELP_C_FILES) && \ mv "$(notdir $@).tmp" "$(notdir $@)"); \ else \ (cd "$(dir $@)" && \ $(ITSTOOL) -o "$(notdir $@).tmp" $(_HELP_C_FILES) && \ msgmerge -o "$(notdir $@)" "$(notdir $@)" "$(notdir $@).tmp" && \ rm "$(notdir $@).tmp"); \ fi $(_HELP_MOFILES): %.mo: %.po $(AM_V_at)if ! test -d "$(dir $@)"; then mkdir "$(dir $@)"; fi $(AM_V_GEN)msgfmt -o "$@" "$<" $(_HELP_LC_FILES): $(_HELP_LINGUAS) $(_HELP_LINGUAS): $(_HELP_LC_STAMPS) $(_HELP_LC_STAMPS): %.stamp: %.mo $(_HELP_LC_STAMPS): $(_HELP_C_FILES) $(_HELP_C_EXTRA) $(AM_V_at)if ! test -d "$(dir $@)"; then mkdir "$(dir $@)"; fi $(_HELP_LC_VERBOSE)if test -d "C"; then d="../"; else d="$(abs_srcdir)/"; fi; \ mo="$(dir $@)$(patsubst %/$(notdir $@),%,$@).mo"; \ if test -f "$${mo}"; then mo="../$${mo}"; else mo="$(abs_srcdir)/$${mo}"; fi; \ (cd "$(dir $@)" && $(ITSTOOL) -m "$${mo}" $(foreach f,$(_HELP_C_FILES),$${d}/$(f))) && \ touch "$@" .PHONY: clean-help mostlyclean-am: $(if $(HELP_ID),clean-help) clean-help: rm -f $(_HELP_LC_FILES) $(_HELP_LC_STAMPS) $(_HELP_MOFILES) EXTRA_DIST ?= EXTRA_DIST += $(_HELP_C_EXTRA) $(_HELP_C_MEDIA) EXTRA_DIST += $(foreach lc,$(HELP_LINGUAS),$(lc)/$(lc).stamp) EXTRA_DIST += $(foreach lc,$(HELP_LINGUAS),$(lc)/$(lc).po) EXTRA_DIST += $(foreach f,$(HELP_MEDIA),$(foreach lc,$(HELP_LINGUAS),$(wildcard $(lc)/$(f)))) distdir: distdir-help-files distdir-help-files: @for lc in C $(HELP_LINGUAS); do \ $(MKDIR_P) "$(distdir)/$$lc"; \ for file in $(HELP_FILES); do \ if test -f "$$lc/$$file"; then d=./; else d=$(srcdir)/; fi; \ cp -p "$$d$$lc/$$file" "$(distdir)/$$lc/" || exit 1; \ done; \ done; \ .PHONY: check-help check: check-help check-help: for lc in C $(_HELP_LINGUAS); do \ if test -d "$$lc"; \ then d=; \ xmlpath="$$lc"; \ else \ d="$(srcdir)/"; \ xmlpath="$$lc:$(srcdir)/$$lc"; \ fi; \ for page in $(HELP_FILES); do \ echo "$(XMLLINT) --noout --noent --path $$xmlpath --xinclude $$d$$lc/$$page"; \ $(XMLLINT) --noout --noent --path "$$xmlpath" --xinclude "$$d$$lc/$$page"; \ done; \ done .PHONY: install-help install-data-am: $(if $(HELP_ID),install-help) install-help: @for lc in C $(_HELP_LINGUAS); do \ $(mkinstalldirs) "$(DESTDIR)$(HELP_DIR)/$$lc/$(HELP_ID)" || exit 1; \ done @for lc in C $(_HELP_LINGUAS); do for f in $(HELP_FILES); do \ if test -f "$$lc/$$f"; then d=; else d="$(srcdir)/"; fi; \ helpdir="$(DESTDIR)$(HELP_DIR)/$$lc/$(HELP_ID)/"; \ if ! test -d "$$helpdir"; then $(mkinstalldirs) "$$helpdir"; fi; \ echo "$(INSTALL_DATA) $$d$$lc/$$f $$helpdir`basename $$f`"; \ $(INSTALL_DATA) "$$d$$lc/$$f" "$$helpdir`basename $$f`" || exit 1; \ done; done @for f in $(_HELP_C_EXTRA); do \ lc=`dirname "$$f"`; lc=`basename "$$lc"`; \ if test -f "$$f"; then d=; else d="$(srcdir)/"; fi; \ helpdir="$(DESTDIR)$(HELP_DIR)/$$lc/$(HELP_ID)/"; \ if ! test -d "$$helpdir"; then $(mkinstalldirs) "$$helpdir"; fi; \ echo "$(INSTALL_DATA) $$d$$f $$helpdir`basename $$f`"; \ $(INSTALL_DATA) "$$d$$f" "$$helpdir`basename $$f`" || exit 1; \ done @for f in $(HELP_MEDIA); do \ for lc in C $(_HELP_LINGUAS); do \ if test -f "$$lc$$f"; then d=; else d="$(srcdir)/"; fi; \ helpdir="$(DESTDIR)$(HELP_DIR)/$$lc/$(HELP_ID)/"; \ mdir=`dirname "$$f"`; \ if test "x$mdir" = "x."; then mdir=""; fi; \ if ! test -d "$$helpdir$$mdir"; then $(mkinstalldirs) "$$helpdir$$mdir"; fi; \ if test -f "$$d$$lc/$$f"; then \ echo "$(INSTALL_DATA) $$d$$lc/$$f $$helpdir$$f"; \ $(INSTALL_DATA) "$$d$$lc/$$f" "$$helpdir$$f" || exit 1; \ elif test "x$$lc" != "xC"; then \ echo "$(LN_S) -f $(HELP_DIR)/C/$(HELP_ID)/$$f $$helpdir$$f"; \ $(LN_S) -f "$(HELP_DIR)/C/$(HELP_ID)/$$f" "$$helpdir$$f" || exit 1; \ fi; \ done; \ done .PHONY: uninstall-help uninstall-am: $(if $(HELP_ID),uninstall-help) uninstall-help: for lc in C $(_HELP_LINGUAS); do for f in $(HELP_FILES); do \ helpdir="$(DESTDIR)$(HELP_DIR)/$$lc/$(HELP_ID)/"; \ echo "rm -f $$helpdir`basename $$f`"; \ rm -f "$$helpdir`basename $$f`"; \ done; done @for f in $(_HELP_C_EXTRA); do \ lc=`dirname "$$f"`; lc=`basename "$$lc"`; \ helpdir="$(DESTDIR)$(HELP_DIR)/$$lc/$(HELP_ID)/"; \ echo "rm -f $$helpdir`basename $$f`"; \ rm -f "$$helpdir`basename $$f`"; \ done @for f in $(HELP_MEDIA); do \ for lc in C $(_HELP_LINGUAS); do \ helpdir="$(DESTDIR)$(HELP_DIR)/$$lc/$(HELP_ID)/"; \ echo "rm -f $$helpdir$$f"; \ rm -f "$$helpdir$$f"; \ done; \ done; ' ac_config_files="$ac_config_files Makefile bin/Makefile bin/glogic glogic/Makefile glogic/config.py glogic/Components/Makefile help/Makefile po/Makefile.in data/Makefile data/icons/Makefile data/icons/scalable/Makefile data/images/Makefile data/images/components/Makefile examples/Makefile" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, we kill variables containing newlines. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. ( for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}ac_space=\ *) # `set' does not quote correctly, so add quotes: double-quote # substitution turns \\\\ into \\, and sed turns \\ into \. sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; #( *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) | sed ' /^ac_cv_env_/b end t clear :clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then if test "x$cache_file" != "x/dev/null"; then { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;} if test ! -f "$cache_file" || test -h "$cache_file"; then cat confcache >"$cache_file" else case $cache_file in #( */* | ?:*) mv -f confcache "$cache_file"$$ && mv -f "$cache_file"$$ "$cache_file" ;; #( *) mv -f confcache "$cache_file" ;; esac fi fi else { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' # Transform confdefs.h into DEFS. # Protect against shell expansion while executing Makefile rules. # Protect against Makefile macro expansion. # # If the first sed substitution is executed (which looks for macros that # take arguments), then branch to the quote section. Otherwise, # look for a macro that doesn't take arguments. ac_script=' :mline /\\$/{ N s,\\\n,, b mline } t clear :clear s/^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\)/-D\1=\2/g t quote s/^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)/-D\1=\2/g t quote b any :quote s/[ `~#$^&*(){}\\|;'\''"<>?]/\\&/g s/\[/\\&/g s/\]/\\&/g s/\$/$$/g H :any ${ g s/^\n// s/\n/ /g p } ' DEFS=`sed -n "$ac_script" confdefs.h` ac_libobjs= ac_ltlibobjs= U= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' ac_i=`$as_echo "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs if test -n "$EXEEXT"; then am__EXEEXT_TRUE= am__EXEEXT_FALSE='#' else am__EXEEXT_TRUE='#' am__EXEEXT_FALSE= fi if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then as_fn_error $? "conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then as_fn_error $? "conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi ac_config_commands="$ac_config_commands po/stamp-it" if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then as_fn_error $? "conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -n "$EXEEXT"; then am__EXEEXT_TRUE= am__EXEEXT_FALSE='#' else am__EXEEXT_TRUE='#' am__EXEEXT_FALSE= fi : "${CONFIG_STATUS=./config.status}" ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 $as_echo "$as_me: creating $CONFIG_STATUS" >&6;} as_write_fail=0 cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} export SHELL _ASEOF cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi # as_fn_executable_p FILE # ----------------------- # Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } # as_fn_executable_p as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 6>&1 ## ----------------------------------- ## ## Main body of $CONFIG_STATUS script. ## ## ----------------------------------- ## _ASEOF test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Save the log message, to keep $0 and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" This file was extended by glogic $as_me 2.6, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ on `(hostname || uname -n) 2>/dev/null | sed 1q` " _ACEOF case $ac_config_files in *" "*) set x $ac_config_files; shift; ac_config_files=$*;; esac cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # Files that config.status was made for. config_files="$ac_config_files" config_commands="$ac_config_commands" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ac_cs_usage="\ \`$as_me' instantiates files and other configuration actions from templates according to the current configuration. Unless the files and actions are specified as TAGs, all are instantiated by default. Usage: $0 [OPTION]... [TAG]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit --config print configuration, then exit -q, --quiet, --silent do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE Configuration files: $config_files Configuration commands: $config_commands Report bugs to the package provider." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ glogic config.status 2.6 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" Copyright (C) 2012 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." ac_pwd='$ac_pwd' srcdir='$srcdir' INSTALL='$INSTALL' MKDIR_P='$MKDIR_P' AWK='$AWK' test -n "\$AWK" || AWK=awk _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # The default lists apply if the user does not specify any file. ac_need_defaults=: while test $# != 0 do case $1 in --*=?*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; --*=) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg= ac_shift=: ;; *) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; esac case $ac_option in # Handling of the options. -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) $as_echo "$ac_cs_version"; exit ;; --config | --confi | --conf | --con | --co | --c ) $as_echo "$ac_cs_config"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; '') as_fn_error $? "missing file argument" ;; esac as_fn_append CONFIG_FILES " '$ac_optarg'" ac_need_defaults=false;; --he | --h | --help | --hel | -h ) $as_echo "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) as_fn_error $? "unrecognized option: \`$1' Try \`$0 --help' for more information." ;; *) as_fn_append ac_config_targets " $1" ac_need_defaults=false ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' export CONFIG_SHELL exec "\$@" fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX $as_echo "$ac_log" } >&5 _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # # INIT-COMMANDS # AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Handling of arguments. for ac_config_target in $ac_config_targets do case $ac_config_target in "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; "default-1") CONFIG_COMMANDS="$CONFIG_COMMANDS default-1" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "bin/Makefile") CONFIG_FILES="$CONFIG_FILES bin/Makefile" ;; "bin/glogic") CONFIG_FILES="$CONFIG_FILES bin/glogic" ;; "glogic/Makefile") CONFIG_FILES="$CONFIG_FILES glogic/Makefile" ;; "glogic/config.py") CONFIG_FILES="$CONFIG_FILES glogic/config.py" ;; "glogic/Components/Makefile") CONFIG_FILES="$CONFIG_FILES glogic/Components/Makefile" ;; "help/Makefile") CONFIG_FILES="$CONFIG_FILES help/Makefile" ;; "po/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;; "data/Makefile") CONFIG_FILES="$CONFIG_FILES data/Makefile" ;; "data/icons/Makefile") CONFIG_FILES="$CONFIG_FILES data/icons/Makefile" ;; "data/icons/scalable/Makefile") CONFIG_FILES="$CONFIG_FILES data/icons/scalable/Makefile" ;; "data/images/Makefile") CONFIG_FILES="$CONFIG_FILES data/images/Makefile" ;; "data/images/components/Makefile") CONFIG_FILES="$CONFIG_FILES data/images/components/Makefile" ;; "examples/Makefile") CONFIG_FILES="$CONFIG_FILES examples/Makefile" ;; "po/stamp-it") CONFIG_COMMANDS="$CONFIG_COMMANDS po/stamp-it" ;; *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason against having it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Hook for its removal unless debugging. # Note that there is a small window in which the directory will not be cleaned: # after its creation but before its name has been assigned to `$tmp'. $debug || { tmp= ac_tmp= trap 'exit_status=$? : "${ac_tmp:=$tmp}" { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status ' 0 trap 'as_fn_exit 1' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 ac_tmp=$tmp # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. # This happens for instance with `./config.status config.h'. if test -n "$CONFIG_FILES"; then ac_cr=`echo X | tr X '\015'` # On cygwin, bash can eat \r inside `` if the user requested igncr. # But we know of no other shell where ac_cr would be empty at this # point, so we can use a bashism as a fallback. if test "x$ac_cr" = x; then eval ac_cr=\$\'\\r\' fi ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then ac_cs_awk_cr='\\r' else ac_cs_awk_cr=$ac_cr fi echo 'BEGIN {' >"$ac_tmp/subs1.awk" && _ACEOF { echo "cat >conf$$subs.awk <<_ACEOF" && echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && echo "_ACEOF" } >conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` ac_delim='%!_!# ' for ac_last_try in false false false false false :; do . ./conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` if test $ac_delim_n = $ac_delim_num; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done rm -f conf$$subs.sh cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' h s/^/S["/; s/!.*/"]=/ p g s/^[^!]*!// :repl t repl s/'"$ac_delim"'$// t delim :nl h s/\(.\{148\}\)..*/\1/ t more1 s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ p n b repl :more1 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t nl :delim h s/\(.\{148\}\)..*/\1/ t more2 s/["\\]/\\&/g; s/^/"/; s/$/"/ p b :more2 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t delim ' >$CONFIG_STATUS || ac_write_fail=1 rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" } { line = $ 0 nfields = split(line, field, "@") substed = 0 len = length(field[1]) for (i = 2; i < nfields; i++) { key = field[i] keylen = length(key) if (S_is_set[key]) { value = S[key] line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) len += length(value) + length(field[++i]) substed = 1 } else len += 1 + keylen } print line } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" else cat fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 _ACEOF # VPATH may cause trouble with some makes, so we remove sole $(srcdir), # ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ h s/// s/^/:/ s/[ ]*$/:/ s/:\$(srcdir):/:/g s/:\${srcdir}:/:/g s/:@srcdir@:/:/g s/^:*// s/:*$// x s/\(=[ ]*\).*/\1/ G s/\n// s/^[^=]*=[ ]*$// }' fi cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 fi # test -n "$CONFIG_FILES" eval set X " :F $CONFIG_FILES :C $CONFIG_COMMANDS" shift for ac_tag do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac ac_save_IFS=$IFS IFS=: set x $ac_tag IFS=$ac_save_IFS shift ac_file=$1 shift case $ac_mode in :L) ac_source=$1;; :[FH]) ac_file_inputs= for ac_f do case $ac_f in -) ac_f="$ac_tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. test -f "$ac_f" || case $ac_f in [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; esac case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac as_fn_append ac_file_inputs " '$ac_f'" done # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ configure_input='Generated from '` $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' `' by configure.' if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 $as_echo "$as_me: creating $ac_file" >&6;} fi # Neutralize special characters interpreted by sed in replacement strings. case $configure_input in #( *\&* | *\|* | *\\* ) ac_sed_conf_input=`$as_echo "$configure_input" | sed 's/[\\\\&|]/\\\\&/g'`;; #( *) ac_sed_conf_input=$configure_input;; esac case $ac_tag in *:-:* | *:-) cat >"$ac_tmp/stdin" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac ;; esac ac_dir=`$as_dirname -- "$ac_file" || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir="$ac_dir"; as_fn_mkdir_p ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix case $ac_mode in :F) # # CONFIG_FILE # case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; esac ac_MKDIR_P=$MKDIR_P case $MKDIR_P in [\\/$]* | ?:[\\/]* ) ;; */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; esac _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # If the template does not know about datarootdir, expand it. # FIXME: This hack should be removed a few years after 2.60. ac_datarootdir_hack=; ac_datarootdir_seen= ac_sed_dataroot=' /datarootdir/ { p q } /@datadir@/p /@docdir@/p /@infodir@/p /@localedir@/p /@mandir@/p' case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 $as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_datarootdir_hack=' s&@datadir@&$datadir&g s&@docdir@&$docdir&g s&@infodir@&$infodir&g s&@localedir@&$localedir&g s&@mandir@&$mandir&g s&\\\${datarootdir}&$datarootdir&g' ;; esac _ACEOF # Neutralize VPATH when `$srcdir' = `.'. # Shell code in configure.ac might set extrasub. # FIXME: do we really want to maintain this feature? cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_sed_extra="$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s|@configure_input@|$ac_sed_conf_input|;t t s&@top_builddir@&$ac_top_builddir_sub&;t t s&@top_build_prefix@&$ac_top_build_prefix&;t t s&@srcdir@&$ac_srcdir&;t t s&@abs_srcdir@&$ac_abs_srcdir&;t t s&@top_srcdir@&$ac_top_srcdir&;t t s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t s&@builddir@&$ac_builddir&;t t s&@abs_builddir@&$ac_abs_builddir&;t t s&@abs_top_builddir@&$ac_abs_top_builddir&;t t s&@INSTALL@&$ac_INSTALL&;t t s&@MKDIR_P@&$ac_MKDIR_P&;t t $ac_datarootdir_hack " eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ "$ac_tmp/out"`; test -z "$ac_out"; } && { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&5 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&2;} rm -f "$ac_tmp/stdin" case $ac_file in -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; esac \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 $as_echo "$as_me: executing $ac_file commands" >&6;} ;; esac case $ac_file$ac_mode in "depfiles":C) test x"$AMDEP_TRUE" != x"" || { # Autoconf 2.62 quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. case $CONFIG_FILES in *\'*) eval set x "$CONFIG_FILES" ;; *) set x $CONFIG_FILES ;; esac shift for mf do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named `Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # Grep'ing the whole file is not good either: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then dirpart=`$as_dirname -- "$mf" || $as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$mf" : 'X\(//\)[^/]' \| \ X"$mf" : 'X\(//\)$' \| \ X"$mf" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$mf" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running `make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # When using ansi2knr, U may be empty or an underscore; expand it U=`sed -n 's/^U = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`$as_dirname -- "$file" || $as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$file" : 'X\(//\)[^/]' \| \ X"$file" : 'X\(//\)$' \| \ X"$file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir=$dirpart/$fdir; as_fn_mkdir_p # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done } ;; "default-1":C) case "$CONFIG_FILES" in *po/Makefile.in*) sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile esac ;; "po/stamp-it":C) if ! grep "^# INTLTOOL_MAKEFILE$" "po/Makefile.in" > /dev/null ; then as_fn_error $? "po/Makefile.in.in was not created by intltoolize." "$LINENO" 5 fi rm -f "po/stamp-it" "po/stamp-it.tmp" "po/POTFILES" "po/Makefile.tmp" >"po/stamp-it.tmp" sed '/^#/d s/^[[].*] *// /^[ ]*$/d '"s|^| $ac_top_srcdir/|" \ "$srcdir/po/POTFILES.in" | sed '$!s/$/ \\/' >"po/POTFILES" sed '/^POTFILES =/,/[^\\]$/ { /^POTFILES =/!d r po/POTFILES } ' "po/Makefile.in" >"po/Makefile" rm -f "po/Makefile.tmp" mv "po/stamp-it.tmp" "po/stamp-it" ;; esac done # for ac_tag as_fn_exit 0 _ACEOF ac_clean_files=$ac_clean_files_save test $ac_write_fail = 0 || as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || as_fn_exit 1 fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi glogic-2.6/data/0000775000175000017500000000000012044454515010545 500000000000000glogic-2.6/data/glogic.desktop.in0000644000175000017500000000026212031005333013711 00000000000000[Desktop Entry] _Name=gLogic _Comment=Logic circuit simulator Exec=glogic Terminal=false Type=Application Icon=glogic Categories=Education;Science;Electronics StartupNotify=true glogic-2.6/data/images/0000775000175000017500000000000012044454515012012 500000000000000glogic-2.6/data/images/glogic-small.ico0000644000175000017500000000257612031005333014772 00000000000000h( ^  ^"""((()))+++...111BBBKKKUUUVVVZZZ\\\]]]eeesssyyy6666666666666666) &56666666/*'"#666666.-66666%0666 666666116666$666666646666,666666662!6662666666666%66,666666662!666$666666646666666611666.-66666%06666+)'""66666( &366666666666666666666666666666666666666glogic-2.6/data/images/components/0000775000175000017500000000000012044454515014177 500000000000000glogic-2.6/data/images/components/counter.png0000644000175000017500000000070212031005333016263 00000000000000PNG  IHDRw=sRGBbKGD pHYs B(xtIME '-BIDATHUͪ@=^CBK+tN!r{E˖=M@WA1 }]Tțt`3w?~Gu ُCQc_Hd g=aExi<B =zxL)e dUU1".KNC!Wu]d2aeS.0Du DN(a/Q6 mfڠinKԉm\.\Z&yò,v,X,S<4ٌivR?HTy\}0z_@ؗ<c3IENDB`glogic-2.6/data/images/components/or.png0000644000175000017500000000065712031005333015235 00000000000000PNG  IHDRw=gAMA a pHYs B(xtIME !2/>IDATH픿JPƿ{$c}<[<[W!cB]fD83ԡ$$!%WjZ`~p3ZZv],󕪪(+{eUUxP7Vun0(0 }eYavqviZ1#vic'ۊѺu< yNa<8nҶ%@]8NaCNʲ^ !*p(JM 49 E{o>fHd5bL/:gRBJYrKXlې3uQIENDB`glogic-2.6/data/images/components/rsff.png0000644000175000017500000000076612031005333015556 00000000000000PNG  IHDRw=gAMA a pHYs B(xtIMESIDATHՕ@O I 6> V*b9 6M:D,RlKYH.L3gߌ\8C)f$ uu3. \E>GEZVD߭V v<ضnjr z?_`؁x\.SE3BJI ɄBV+Q , MUˑ:0^7Zh cT*dY4MN->*F:2G1N łPábӶmvrN x8,TZہ7ݎB%`$}H)Qհlph4K|>gXd:fT`0N2?_3͝c IENDB`glogic-2.6/data/images/components/osc.png0000644000175000017500000000045412031005333015374 00000000000000PNG  IHDRw=gAMA a pHYs B(xtIME$*IDATH1 0FС[}z@N#wP BSBT]_y$vv$58yM0,.I,8Ԝ$۶eeOY%9DT"q2=xDQtUU17vYk4 4A( F/RJME;FoIENDB`glogic-2.6/data/images/components/led.png0000644000175000017500000000100312031005333015343 00000000000000PNG  IHDRw=gAMA a pHYs B(xtIME'0BIDATH?k`ƟyI0w!tːSgp(nR)%&?D$k] uApA[bS/.r{7n\:'h9T*(aHmcO{>z[-}\%UUIEJ&THO:DNR\y<ib6a:X,BedYyQQWa Jmg24MV+Q4M1Q4cu}ǑH$0 P(0 Z0 %8\n#pòxhdrWn4M[. 7 Z-N,]Yw8Ӧ$IɲLei_ <\eJ2mr?$[FlyIENDB`glogic-2.6/data/images/components/text.png0000644000175000017500000000064612031005333015577 00000000000000PNG  IHDRw=gAMA a pHYs B(xtIME-5IDATHԿ+FQϋ$B*LdzLR2",(A  ~ &!k9t}SoJ:u:=sy(h~/ax@C'T0MKEvcҫ J41̅)le\&pΞњ'F V b:M1 4E6,c6y^p_1WxD_aiլuGя26k(Gˬ >R 4HZ8w;9;!ʋiqPF>dhcWO$XGRxzO[4 IENDB`glogic-2.6/data/images/components/tff.png0000644000175000017500000000053612031005333015370 00000000000000PNG  IHDRw=gAMA a pHYs B(xtIME ",n=AyIDATHU 0|GHL@DEi`wTn`6`V`pGIW$Q $_Dg۬a:8[b;E KqaMQ4/[q,0MZC)98PJAk=|+u,˂,!_]B@O\nT5EQDi8˔=Ly0 uygVIԶ-A`^UUQQl2n75uSGqHEIENDB`glogic-2.6/data/images/components/adder.png0000644000175000017500000000032212033572266015701 00000000000000PNG  IHDRw=bKGD pHYs B(xtIME ,AII_IDATHc`沠Onfu } XHXXO-`e*q@t%/N.#!ԌF /(WC0bBIENDB`glogic-2.6/data/images/components/sipo.png0000644000175000017500000000075612033742155015603 00000000000000PNG  IHDRw=bKGD pHYs B(xtIME ":,{IDATHՕ=P "H,E\@@-x.ʟ- w!V.!Kh!"g$3hú;qsW|>j8vA]%VEVZ(HʷDlAp>_&B PTROeIa: PV{DFay)&eyG: ǙoFܺ :HzA$b1f=Nuiv4jz cp8d"@~*9r\.8Nl+t8R=l6Fl*@m?. ϫlj\>izba(c 1nMR^*?o%ZAkIENDB`glogic-2.6/data/images/components/siso.png0000644000175000017500000000071212033315373015574 00000000000000PNG  IHDRw=bKGD pHYs B(xtIME ' WIDATHՕ1@EO>AB A0`%n \X]+H-."(\JM4^xޛw^ZE-=fzX.K.Ju wE" l zV~)M{>A0 9oѦۈZtV) <F2E1fZb)L&DQ1eJi@xMd>8$jJxyT(4N/eYt>Ȳ" CT*/U^G xpFx @7*+u]M& |W6l6;G/OGx/IENDB`glogic-2.6/data/images/components/nand.png0000644000175000017500000000054612031005333015532 00000000000000PNG  IHDRw=gAMA a pHYs B(xtIME !p@IDATHԱn0?a^G>ςĆy;7@lTFǗDiRUt/΁cl9Bu>9jrQ !|g4MJˣZSZxp3 >uMBg)Rڶ%)&s,ˬRqqATwI( ҟ]bLՙ9]4uqnrvs8|;c7#>gI xikEQBb>zim?+V9n:9C8j5d273ڪvFe}fYJ޶0K҈<1iiE9HRk|ǔL&o/LiZ^}ۣ\.7wwwP(ᎏIӴ/CЍ@*qΧeQRٶM`.$ !Ioa>.:s8Y!\:D"0pzz EQ`vnoqEh4HQd+f2Ch!pѨtBST*Vr< vUnL؇t:}}\R@ p2+׫^7,o!LӔwyyYw7e'o[D`hIENDB`glogic-2.6/data/images/components/and.png0000644000175000017500000000047512031005333015355 00000000000000PNG  IHDRw=gAMA a pHYs B(xtIME ;AIDATH1 @E!F)R S--sS nرQPH4P`FF}CD!c.,(l'! ԙ=Zk84 'IrpFYEѦb#41f֖d2GVfs&F1fGWFT(ia2J)3HD)NCbq"܋xV0Dݎ9{~Or6N_X|ߟ8#-`jɢ(^cT*  \.w9?PZj5t^dcl@Õ>ǤDbIENDB`glogic-2.6/data/images/components/dff.png0000644000175000017500000000066112031005333015347 00000000000000PNG  IHDRw=gAMA a pHYs B(xtIME 9i,@IDATHՕ=@ψ!h(؆{M`mh) LH,k&L)&g3soG4l;nB!3N [,M~+.n8~ pq?"@< zX,8}v;N'aMG),E$(k eY( XlۦyRLfCu9y<yn$ |>GMӠ*VGqg|x3=_/Xⵈ0MҲ,kjfbT7$I΁ ]Tl>*nn4Z&lv?N38`0ЏryM`㹢PJZT*W".~B0O.y[L&DZ߀`0T8ќv/`[w`!Z*RL&t:Zִ^p4梿h)l۶#۶c˲b!Dw]ې覉KIENDB`glogic-2.6/data/images/components/Makefile.am0000644000175000017500000000061112033742155016145 00000000000000component_icondir = $(pkgdatadir)/images/components component_icon_DATA = \ 7seg.png \ adder.png \ and.png \ counter.png \ dff.png \ gnd.png \ jkff.png \ led.png \ nand.png \ nor.png \ not.png \ or.png \ osc.png \ probe.png \ rsff.png \ siso.png \ sipo.png \ piso.png \ pipo.png \ sw.png \ text.png \ tff.png \ vdd.png \ xor.png EXTRA_DIST = \ $(component_icon_DATA) glogic-2.6/data/images/components/gnd.png0000644000175000017500000000030512031005333015353 00000000000000PNG  IHDRw=gAMA a pHYs B(xtIME 6DTIDATHc`'E1]3jZ@ f ORiFA A Qz)6$&qRQOIENDB`glogic-2.6/data/images/components/Makefile.in0000644000175000017500000003234512044406014016160 00000000000000# Makefile.in generated by automake 1.11.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : subdir = data/images/components DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/as-ac-expand.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(component_icondir)" DATA = $(component_icon_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BZRREV = @BZRREV@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIR = @DATADIR@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ HELP_DIR = @HELP_DIR@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ ITSTOOL = @ITSTOOL@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_VERSION = @PYTHON_VERSION@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XMLLINT = @XMLLINT@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ intltool__v_merge_options_ = @intltool__v_merge_options_@ intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ component_icondir = $(pkgdatadir)/images/components component_icon_DATA = \ 7seg.png \ adder.png \ and.png \ counter.png \ dff.png \ gnd.png \ jkff.png \ led.png \ nand.png \ nor.png \ not.png \ or.png \ osc.png \ probe.png \ rsff.png \ siso.png \ sipo.png \ piso.png \ pipo.png \ sw.png \ text.png \ tff.png \ vdd.png \ xor.png EXTRA_DIST = \ $(component_icon_DATA) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu data/images/components/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu data/images/components/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-component_iconDATA: $(component_icon_DATA) @$(NORMAL_INSTALL) @list='$(component_icon_DATA)'; test -n "$(component_icondir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(component_icondir)'"; \ $(MKDIR_P) "$(DESTDIR)$(component_icondir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(component_icondir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(component_icondir)" || exit $$?; \ done uninstall-component_iconDATA: @$(NORMAL_UNINSTALL) @list='$(component_icon_DATA)'; test -n "$(component_icondir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(component_icondir)'; $(am__uninstall_files_from_dir) tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(component_icondir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-component_iconDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-component_iconDATA .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic distclean \ distclean-generic distdir dvi dvi-am html html-am info info-am \ install install-am install-component_iconDATA install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am uninstall uninstall-am \ uninstall-component_iconDATA # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: glogic-2.6/data/images/components/sw.png0000644000175000017500000000122412031005333015235 00000000000000PNG  IHDRw=gAMA a pHYs B(xtIMEՂL#IDATHT?Ha}9y`HA pTp,ɒGd $d Unq79sAB.qIjICr#IPx<1 xGS ,iw(~'4iuudY&]u]ؠ goo8I Iruu\.5d2p89q///ZR6kUhZ-x]hnnn)f볳 t]G,C*z@$0ƐNd /ǡP(H'lJ ¶mJ%b}}eDNn IҔy0 6eqq|ea8h@Qm UUq~~YƎtG&[0prr#MӰ۶M}D"bq{kfIx(HP\&"zN5TՈh<WA?GT*#Y?{1]?ZYL}Otg]M˲aK'ٶ8YUզ 1Nش2Stд-h =D+__Rx<)O`ە\08 PJ$]30!2v#^.E&ж-Rt]J)v]7da`GۓxݙTIENDB`glogic-2.6/data/images/add-net.png0000644000175000017500000000055312031005333013737 00000000000000PNG  IHDRw=sRGBbKGD pHYs B(xtIME&(5IDATHU 0xnRyPQD H7?yXll␘4Kcvw@kF9{*͠I2=g` D ]A)c,}c&\QRжm)]BBaM=fQA!KɍI`7M|{pʋ4w^dn.7T^$ܖ6]٪k9}2Y=*tbǗ}Hdbk'}ÅlIENDB`glogic-2.6/data/images/glogic.png0000644000175000017500000000750712031005333013675 00000000000000PNG  IHDR``w8sBIT|d pHYs^tEXtSoftwarewww.inkscape.org<IDATx}Lמ?@qZB^Z른ۦFMudcvKMvmd6KSG[mom-bhJ^|iP\-(r+933 ü gx<9ߙs" ~K,!4N컂J(:S!Z%cTD`搡T-n P|$—,1`WZQvѩD&!\/CYe[bQ|߉HJbdff/5 1 z"N?,ːd .\c:f$HкP\u@L\\=Nx`ל9s~҆nܸ?G- 0#LL *[$+^gϞǑKbN}xxvce$ Oo6r4Vȑ#_%@;bdwvv…jjj~ ,Uc׭)R}ܒ%K^<޵0[+**d`>00 )^Htcٳ$++!QXX5k,C boN$D!d }}}͛'/AӡZQhjj n itdlBG嗿T}v"::@\\tj^zeAAo?QsyXDwAOO|ܹ#I(FxECCD5ۀG Puʚ֭K﨨8oXf֭pyl6&aǵgȵkלOMM_gΝzo^[x;n~z>`Eȓ4"  ̙3#<";nggK/$V\h .f!/V k#,|r/$6l &._<h;{@ 4(îX@'"X-6= M366Fmmϵ'66'Ns5֯_}N/r$砕MPfJ^⡇R:Z֮]˕+Wxda8A5t*etҔӊ$ؿ 0&+M:%#9RSS7ޠ/)aP #//;v066?^͈X`e;/ĉTVVO4 ]h6i%`~I;v[o9FY3!ϧ'|W^yeiybŊ)c2ؼy3Ν#==?xq!Q@/pa; 0wߑӧY`L0@jj*999i&/+XgȽˍ };9//gJ{{HJJ?0^D܉^F+O/p(Xd%; UbB9۸q ;$ $2~$@>QQQ!ϟ/ .\&;$ $BHna4 E[[$ٙ;:BVe!a9 !WOC Ԁje˖-˱cjv>tttN~~OiLG#Nޯr_ B ddd Ka )|) B%Bx]b&k\r$FCj 8dcz"Nю ,rqգKʏزe tttP]]ͽKii#ݻ|~*?1iiN ˢā4l+B8}XVikkbV+/2}s=" #<:'.++wE صk{O X `&#,t|/hTLOaDDD8~-~t:wZ}EX G֭[G}}=eee9(//p.y8؈h$%%F#s8x: Џ(jjm f-d2w^^}U~Є\Ϙq"Bd---?fgg{2H׳i& ٶm۔ 6zV+hg $Z7u:#SbxxغhѢHN-o"n,jdmmmlooӊ+Q|.ѣG+YY@:/@y {9L|p\ ҥKewg=q6l)@M;5gdAb /att5-EEEMHدÌ/faD7|UUUaػw^rEH$ Mc]NGVWW9''G*pE_۷Ҟ={ZΌdrzی wLؾt1a m6- XVQRRZRR҄^ #T|!jW?|{Ν5oׯPႫW ߷o_ RE0OiJHx(iȔ^{ooDVV֢14Ç_lHI鑏B4UH%ۺuG}4cѢEIiiisSSS.\ CCCnSWWksSzj0H/H5*~8&EznGA"bB0~RvG89*#~RI@?#A'`N3`%N!I!|Õ3qiJm X1ȇ8t1dfdvq?Fcu& J' Wk2곓$At[~ҝCȕg&b#CNLH %9LO)^ u+P]&R>!$+Ie!F-q\&S>x@㋮D_ū6GĭexLg"&T8]=U +?3)IENDB`glogic-2.6/data/images/glogic.ico0000644000175000017500000003175612031005333013666 00000000000000h6 00 %F( ^  ^"""((()))+++...111BBBKKKUUUVVVZZZ\\\]]]eeesssyyy6666666666666666) &56666666/*'"#666666.-66666%0666 666666116666$666666646666,666666662!6662666666666%66,666666662!666$666666646666666611666.-66666%06666+)'""66666( &366666666666666666666666666666666666666( @ ^  ^"""((()))+++...111888???BBBCCCDDDEEEKKKQQQUUUVVVZZZ\\\]]]dddeeesssyyy~~~SSSSSSS$;SSSSSSSSSSSSSSSSSSSSSSSSSSSR?4#JSSSSSSSSSSSSSSSSSSSSSSSSSSSSO)!QSSSSSSSSSSSSSSSSSSSSSP7SSSSSSSSSSSSSSSSSSSSSSSSSSSS6CSSSSSSSSSSSSSSSSSSSSSSSS? /I- SSSSSSSSSSSSSSSSSSSSSSSSLISHSSSSSSSSSSSSSSSSSSSSSSA 1I0 SSSSSSSSSSSSSSSSSSSSSSS6CSSSSSS SSSSSSSSSSP7SSSSSSSSS SSSSSSSSSSSSO)!QSSSSSSSSSSS SSSSSSSSSR?4#JSSSSSSSSSSSS SSS$;SSSSSSSSSSSS SSSSSSSSSSSSSSSSSSSSSSSSSSSSS SSSSSSSSSSSSSSSSSSSSSSSSSSSSS SSSSSSSSSSSSSSSSSSSSSSSSSSSSS SSSSSSSSSSSSSSSSSSSSSSSSSSSSS SSSSSSSSSSSSSSSSSSSSSSSSSSSSS SSS@ ". ". +++^^^JJJ@Q(+@@@c.+GGGV)W߾m,  ?glogic-2.6/data/images/add-component.png0000644000175000017500000000047512031005333015156 00000000000000PNG  IHDRw=gAMA a pHYs B(xtIME 7#IDATH1 0;:Kz!/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : subdir = data/images DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/as-ac-expand.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(uidir)" DATA = $(ui_DATA) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BZRREV = @BZRREV@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIR = @DATADIR@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ HELP_DIR = @HELP_DIR@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ ITSTOOL = @ITSTOOL@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_VERSION = @PYTHON_VERSION@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XMLLINT = @XMLLINT@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ intltool__v_merge_options_ = @intltool__v_merge_options_@ intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = components uidir = $(pkgdatadir)/images ui_DATA = \ add-component.png \ add-net.png \ glogic-small.ico \ glogic.png EXTRA_DIST = \ $(ui_DATA) \ glogic.ico all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu data/images/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu data/images/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-uiDATA: $(ui_DATA) @$(NORMAL_INSTALL) @list='$(ui_DATA)'; test -n "$(uidir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(uidir)'"; \ $(MKDIR_P) "$(DESTDIR)$(uidir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(uidir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(uidir)" || exit $$?; \ done uninstall-uiDATA: @$(NORMAL_UNINSTALL) @list='$(ui_DATA)'; test -n "$(uidir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(uidir)'; $(am__uninstall_files_from_dir) # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile $(DATA) installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(uidir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-uiDATA install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-uiDATA .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ install-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-generic ctags \ ctags-recursive distclean distclean-generic distclean-tags \ distdir dvi dvi-am html html-am info info-am install \ install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip install-uiDATA installcheck installcheck-am \ installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am tags tags-recursive uninstall uninstall-am \ uninstall-uiDATA # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: glogic-2.6/data/Makefile.am0000644000175000017500000000036712031005333012507 00000000000000SUBDIRS=icons images desktopdir = $(datadir)/applications desktop_in_files = glogic.desktop.in desktop_DATA = $(desktop_in_files:.desktop.in=.desktop) @INTLTOOL_DESKTOP_RULE@ CLEANFILES = \ $(desktop_DATA) EXTRA_DIST = \ $(desktop_in_files) glogic-2.6/data/Makefile.in0000644000175000017500000004771012044406014012530 00000000000000# Makefile.in generated by automake 1.11.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : subdir = data DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/as-ac-expand.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(desktopdir)" DATA = $(desktop_DATA) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BZRREV = @BZRREV@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIR = @DATADIR@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ HELP_DIR = @HELP_DIR@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ ITSTOOL = @ITSTOOL@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_VERSION = @PYTHON_VERSION@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XMLLINT = @XMLLINT@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ intltool__v_merge_options_ = @intltool__v_merge_options_@ intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = icons images desktopdir = $(datadir)/applications desktop_in_files = glogic.desktop.in desktop_DATA = $(desktop_in_files:.desktop.in=.desktop) CLEANFILES = \ $(desktop_DATA) EXTRA_DIST = \ $(desktop_in_files) all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu data/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu data/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-desktopDATA: $(desktop_DATA) @$(NORMAL_INSTALL) @list='$(desktop_DATA)'; test -n "$(desktopdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(desktopdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(desktopdir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(desktopdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(desktopdir)" || exit $$?; \ done uninstall-desktopDATA: @$(NORMAL_UNINSTALL) @list='$(desktop_DATA)'; test -n "$(desktopdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(desktopdir)'; $(am__uninstall_files_from_dir) # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile $(DATA) installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(desktopdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-desktopDATA install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-desktopDATA .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ install-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-generic ctags \ ctags-recursive distclean distclean-generic distclean-tags \ distdir dvi dvi-am html html-am info info-am install \ install-am install-data install-data-am install-desktopDATA \ install-dvi install-dvi-am install-exec install-exec-am \ install-html install-html-am install-info install-info-am \ install-man install-pdf install-pdf-am install-ps \ install-ps-am install-strip installcheck installcheck-am \ installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am tags tags-recursive uninstall uninstall-am \ uninstall-desktopDATA @INTLTOOL_DESKTOP_RULE@ # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: glogic-2.6/data/icons/0000775000175000017500000000000012044454515011660 500000000000000glogic-2.6/data/icons/scalable/0000775000175000017500000000000012044454515013426 500000000000000glogic-2.6/data/icons/scalable/Makefile.am0000644000175000017500000000024612031005333015364 00000000000000themedir = $(datadir)/icons/hicolor size = scalable context = actions iconsdir = $(themedir)/$(size)/apps icons_DATA = \ glogic.svg EXTRA_DIST = \ $(icons_DATA) glogic-2.6/data/icons/scalable/glogic.svg0000644000175000017500000001022612031005333015314 00000000000000 image/svg+xml glogic-2.6/data/icons/scalable/Makefile.in0000644000175000017500000003151112044406014015401 00000000000000# Makefile.in generated by automake 1.11.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : subdir = data/icons/scalable DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/as-ac-expand.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(iconsdir)" DATA = $(icons_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BZRREV = @BZRREV@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIR = @DATADIR@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ HELP_DIR = @HELP_DIR@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ ITSTOOL = @ITSTOOL@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_VERSION = @PYTHON_VERSION@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XMLLINT = @XMLLINT@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ intltool__v_merge_options_ = @intltool__v_merge_options_@ intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ themedir = $(datadir)/icons/hicolor size = scalable context = actions iconsdir = $(themedir)/$(size)/apps icons_DATA = \ glogic.svg EXTRA_DIST = \ $(icons_DATA) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu data/icons/scalable/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu data/icons/scalable/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-iconsDATA: $(icons_DATA) @$(NORMAL_INSTALL) @list='$(icons_DATA)'; test -n "$(iconsdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(iconsdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(iconsdir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(iconsdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(iconsdir)" || exit $$?; \ done uninstall-iconsDATA: @$(NORMAL_UNINSTALL) @list='$(icons_DATA)'; test -n "$(iconsdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(iconsdir)'; $(am__uninstall_files_from_dir) tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(iconsdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-iconsDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-iconsDATA .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic distclean \ distclean-generic distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-iconsDATA install-info install-info-am \ install-man install-pdf install-pdf-am install-ps \ install-ps-am install-strip installcheck installcheck-am \ installdirs maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic pdf pdf-am ps ps-am uninstall \ uninstall-am uninstall-iconsDATA # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: glogic-2.6/data/icons/Makefile.am0000644000175000017500000000063512031005333013620 00000000000000SUBDIRS = scalable gtk_update_icon_cache = gtk-update-icon-cache -f -t $(datadir)/icons/hicolor install-data-hook: update-icon-cache uinstall-hook: update-icon-cache update-icon-cache: @-if test -z "$(DESTDIR)"; then \ echo "Updating Gtk icon cache."; \ $(gtk_update_icon_cache); \ else \ echo "*** Icon cache not updated. After (un)install, run this:"; \ echo "*** $(gtk_update_icon_cache)"; \ fi glogic-2.6/data/icons/Makefile.in0000644000175000017500000004375412044406014013647 00000000000000# Makefile.in generated by automake 1.11.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : subdir = data/icons DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/as-ac-expand.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BZRREV = @BZRREV@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIR = @DATADIR@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ HELP_DIR = @HELP_DIR@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ ITSTOOL = @ITSTOOL@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_VERSION = @PYTHON_VERSION@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XMLLINT = @XMLLINT@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ intltool__v_merge_options_ = @intltool__v_merge_options_@ intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = scalable gtk_update_icon_cache = gtk-update-icon-cache -f -t $(datadir)/icons/hicolor all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu data/icons/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu data/icons/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) install-data-hook install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ install-am install-data-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-generic ctags \ ctags-recursive distclean distclean-generic distclean-tags \ distdir dvi dvi-am html html-am info info-am install \ install-am install-data install-data-am install-data-hook \ install-dvi install-dvi-am install-exec install-exec-am \ install-html install-html-am install-info install-info-am \ install-man install-pdf install-pdf-am install-ps \ install-ps-am install-strip installcheck installcheck-am \ installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am tags tags-recursive uninstall uninstall-am install-data-hook: update-icon-cache uinstall-hook: update-icon-cache update-icon-cache: @-if test -z "$(DESTDIR)"; then \ echo "Updating Gtk icon cache."; \ $(gtk_update_icon_cache); \ else \ echo "*** Icon cache not updated. After (un)install, run this:"; \ echo "*** $(gtk_update_icon_cache)"; \ fi # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: glogic-2.6/INSTALL0000644000175000017500000000104512034520327010575 00000000000000Installation Instructions ************************* 1. Required Packages ========================= On Debian system, you can install dependencies with the following command: $ sudo apt-get install python3-gi python3-gi-cairo libgtk-3-0 libglib2.0-dev intltool 2. Install ========================= You can install with the following commands $ ./configure $ make $ sudo make install You can also use development PPA on Ubuntu $ sudo apt-add-repository ppa:vbkaisetsu/glogic-daily $ sudo apt-get update $ sudo apt-get install glogic glogic-2.6/install-sh0000755000175000017500000003325612034477762011577 00000000000000#!/bin/sh # install - install a program, script, or datafile scriptversion=2011-01-19.21; # UTC # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the # following copyright and license. # # Copyright (C) 1994 X Consortium # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to # deal in the Software without restriction, including without limitation the # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or # sell copies of the Software, and to permit persons to whom the Software is # furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN # AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- # TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # # Except as contained in this notice, the name of the X Consortium shall not # be used in advertising or otherwise to promote the sale, use or other deal- # ings in this Software without prior written authorization from the X Consor- # tium. # # # FSF changes to this file are in the public domain. # # Calling this script install-sh is preferred over install.sh, to prevent # `make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. nl=' ' IFS=" "" $nl" # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit=${DOITPROG-} if test -z "$doit"; then doit_exec=exec else doit_exec=$doit fi # Put in absolute file names if you don't have them in your path; # or use environment vars. chgrpprog=${CHGRPPROG-chgrp} chmodprog=${CHMODPROG-chmod} chownprog=${CHOWNPROG-chown} cmpprog=${CMPPROG-cmp} cpprog=${CPPROG-cp} mkdirprog=${MKDIRPROG-mkdir} mvprog=${MVPROG-mv} rmprog=${RMPROG-rm} stripprog=${STRIPPROG-strip} posix_glob='?' initialize_posix_glob=' test "$posix_glob" != "?" || { if (set -f) 2>/dev/null; then posix_glob= else posix_glob=: fi } ' posix_mkdir= # Desired mode of installed file. mode=0755 chgrpcmd= chmodcmd=$chmodprog chowncmd= mvcmd=$mvprog rmcmd="$rmprog -f" stripcmd= src= dst= dir_arg= dst_arg= copy_on_change=false no_target_directory= usage="\ Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE or: $0 [OPTION]... SRCFILES... DIRECTORY or: $0 [OPTION]... -t DIRECTORY SRCFILES... or: $0 [OPTION]... -d DIRECTORIES... In the 1st form, copy SRCFILE to DSTFILE. In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. In the 4th, create DIRECTORIES. Options: --help display this help and exit. --version display version info and exit. -c (ignored) -C install only if different (preserve the last data modification time) -d create directories instead of installing files. -g GROUP $chgrpprog installed files to GROUP. -m MODE $chmodprog installed files to MODE. -o USER $chownprog installed files to USER. -s $stripprog installed files. -t DIRECTORY install into DIRECTORY. -T report an error if DSTFILE is a directory. Environment variables override the default commands: CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG " while test $# -ne 0; do case $1 in -c) ;; -C) copy_on_change=true;; -d) dir_arg=true;; -g) chgrpcmd="$chgrpprog $2" shift;; --help) echo "$usage"; exit $?;; -m) mode=$2 case $mode in *' '* | *' '* | *' '* | *'*'* | *'?'* | *'['*) echo "$0: invalid mode: $mode" >&2 exit 1;; esac shift;; -o) chowncmd="$chownprog $2" shift;; -s) stripcmd=$stripprog;; -t) dst_arg=$2 # Protect names problematic for `test' and other utilities. case $dst_arg in -* | [=\(\)!]) dst_arg=./$dst_arg;; esac shift;; -T) no_target_directory=true;; --version) echo "$0 $scriptversion"; exit $?;; --) shift break;; -*) echo "$0: invalid option: $1" >&2 exit 1;; *) break;; esac shift done if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then # When -d is used, all remaining arguments are directories to create. # When -t is used, the destination is already specified. # Otherwise, the last argument is the destination. Remove it from $@. for arg do if test -n "$dst_arg"; then # $@ is not empty: it contains at least $arg. set fnord "$@" "$dst_arg" shift # fnord fi shift # arg dst_arg=$arg # Protect names problematic for `test' and other utilities. case $dst_arg in -* | [=\(\)!]) dst_arg=./$dst_arg;; esac done fi if test $# -eq 0; then if test -z "$dir_arg"; then echo "$0: no input file specified." >&2 exit 1 fi # It's OK to call `install-sh -d' without argument. # This can happen when creating conditional directories. exit 0 fi if test -z "$dir_arg"; then do_exit='(exit $ret); exit $ret' trap "ret=129; $do_exit" 1 trap "ret=130; $do_exit" 2 trap "ret=141; $do_exit" 13 trap "ret=143; $do_exit" 15 # Set umask so as not to create temps with too-generous modes. # However, 'strip' requires both read and write access to temps. case $mode in # Optimize common cases. *644) cp_umask=133;; *755) cp_umask=22;; *[0-7]) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw='% 200' fi cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; *) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw=,u+rw fi cp_umask=$mode$u_plus_rw;; esac fi for src do # Protect names problematic for `test' and other utilities. case $src in -* | [=\(\)!]) src=./$src;; esac if test -n "$dir_arg"; then dst=$src dstdir=$dst test -d "$dstdir" dstdir_status=$? else # Waiting for this to be detected by the "$cpprog $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if test ! -f "$src" && test ! -d "$src"; then echo "$0: $src does not exist." >&2 exit 1 fi if test -z "$dst_arg"; then echo "$0: no destination specified." >&2 exit 1 fi dst=$dst_arg # If destination is a directory, append the input filename; won't work # if double slashes aren't ignored. if test -d "$dst"; then if test -n "$no_target_directory"; then echo "$0: $dst_arg: Is a directory" >&2 exit 1 fi dstdir=$dst dst=$dstdir/`basename "$src"` dstdir_status=0 else # Prefer dirname, but fall back on a substitute if dirname fails. dstdir=` (dirname "$dst") 2>/dev/null || expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$dst" : 'X\(//\)[^/]' \| \ X"$dst" : 'X\(//\)$' \| \ X"$dst" : 'X\(/\)' \| . 2>/dev/null || echo X"$dst" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q' ` test -d "$dstdir" dstdir_status=$? fi fi obsolete_mkdir_used=false if test $dstdir_status != 0; then case $posix_mkdir in '') # Create intermediate dirs using mode 755 as modified by the umask. # This is like FreeBSD 'install' as of 1997-10-28. umask=`umask` case $stripcmd.$umask in # Optimize common cases. *[2367][2367]) mkdir_umask=$umask;; .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; *[0-7]) mkdir_umask=`expr $umask + 22 \ - $umask % 100 % 40 + $umask % 20 \ - $umask % 10 % 4 + $umask % 2 `;; *) mkdir_umask=$umask,go-w;; esac # With -d, create the new directory with the user-specified mode. # Otherwise, rely on $mkdir_umask. if test -n "$dir_arg"; then mkdir_mode=-m$mode else mkdir_mode= fi posix_mkdir=false case $umask in *[123567][0-7][0-7]) # POSIX mkdir -p sets u+wx bits regardless of umask, which # is incompatible with FreeBSD 'install' when (umask & 300) != 0. ;; *) tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 if (umask $mkdir_umask && exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 then if test -z "$dir_arg" || { # Check for POSIX incompatibilities with -m. # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or # other-writeable bit of parent directory when it shouldn't. # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. ls_ld_tmpdir=`ls -ld "$tmpdir"` case $ls_ld_tmpdir in d????-?r-*) different_mode=700;; d????-?--*) different_mode=755;; *) false;; esac && $mkdirprog -m$different_mode -p -- "$tmpdir" && { ls_ld_tmpdir_1=`ls -ld "$tmpdir"` test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" } } then posix_mkdir=: fi rmdir "$tmpdir/d" "$tmpdir" else # Remove any dirs left behind by ancient mkdir implementations. rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null fi trap '' 0;; esac;; esac if $posix_mkdir && ( umask $mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" ) then : else # The umask is ridiculous, or mkdir does not conform to POSIX, # or it failed possibly due to a race condition. Create the # directory the slow way, step by step, checking for races as we go. case $dstdir in /*) prefix='/';; [-=\(\)!]*) prefix='./';; *) prefix='';; esac eval "$initialize_posix_glob" oIFS=$IFS IFS=/ $posix_glob set -f set fnord $dstdir shift $posix_glob set +f IFS=$oIFS prefixes= for d do test X"$d" = X && continue prefix=$prefix$d if test -d "$prefix"; then prefixes= else if $posix_mkdir; then (umask=$mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break # Don't fail if two instances are running concurrently. test -d "$prefix" || exit 1 else case $prefix in *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; *) qprefix=$prefix;; esac prefixes="$prefixes '$qprefix'" fi fi prefix=$prefix/ done if test -n "$prefixes"; then # Don't fail if two instances are running concurrently. (umask $mkdir_umask && eval "\$doit_exec \$mkdirprog $prefixes") || test -d "$dstdir" || exit 1 obsolete_mkdir_used=true fi fi fi if test -n "$dir_arg"; then { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 else # Make a couple of temp file names in the proper directory. dsttmp=$dstdir/_inst.$$_ rmtmp=$dstdir/_rm.$$_ # Trap to clean up those temp files at exit. trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 # Copy the file name to the temp name. (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && # and set any options; do chmod last to preserve setuid bits. # # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $cpprog $src $dsttmp" command. # { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && # If -C, don't bother to copy if it wouldn't change the file. if $copy_on_change && old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && eval "$initialize_posix_glob" && $posix_glob set -f && set X $old && old=:$2:$4:$5:$6 && set X $new && new=:$2:$4:$5:$6 && $posix_glob set +f && test "$old" = "$new" && $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 then rm -f "$dsttmp" else # Rename the file to the real destination. $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || # The rename failed, perhaps because mv can't rename something else # to itself, or perhaps because mv is so ancient that it does not # support -f. { # Now remove or move aside any old file at destination location. # We try this two ways since rm can't unlink itself on some # systems and the destination file might be busy for other # reasons. In this case, the final cleanup might fail but the new # file should still install successfully. { test ! -f "$dst" || $doit $rmcmd -f "$dst" 2>/dev/null || { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } } || { echo "$0: cannot unlink or rename $dst" >&2 (exit 1); exit 1 } } && # Now rename the file to the real destination. $doit $mvcmd "$dsttmp" "$dst" } fi || exit 1 trap '' 0 fi done # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: glogic-2.6/examples/0000775000175000017500000000000012044454515011452 500000000000000glogic-2.6/examples/TFF-counter.glc0000644000175000017500000000256512031606457014163 00000000000000tff position=370,160 input_level=0 output_level=0,1 properties=trig:1,tphl:0.0,tplh:0.0 tff position=270,180 input_level=0 output_level=0,1 properties=trig:1,tphl:0.0,tplh:0.0 tff position=70,110 input_level=1 output_level=1,0 properties=trig:0,tphl:0.0,tplh:0.0 tff position=170,90 input_level=1 output_level=1,0 properties=trig:0,tphl:0.0,tplh:0.0 sw position=10,110 input_level= output_level=1 properties=initstate:0 tff position=270,70 input_level=1 output_level=1,0 properties=trig:0,tphl:0.0,tplh:0.0 tff position=370,50 input_level=1 output_level=1,0 properties=trig:0,tphl:0.0,tplh:0.0 7seg position=470,110 input_level=0,0,0,0 output_level= properties= tff position=170,200 input_level=0 output_level=0,1 properties=trig:1,tphl:0.0,tplh:0.0 tff position=70,220 input_level=0 output_level=0,1 properties=trig:1,tphl:0.0,tplh:0.0 sw position=10,220 input_level= output_level=0 properties=initstate:0 7seg position=470,220 input_level=1,1,1,1 output_level= properties= net position=180,80,180,70 net position=280,60,280,50 net position=380,40,380,30 net position=480,100,180,100 net position=280,80,480,80 net position=480,60,380,60 net position=180,210,480,210 net position=480,190,280,190 net position=380,170,480,170 net position=380,150,380,140 net position=280,170,280,160 net position=180,190,180,180 glogic-2.6/examples/adder.glc0000644000175000017500000001237412031606577013150 00000000000000sw position=30,550 input_level= output_level=0 properties=initstate:0 sw position=30,500 input_level= output_level=1 properties=initstate:1 sw position=30,450 input_level= output_level=1 properties=initstate:1 sw position=30,400 input_level= output_level=0 properties=initstate:0 7seg position=50,100 input_level=0,1,1,0 output_level= properties= 7seg position=180,100 input_level=0,1,0,1 output_level= properties= 7seg position=610,100 input_level=1,0,1,1 output_level= properties= sw position=160,400 input_level= output_level=0 properties=initstate:0 sw position=160,450 input_level= output_level=1 properties=initstate:1 sw position=160,500 input_level= output_level=0 properties=initstate:0 sw position=160,550 input_level= output_level=1 properties=initstate:1 and position=400,220 input_level=1,1 output_level=1 properties=tphl:0.0,tplh:0.0 and position=400,270 input_level=0,0 output_level=0 properties=tphl:0.0,tplh:0.0 and position=400,350 input_level=1,0 output_level=0 properties=tphl:0.0,tplh:0.0 and position=400,400 input_level=1,0 output_level=0 properties=tphl:0.0,tplh:0.0 xor position=300,260 input_level=1,1 output_level=0 properties=tphl:0.0,tplh:0.0 xor position=300,390 input_level=0,1 output_level=1 properties=tphl:0.0,tplh:0.0 xor position=400,170 input_level=0,0 output_level=0 properties=tphl:0.0,tplh:0.0 xor position=490,180 input_level=0,1 output_level=1 properties=tphl:0.0,tplh:0.0 xor position=490,310 input_level=0,0 output_level=0 properties=tphl:0.0,tplh:0.0 xor position=490,440 input_level=1,0 output_level=1 properties=tphl:0.0,tplh:0.0 xor position=490,550 input_level=1,0 output_level=1 properties=tphl:0.0,tplh:0.0 and position=490,500 input_level=0,1 output_level=0 properties=tphl:0.0,tplh:0.0 or position=490,390 input_level=0,0 output_level=0 properties=tphl:0.0,tplh:0.0 or position=490,260 input_level=1,0 output_level=1 properties=tphl:0.0,tplh:0.0 text position=30,350 input_level= output_level= properties=text:IN1 text position=160,350 input_level= output_level= properties=text:IN2 text position=630,120 input_level= output_level= properties=text:OUT \e IN1 + IN2 net position=500,410,400,410 net position=400,370,410,370 net position=400,410,400,370 net position=500,360,500,330 net position=500,230,500,200 net position=500,280,400,280 net position=400,280,400,240 net position=410,240,400,240 net position=590,480,590,450 net position=410,430,410,390 net position=590,450,500,450 net position=500,430,410,430 net position=500,450,500,430 net position=590,370,590,320 net position=410,300,410,260 net position=590,320,500,320 net position=500,300,410,300 net position=500,320,500,300 net position=590,240,590,190 net position=590,190,500,190 net position=500,190,500,170 net position=60,50,40,50 net position=410,210,310,210 net position=40,180,40,50 net position=310,210,310,230 net position=40,180,110,180 net position=310,230,110,230 net position=110,180,110,230 net position=100,430,110,430 net position=110,230,110,430 net position=190,50,170,50 net position=190,90,190,140 net position=500,520,500,490 net position=190,140,260,140 net position=500,490,260,490 net position=260,140,260,490 net position=230,530,260,530 net position=260,490,260,530 net position=620,30,590,30 net position=590,30,590,160 net position=620,50,600,50 net position=600,50,600,290 net position=600,290,590,290 net position=620,70,610,70 net position=610,70,610,420 net position=610,420,590,420 net position=620,90,620,530 net position=620,530,590,530 net position=50,70,60,70 net position=300,380,310,380 net position=50,70,50,160 net position=410,320,300,320 net position=300,320,300,380 net position=50,160,120,160 net position=300,320,120,320 net position=120,160,120,320 net position=100,480,120,480 net position=120,320,120,480 net position=60,140,60,90 net position=500,540,490,540 net position=60,140,130,140 net position=100,530,130,530 net position=490,540,490,470 net position=500,470,490,470 net position=130,140,130,350 net position=130,350,130,530 net position=490,470,280,470 net position=130,350,280,350 net position=280,470,280,350 net position=180,70,190,70 net position=180,160,180,70 net position=410,340,310,340 net position=310,340,310,360 net position=250,160,180,160 net position=310,340,250,340 net position=250,160,250,340 net position=230,480,250,480 net position=250,340,250,480 net position=170,50,170,180 net position=170,180,240,180 net position=230,430,240,430 net position=240,180,240,250 net position=240,250,240,430 net position=410,190,300,190 net position=300,250,310,250 net position=300,250,240,250 net position=300,190,300,250 net position=190,30,160,30 net position=160,30,160,200 net position=160,200,230,200 net position=230,200,230,380 net position=230,200,280,200 net position=410,140,280,140 net position=280,200,280,140 net position=30,30,60,30 net position=30,30,30,200 net position=100,200,30,200 net position=100,200,100,210 net position=100,210,100,380 net position=410,160,290,160 net position=100,210,290,210 net position=290,160,290,210 glogic-2.6/examples/oscillators.glc0000644000175000017500000000240412031606416014410 00000000000000osc position=30,70 input_level= output_level=0 properties=period:2.5,shift:0.0,duration:80.0,initstate:0 osc position=30,120 input_level= output_level=1 properties=period:2.4,shift:0.0,duration:80.0,initstate:0 probe position=220,60 input_level=0 output_level= properties=name:Signal1 probe position=220,110 input_level=1 output_level= properties=name:Signal2 probe position=220,160 input_level=0 output_level= properties=name:AND probe position=220,210 input_level=1 output_level= properties=name:XOR xor position=130,220 input_level=0,1 output_level=1 properties=tphl:0.0,tplh:0.0 and position=130,170 input_level=0,1 output_level=0 properties=tphl:0.0,tplh:0.0 text position=20,30 input_level= output_level= properties=text:T\e0.25µs text position=20,140 input_level= output_level= properties=text:T\e0.24µs text position=100,30 input_level= output_level= properties=text:Duration\e80µs net position=230,100,100,100 net position=100,210,140,210 net position=100,100,100,160 net position=100,160,100,210 net position=140,160,100,160 net position=140,190,120,190 net position=140,140,120,140 net position=120,190,120,140 net position=120,50,230,50 net position=120,140,120,50 net position=100,50,120,50 glogic-2.6/examples/RSFF.glc0000644000175000017500000000125312031606447012617 00000000000000nor position=70,70 input_level=0,1 output_level=0 properties=tphl:0.0,tplh:0.0 nor position=70,160 input_level=0,0 output_level=1 properties=tphl:0.0,tplh:0.0 sw position=10,170 input_level= output_level=0 properties=initstate:0 sw position=10,60 input_level= output_level=0 properties=initstate:0 led position=180,160 input_level=1 output_level= properties= led position=180,70 input_level=0 output_level= properties= net position=80,130,80,100 net position=80,60,80,80 net position=190,80,190,140 net position=180,100,180,50 net position=190,80,80,80 net position=190,140,180,140 net position=190,50,180,50 net position=80,100,180,100 glogic-2.6/examples/Makefile.am0000644000175000017500000000011412031005333013402 00000000000000EXTRA_DIST = \ RSFF.glc \ TFF-counter.glc \ adder.glc \ oscillators.glc glogic-2.6/examples/Makefile.in0000644000175000017500000002506412044406014013433 00000000000000# Makefile.in generated by automake 1.11.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : subdir = examples DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/as-ac-expand.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BZRREV = @BZRREV@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIR = @DATADIR@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ HELP_DIR = @HELP_DIR@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ ITSTOOL = @ITSTOOL@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_VERSION = @PYTHON_VERSION@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XMLLINT = @XMLLINT@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ intltool__v_merge_options_ = @intltool__v_merge_options_@ intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ EXTRA_DIST = \ RSFF.glc \ TFF-counter.glc \ adder.glc \ oscillators.glc all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu examples/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu examples/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic distclean \ distclean-generic distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic pdf pdf-am ps ps-am uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: glogic-2.6/glogic/0000775000175000017500000000000012044454515011100 500000000000000glogic-2.6/glogic/ComponentWindow.py0000644000175000017500000000533412036254747014535 00000000000000# -*- coding: utf-8; indent-tabs-mode: t; tab-width: 4 -*- import math from glogic import config, const from glogic.Components import comp_dict from gettext import gettext as _ from gi.repository import Gtk, Gdk, GdkPixbuf, GObject class ComponentWindow(Gtk.Window): __gsignals__ = { 'component-checked': (GObject.SIGNAL_RUN_FIRST, None, (str,)), 'window-hidden': (GObject.SIGNAL_RUN_FIRST, None, ()) } def __init__(self): Gtk.Window.__init__(self, title=_("Components")) self.set_type_hint(Gdk.WindowTypeHint.DIALOG) self.set_resizable(False) self.checked_widget = None # Create toggle buttons self.button_names = [ const.component_NOT, const.component_AND, const.component_OR, const.component_XOR, const.component_NAND, const.component_NOR, const.component_RSFF, const.component_JKFF, const.component_DFF, const.component_TFF, const.component_counter, const.component_adder, const.component_SISO, const.component_SIPO, const.component_PISO, const.component_PIPO, const.component_SW, const.component_7seg, const.component_LED, const.component_VDD, const.component_GND, const.component_OSC, const.component_probe, const.component_text ] columns = 4 rows = math.ceil(len(self.button_names) / columns) layout = Gtk.Table(5, 4, True) self.add(layout) self.buttons = [] for i, name in enumerate(self.button_names): button = Gtk.ToggleButton() icon = GdkPixbuf.Pixbuf.new_from_file(config.DATADIR+"/images/components/"+name+".png") button.add(Gtk.Image.new_from_pixbuf(icon)) button.set_tooltip_text(comp_dict[name].description) button.connect("clicked", self.on_button_clicked) self.buttons.append(button) layout.attach(button, i % columns, i % columns + 1, i / columns, i / columns + 1) self.connect("delete-event", self.on_window_delete) def on_button_clicked(self, button): if button.get_active() and button is not self.checked_widget: self.check_button(button) elif button is self.checked_widget: self.check_button(None) def uncheck_all_buttons(self): for btn in self.buttons: btn.set_active(False) def check_button(self, button): old_checked = self.checked_widget self.checked_widget = button checked_component = const.component_none if button is not None: for (i, btn) in enumerate(self.buttons): if btn is old_checked: btn.set_active(False) if btn is button: if not btn.get_active(): btn.set_active(True) checked_component = self.button_names[i] self.emit("component-checked", checked_component) def on_window_delete(self, widget, event): self.uncheck_all_buttons() self.emit("component-checked", const.component_none) self.emit("window-hidden") return True glogic-2.6/glogic/DiagramArea.py0000644000175000017500000002771312042651154013533 00000000000000# -*- coding: utf-8; indent-tabs-mode: t; tab-width: 4 -*- import cairo, math from decimal import Decimal from glogic import const from glogic.Utils import * from glogic import Preference from gi.repository import Gtk, Gdk, PangoCairo from gettext import gettext as _ class DiagramArea(Gtk.Box): def __init__(self, circuit, drawarea): Gtk.Box.__init__(self) self.circuit = circuit self.drawarea = drawarea self.scale = 5000000 # pix/sec self.start_time = 0.0 self.end_time = 0.0002 self.diagram_unit = 1 # 0: ns, 1: µs, 2: ms self.gra_pix = 120 self.name_width = 150 self.img_height = 0 self.diagram_scroll = Gtk.ScrolledWindow() self.diagram_scroll.set_hexpand(True) self.diagram_scroll.set_vexpand(True) self.diagramarea = Gtk.DrawingArea() self.diagram_scroll.add_with_viewport(self.diagramarea) self.diagram_scroll_hadj = self.diagram_scroll.get_hadjustment() self.diagram_scroll_vadj = self.diagram_scroll.get_vadjustment() self.name_scroll = Gtk.ScrolledWindow(vadjustment=self.diagram_scroll.get_vadjustment()) self.name_scroll.set_size_request(150, -1) self.namearea = Gtk.DrawingArea() self.name_scroll.add_with_viewport(self.namearea) self.name_scroll_hadj = self.name_scroll.get_hadjustment() self.name_scroll_vadj = self.name_scroll.get_vadjustment() self.pack_start(self.name_scroll, False, False, 0) self.pack_start(self.diagram_scroll, True, True, 0) self.cursor_x = 0 self.cursor_y = 0 self.show_cursor = False self.mouse_down = False self.middle_move_enabled = False self.name_pixbuf = None self.diagram_pixbuf = None self.namearea.connect("draw", self.on_namearea_draw) self.diagramarea.set_events(Gdk.EventMask.ENTER_NOTIFY_MASK | Gdk.EventMask.LEAVE_NOTIFY_MASK | Gdk.EventMask.POINTER_MOTION_MASK | Gdk.EventMask.BUTTON_PRESS_MASK | Gdk.EventMask.BUTTON_RELEASE_MASK) self.diagramarea.connect("draw", self.on_diagramarea_draw) self.diagramarea.connect("motion-notify-event", self.on_diagramarea_motion) self.diagramarea.connect("leave-notify-event", self.on_diagramarea_leave) self.diagramarea.connect("button-press-event", self.on_diagramarea_button_press) self.diagramarea.connect("button-release-event", self.on_diagramarea_button_release) self.namearea.set_events(Gdk.EventMask.POINTER_MOTION_MASK | Gdk.EventMask.BUTTON_PRESS_MASK | Gdk.EventMask.BUTTON_RELEASE_MASK) self.namearea.connect("motion-notify-event", self.on_namearea_motion) self.namearea.connect("button-press-event", self.on_namearea_button_press) self.namearea.connect("button-release-event", self.on_namearea_button_release) def on_namearea_button_press(self, widget, event): if event.button == 2: self.middle_move_enabled = True self.move_start_x = event.x self.move_start_y = event.y def on_namearea_button_release(self, widget, event): if event.button == 2: self.middle_move_enabled = False def on_namearea_motion(self, widget, event): if self.middle_move_enabled: delta_x = self.move_start_x - event.x delta_y = self.move_start_y - event.y if -1 < delta_x < 1 and -1 < delta_y < 1: return self.name_scroll_hadj.set_value(self.name_scroll_hadj.get_value() + delta_x) self.name_scroll_vadj.set_value(self.name_scroll_vadj.get_value() + delta_y) def on_diagramarea_button_press(self, widget, event): if event.button == 1: self.cursor_x = event.x if self.cursor_x < 0.0: self.cursor_x = 0.0 if self.diagram_width < self.cursor_x: self.cursor_x = self.diagram_width self.cursor_y = event.y if 39 <= self.cursor_y < self.img_height: self.mouse_down = True widget.queue_draw() elif event.button == 2: self.middle_move_enabled = True self.move_start_x = event.x self.move_start_y = event.y def on_diagramarea_button_release(self, widget, event): if event.button == 1: self.mouse_down = False if 39 <= self.cursor_y < self.img_height: self.circuit.current_time = self.cursor_x / self.scale + self.start_time self.circuit.revert_state() self.drawarea.redraw = True self.drawarea.queue_draw() elif event.button == 2: self.middle_move_enabled = False def on_diagramarea_motion(self, widget, event): if self.middle_move_enabled: delta_x = self.move_start_x - event.x delta_y = self.move_start_y - event.y if -1 < delta_x < 1 and -1 < delta_y < 1: return self.diagram_scroll_hadj.set_value(self.diagram_scroll_hadj.get_value() + delta_x) self.diagram_scroll_vadj.set_value(self.diagram_scroll_vadj.get_value() + delta_y) self.cursor_x_old = self.cursor_x self.cursor_y_old = self.cursor_y self.cursor_x = event.x if self.cursor_x < 0.0: self.cursor_x = 0.0 if self.diagram_width < self.cursor_x: self.cursor_x = self.diagram_width self.cursor_y = event.y if 39 <= self.cursor_y < self.img_height: left = int(min((self.cursor_x_old, self.cursor_x)) - 1) width = int(abs(self.cursor_x_old - self.cursor_x) + 4) if self.show_cursor: widget.queue_draw_area(left, 0, width, self.img_height) else: widget.queue_draw() self.show_cursor = True elif self.show_cursor: self.show_cursor = False widget.queue_draw() def set_time(self, time): old_x = (self.circuit.current_time - self.start_time) * self.scale self.circuit.current_time = time new_x = (self.circuit.current_time - self.start_time) * self.scale left = int(min((old_x, new_x)) - 1) width = int(abs(old_x - new_x) + 4) self.diagramarea.queue_draw_area(left, 0, width, self.img_height) def on_diagramarea_leave(self, widget, event): self.show_cursor = False widget.queue_draw_area(int(self.cursor_x - 1), 0, 3, self.img_height) def on_namearea_draw(self, widget, cr): if self.name_pixbuf is not None: cr.set_source_surface(self.name_pixbuf, 0, 0); cr.paint(); def on_diagramarea_draw(self, widget, cr): if self.diagram_pixbuf is not None: cr.set_source_surface(self.diagram_pixbuf, 0, 0); cr.paint(); cr.set_line_width(1.0) if self.show_cursor: if self.mouse_down: cr.set_source_rgba(0.0, 1.0, 0.0, 0.8) else: cr.set_source_rgba(0.0, 0.0, 1.0, 0.8) cairo_paths(cr, (self.cursor_x, 39), (self.cursor_x, self.img_height)) cr.stroke() if not self.mouse_down or not self.show_cursor: cr.set_source_rgba(1.0, 0.0, 0.0, 0.8) current_time_x = (self.circuit.current_time - self.start_time) * self.scale cairo_paths(cr, (current_time_x, 39), (current_time_x, self.img_height)) cr.stroke() def draw_names(self, cr): name_layout = PangoCairo.create_layout(cr) name_layout.set_font_description(Preference.drawing_font) # draw borders cr.set_source_rgb(1.0, 1.0, 1.0) cr.rectangle(1, 1, self.name_width-1, 38) cr.fill() cr.set_source_rgb(0.875, 0.875, 0.875) cr.rectangle(1, 40, self.name_width - 1, self.img_height - 41) cr.fill() cr.set_source_rgb(0.5, 0.5, 0.5) cr.rectangle(0.5, 0.5, self.name_width - 1, self.img_height - 1) i = 0 for c in self.circuit.components: if c[0] == const.component_probe: cairo_paths(cr, (1, i * 40 + 39.5), (self.name_width - 1, i * 40 + 39.5)) i += 1 cr.stroke() # draw probe names cr.set_source_rgb(0.0, 0.0, 0.0) i = 0 for c in self.circuit.components: if c[0] == const.component_probe: cairo_draw_text(cr, name_layout, c[1].values[0], 10, i * 40 + 60, 0, 0.5) i += 1 cr.fill() if self.diagram_unit == 0: cairo_draw_text(cr, name_layout, "%s [ns]" % _("Time"), 130, 35, 1.0, 1.0) elif self.diagram_unit == 1: cairo_draw_text(cr, name_layout, "%s [µs]" % _("Time"), 130, 35, 1.0, 1.0) else: cairo_draw_text(cr, name_layout, "%s [ms]" % _("Time"), 130, 35, 1.0, 1.0) cr.fill() def draw_diagrams(self, cr): diagram_layout = PangoCairo.create_layout(cr) diagram_layout.set_font_description(Preference.drawing_font) # draw borders cr.set_source_rgb(1.0, 1.0, 1.0) cr.rectangle(0, 1, self.diagram_width - 1, self.img_height - 2) cr.fill() cr.set_source_rgb(0.5, 0.5, 0.5) cairo_paths(cr, (0, 0.5), (self.diagram_width, 0.5)) cairo_paths(cr, (self.diagram_width - 0.5, 1), (self.diagram_width - 0.5, self.img_height - 1)) cairo_paths(cr, (0, self.img_height - 0.5), (self.diagram_width, self.img_height - 0.5)) i = 0 for c in self.circuit.components: if c[0] == const.component_probe: cairo_paths(cr, (0, i * 40 + 39.5), (self.diagram_width - 1, i * 40 + 39.5)) i += 1 cr.stroke() # draw graduaton gra_p = Decimal(self.gra_pix) / Decimal(self.scale) order = 10 ** Decimal(int(math.log10(gra_p))) grasec_top = gra_p / order if 0.15 <= grasec_top < 0.35: gra_p = order * Decimal("0.2") elif 0.35 <= grasec_top <= 0.75: gra_p = order * Decimal("0.5") else: gra_p = order * Decimal("0.1") cr.set_source_rgb(0.0, 0.0, 0.0) if self.diagram_unit == 0: u_start_time = self.start_time * 1000000000 u_end_time = self.end_time * 1000000000 u_gra_p = gra_p * 1000000000 elif self.diagram_unit == 1: u_start_time = self.start_time * 1000000 u_end_time = self.end_time * 1000000 u_gra_p = gra_p * 1000000 else: u_start_time = self.start_time * 1000 u_end_time = self.end_time * 1000 u_gra_p = gra_p * 1000 cairo_draw_text(cr, diagram_layout, str(Decimal(u_start_time).quantize(Decimal(".00"))), 5, 35, 0.0, 1.0) cairo_draw_text(cr, diagram_layout, str(Decimal(u_end_time).quantize(Decimal(".00"))), self.diagram_width - 5, 35, 1.0, 1.0) cr.fill() u_gra_sec = u_gra_p gra_sec = gra_p while True: if u_gra_sec + u_gra_p / 4 >= u_end_time: break cr.set_source_rgb(0.5, 0.5, 0.5) cairo_paths(cr, (int(float(gra_sec) * self.scale) + 0.5, 39), (int(float(gra_sec) * self.scale) + 0.5, self.img_height - 1)) cr.stroke() cr.set_source_rgb(0.0, 0.0, 0.0) cairo_draw_text(cr, diagram_layout, str(Decimal(u_gra_sec).quantize(Decimal(".00"))), float(gra_sec) * self.scale, 35, 0.5, 1.0) u_gra_sec += u_gra_p gra_sec += gra_p cr.fill() # plot graphs prev_time = 0 history = self.circuit.probe_levels_history for i, probe_lebels in enumerate(history[:-1]): if history[i + 1][0] <= self.start_time or self.end_time < probe_lebels[0]: continue for j, data in enumerate(probe_lebels[1:]): if data == True: cairo_paths(cr, (round((probe_lebels[0] - self.start_time) * self.scale), j * 40 + 55.5), (round((history[i + 1][0] - self.start_time) * self.scale) + 1, j * 40 + 55.5)) else: cairo_paths(cr, (round((probe_lebels[0] - self.start_time) * self.scale), j * 40 + 65.5), (round((history[i + 1][0] - self.start_time) * self.scale) + 1, j * 40 + 65.5)) if data != history[i + 1][j + 1]: cairo_paths(cr, (round((history[i + 1][0] - self.start_time) * self.scale) + 0.5, j * 40 + 56), (round((history[i + 1][0] - self.start_time) * self.scale) + 0.5, j * 40 + 65)) if history[-1][0] < self.end_time: for j, data in enumerate(history[-1][1:]): if data == True: cairo_paths(cr, (round((history[-1][0] - self.start_time) * self.scale), j * 40 + 55.5), (self.diagram_width, j * 40 + 55.5)) else: cairo_paths(cr, (round((history[-1][0] - self.start_time) * self.scale), j * 40 + 65.5), (self.diagram_width, j * 40 + 65.5)) cr.stroke() def createDiagram(self): i = 0 for c in self.circuit.components: if c[0] == const.component_probe: i += 1 self.img_height = 40 * i + 40 self.diagram_width = int((self.end_time - self.start_time) * self.scale) if self.diagram_width == 0: self.diagram_width = 1 self.name_pixbuf = cairo.ImageSurface(cairo.FORMAT_RGB24, self.name_width, self.img_height) self.namearea.set_size_request(self.name_width, self.img_height) ncr = cairo.Context(self.name_pixbuf) ncr.set_line_width(1.0) self.draw_names(ncr) self.diagram_pixbuf = cairo.ImageSurface(cairo.FORMAT_RGB24, self.diagram_width, self.img_height) self.diagramarea.set_size_request(self.diagram_width, self.img_height) ccr = cairo.Context(self.diagram_pixbuf) ccr.set_line_width(1.0) self.draw_diagrams(ccr) self.queue_draw() glogic-2.6/glogic/MainFrame.py0000644000175000017500000005614412044177564013247 00000000000000# -*- coding: utf-8; indent-tabs-mode: t; tab-width: 4 -*- import copy, os, sys, webbrowser from gi.repository import Gtk, Gdk, GdkPixbuf from glogic import config, const from glogic.Exporter import save_schematics_as_image from gettext import gettext as _ from glogic.DrawArea import DrawArea from glogic.ComponentWindow import ComponentWindow from glogic.CircuitManager import CircuitManager from glogic.PropertyWindow import PropertyWindow from glogic.PreferencesWindow import PreferencesWindow from glogic import Preference from glogic.Components import * from glogic.TimingDiagramWindow import TimingDiagramWindow from glogic.ComponentConverter import components_to_string, string_to_components themed_icons = Gtk.IconTheme.get_default() themed_icons.append_search_path(config.DATADIR+"/images") class MainFrame(Gtk.Window): def __init__(self): Gtk.Window.__init__(self, title="%s - %s" % (const.text_notitle, const.app_name)) self.running_mode = False self.pause_running_mode = False self.clicked_on_pause = False self.circuit = CircuitManager() self.circuit.connect("title-changed", self.on_circuit_title_changed) self.circuit.connect("message-changed", self.on_circuit_message_changed) self.circuit.connect("item-unselected", self.on_circuit_item_unselected) self.circuit.connect("alert", self.on_circuit_alert) Preference.load_settings() self.create_window() # Component window self.comp_window = ComponentWindow() self.comp_window.connect("component-checked", self.on_comp_checked) self.comp_window.connect("window-hidden", self.on_compwindow_hidden) self.comp_window.set_transient_for(self) # Property window self.prop_window = PropertyWindow() self.prop_window.set_transient_for(self) self.prop_window.connect("window-hidden", self.on_propwindow_hidden) self.prop_window.connect("property-changed", self.on_property_changed) # Timing diagram window self.diagram_window = TimingDiagramWindow(self) # Preferences window self.pref_window = PreferencesWindow(self) # About dialog self.about_dialog = Gtk.AboutDialog() self.about_dialog.set_logo(GdkPixbuf.Pixbuf.new_from_file(config.DATADIR+"/images/glogic.png")) self.about_dialog.set_program_name(const.app_name) self.about_dialog.set_version(config.VERSION if config.BZRREV == "" else "%s (+bzr%s)" % (config.VERSION, config.BZRREV)) self.about_dialog.set_comments(const.description) self.about_dialog.set_copyright(const.copyright) self.about_dialog.set_website(const.website) self.about_dialog.set_license(const.license) self.about_dialog.set_authors(const.developer) tr_credits = _("translator-credits") if tr_credits != "translator-credits": self.about_dialog.set_translator_credits(tr_credits) self.clipboard = Gtk.Clipboard.get(Gdk.SELECTION_CLIPBOARD) if len(sys.argv) >= 2: self.circuit.open_file(sys.argv[1]) self.drawarea.redraw = True self.drawarea.queue_draw() def create_window(self): self.set_default_size(640, 400) box = Gtk.Box(orientation=Gtk.Orientation.VERTICAL) menu_xml = """ """ actiongroup = Gtk.ActionGroup("menu") actions = [ ("new", Gtk.STOCK_NEW, _("_New"), "N", _("Close this circuit and create a new one."), self.on_action_new_pressed), ("open", Gtk.STOCK_OPEN, _("_Open..."), "O", _("Close this circuit and open the other one."), self.on_action_open_pressed), ("save", Gtk.STOCK_SAVE, _("_Save"), "S", _("Save this circuit."), self.on_action_save_pressed), ("saveas", Gtk.STOCK_SAVE_AS, _("Save _As..."), "S", _("Save this circuit with a new name."), self.on_action_saveas_pressed), ("saveimage", None, _("Save as _image..."), None, _("Save schematics as image file."), self.on_action_save_image), ("quit", Gtk.STOCK_QUIT, _("_Quit"), "Q", _("Close this application."), self.on_action_quit_pressed), ("undo", Gtk.STOCK_UNDO, _("_Undo"), "Z", _("Undo the previous action."), self.on_action_undo_pressed), ("redo", Gtk.STOCK_REDO, _("_Redo"), "Z", _("Redo the action that you have canceled."), self.on_action_redo_pressed), ("cut", Gtk.STOCK_CUT, _("Cu_t"), "X", _("Cut selected components."), self.on_action_cut_pressed), ("copy", Gtk.STOCK_COPY, _("_Copy"), "C", _("Copy selected components."), self.on_action_copy_pressed), ("paste", Gtk.STOCK_PASTE, _("_Paste"), "V", _("Paste copied components."), self.on_action_paste_pressed), ("delete", Gtk.STOCK_DELETE, _("_Delete"), "Delete", _("Delete selected components."), self.on_action_delete_pressed), ("rotleft", None, _("Rotate _left 90"), "L", _("Rotate selected components 90 degrees."), self.on_action_rotate_left_90), ("rotright", None, _("Rotate _right 90"), "R", _("Rotate selected components -90 degrees."), self.on_action_rotate_right_90), ("fliphori", None, _("Flip _horizontally"), "H", _("Flip components horizontally."), self.on_action_flip_horizontally), ("flipvert", None, _("Flip _vertically"), "V", _("Flip components vertically."), self.on_action_flip_vertically), ("prefs", Gtk.STOCK_PREFERENCES, _("Pr_eferences"), None, _("Set preferences of this application."), self.on_action_prefs_pressed), ("contents", Gtk.STOCK_HELP, _("_Contents"), None, _("Show the help browser."), self.on_action_show_help), ("trans", None, _("Translate This Application..."), None, _("Connect to the Launchpad website to help translate this application."), self.on_action_translate_pressed), ("report", None, _("Report a Problem..."), None, _("Connect to the Launchpad website to report a problem of this application."), self.on_action_bug_pressed), ("about", Gtk.STOCK_ABOUT, _("_About"), None, _("Show about dialog."), self.on_action_about_pressed), ("file", None, _("_File")), ("edit", None, _("_Edit")), ("add", None, _("_Add")), ("simulate", None, _("_Simulate")), ("help", None, _("_Help")) ] toggle_actions = [ ("property", Gtk.STOCK_PROPERTIES, _("_Properties"), "P", _("Show property dialog."), self.on_action_property_toggled), ("components", None, _("_Components..."), "A", _("Show components window."), self.on_btn_add_components_toggled), ("net", None, _("_Net"), "E", _("Add nets to this circuit."), self.on_action_net_toggled), ("run", Gtk.STOCK_MEDIA_PLAY, _("_Run"), "F5", _("Run and simulate this circuit."), self.on_action_run_toggled), ("pause-run", Gtk.STOCK_MEDIA_PAUSE, _("_Pause"), "F6", _("Pause simulation to keep the state when components are clicked."), self.on_action_pause_run_toggled), ("diagram", None, _("_Timing Diagram"), "T", _("Show timing diagram window."), self.on_action_diagram_pressed), ] actiongroup.add_actions(actions) actiongroup.add_toggle_actions(toggle_actions) self.action_undo = actiongroup.get_action("undo") self.action_redo = actiongroup.get_action("redo") self.action_cut = actiongroup.get_action("cut") self.action_copy = actiongroup.get_action("copy") self.action_paste = actiongroup.get_action("paste") self.action_delete = actiongroup.get_action("delete") self.action_property = actiongroup.get_action("property") self.action_rotleft = actiongroup.get_action("rotleft") self.action_rotright = actiongroup.get_action("rotright") self.action_fliphori = actiongroup.get_action("fliphori") self.action_flipvert = actiongroup.get_action("flipvert") self.action_components = actiongroup.get_action("components") self.action_net = actiongroup.get_action("net") self.action_run = actiongroup.get_action("run") self.action_pause_run = actiongroup.get_action("pause-run") self.action_diagram = actiongroup.get_action("diagram") self.action_undo.set_sensitive(False) self.action_redo.set_sensitive(False) self.action_diagram.set_sensitive(False) self.action_pause_run.set_sensitive(False) uimanager = Gtk.UIManager() uimanager.add_ui_from_string(menu_xml) self.add_accel_group(uimanager.get_accel_group()) uimanager.insert_action_group(actiongroup) action = actiongroup.get_action("components") action.set_icon_name("add-component") action = actiongroup.get_action("net") action.set_icon_name("add-net") # Menu bar menubar = uimanager.get_widget("/MenuBar") box.pack_start(menubar, False, False, 0) # Tool bar toolbar = uimanager.get_widget("/ToolBar") toolbar.get_style_context().add_class(Gtk.STYLE_CLASS_PRIMARY_TOOLBAR) box.pack_start(toolbar, False, False, 0) # Draw area self.drawarea = DrawArea(self) self.drawarea.circuit = self.circuit box.pack_start(self.drawarea, False, True, 0) # Status bar self.statusbar = Gtk.Statusbar() box.pack_start(self.statusbar, False, False, 0) self.add(box) # Connect events self.connect("delete-event", self.on_window_delete) self.disable_edit_actions() def on_action_about_pressed(self, widget): self.about_dialog.run() self.about_dialog.hide() def on_action_new_pressed(self, widget): if self.check_modified(): return if self.drawarea.drag_enabled: return self.set_title("%s - %s" % (const.text_notitle, const.app_name)) self.reset_frame() self.circuit.reset_circuit() self.drawarea.nearest_component = None self.drawarea.redraw = True self.drawarea.queue_draw() def add_filters(self, dialog): filter_wxl = Gtk.FileFilter() filter_wxl.set_name(const.glcfile_text) filter_wxl.add_pattern("*.glc") dialog.add_filter(filter_wxl) filter_any = Gtk.FileFilter() filter_any.set_name(const.anyfile_text) filter_any.add_pattern("*") dialog.add_filter(filter_any) def reset_frame(self): self.comp_window.uncheck_all_buttons() # reset prop window self.statusbar.push(0, "") self.comp_window.checked_button = const.component_none self.drawarea.set_component(const.component_none) self.action_undo.set_sensitive(False) self.action_redo.set_sensitive(False) self.disable_edit_actions() self.action_diagram.set_sensitive(False) self.action_net.set_active(False) self.action_run.set_active(False) self.action_diagram.set_active(False) self.diagram_window.destroy() self.diagram_window = TimingDiagramWindow(self) def on_action_open_pressed(self, widget): if self.check_modified(): return while True: dialog = Gtk.FileChooserDialog(_("Open file"), self, Gtk.FileChooserAction.OPEN, (Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL, Gtk.STOCK_OPEN, Gtk.ResponseType.ACCEPT)) dialog.set_transient_for(self) self.add_filters(dialog) if dialog.run() == Gtk.ResponseType.ACCEPT: filepath = dialog.get_filename() else: break if not self.circuit.open_file(filepath): self.reset_frame() self.drawarea.redraw = True self.drawarea.queue_draw() break dialog.destroy() dialog.destroy() def overwrite_save(self): if self.circuit.filepath == "": return self.rename_save() else: if self.circuit.save_file(self.circuit.filepath): return self.rename_save() return False def rename_save(self): chooser = Gtk.FileChooserDialog(_("Save file"), self, Gtk.FileChooserAction.SAVE, (Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL, Gtk.STOCK_SAVE, Gtk.ResponseType.ACCEPT), flags=Gtk.DialogFlags.MODAL) chooser.set_transient_for(self) chooser.set_modal(True) self.add_filters(chooser) while True: if chooser.run() == Gtk.ResponseType.ACCEPT: filepath = chooser.get_filename() filter_name = chooser.get_filter().get_name() if filter_name == const.glcfile_text: if not "." in os.path.basename(filepath): filepath += ".glc" if os.path.exists(filepath): dialog = Gtk.MessageDialog(chooser, Gtk.DialogFlags.MODAL, Gtk.MessageType.QUESTION, Gtk.ButtonsType.YES_NO, _("Overwrite to the existing file?")) dialog.format_secondary_text(_("The file already exist. Overwrite it?")) retval = dialog.run() dialog.destroy() if retval == Gtk.ResponseType.NO: continue else: chooser.destroy() return True if not self.circuit.save_file(filepath): chooser.destroy() return False def on_action_save_pressed(self, widget): self.overwrite_save() def on_action_saveas_pressed(self, widget): self.rename_save() def on_action_quit_pressed(self, widget): event = Gdk.Event(Gdk.EventType.DELETE) self.emit("delete-event", event) def check_modified(self): if self.circuit.need_save: dialog = Gtk.MessageDialog(self, Gtk.DialogFlags.MODAL, Gtk.MessageType.QUESTION, Gtk.ButtonsType.YES_NO, _("Save the modified schematics?")) dialog.format_secondary_text(_("The schematics was modifed. Save the changes before closing?")) retval = dialog.run() dialog.destroy() if retval == Gtk.ResponseType.YES: return self.overwrite_save() elif retval == Gtk.ResponseType.NO: return False else: return True return False def on_btn_add_components_toggled(self, widget): if widget.get_active(): self.comp_window.show_all() else: self.comp_window.hide() def on_window_delete(self, widget, event): if self.check_modified(): return True Gtk.main_quit() return False def on_action_net_toggled(self, widget): if widget.get_active(): self.drawarea.netstarted = False self.comp_window.uncheck_all_buttons() widget.set_active(True) self.drawarea.set_component(const.component_net) elif self.drawarea.get_component() == const.component_net: self.drawarea.set_component(const.component_none) self.drawarea.queue_draw() def on_action_run_toggled(self, widget): if self.drawarea.drag_enabled: return if self.running_mode: self.running_mode = False self.clicked_on_pause = False if self.circuit.action_count > 0: self.action_undo.set_sensitive(True) if self.circuit.action_count < len(self.circuit.components_history) - 1: self.action_redo.set_sensitive(True) self.action_property.set_sensitive(True) self.action_components.set_sensitive(True) self.action_net.set_sensitive(True) self.action_pause_run.set_sensitive(False) self.action_pause_run.set_active(False) self.action_diagram.set_sensitive(False) self.action_diagram.set_active(False) self.diagram_window.hide() self.statusbar.push(0, "") else: self.running_mode = True self.circuit.selected_components = [] self.action_undo.set_sensitive(False) self.action_redo.set_sensitive(False) self.disable_edit_actions() self.action_property.set_sensitive(False) self.action_property.set_active(False) self.action_components.set_sensitive(False) self.action_components.set_active(False) self.action_net.set_sensitive(False) self.action_net.set_active(False) self.action_pause_run.set_sensitive(True) self.action_diagram.set_sensitive(True) self.comp_window.hide() self.prop_window.hide() self.comp_window.checked_button = const.component_none self.comp_window.uncheck_all_buttons() self.drawarea.set_component(const.component_none) self.drawarea.component_dragged = False self.drawarea.drag_enabled = False self.drawarea.rect_select_enabled = False self.circuit.analyze_connections() self.circuit.initialize_logic() if not self.circuit.analyze_logic(): self.diagram_window.diagramarea.createDiagram() self.drawarea.redraw = True self.drawarea.queue_draw() def on_action_pause_run_toggled(self, widget): if self.pause_running_mode: self.pause_running_mode = False if self.clicked_on_pause: if not self.circuit.analyze_logic(): self.diagram_window.diagramarea.createDiagram() self.drawarea.queue_draw() self.clicked_on_pause = False else: self.pause_running_mode = True def on_action_cut_pressed(self, widget): self.on_action_copy_pressed(widget) self.on_action_delete_pressed(widget) def on_action_copy_pressed(self, widget): self.clipboard.set_text(components_to_string(self.circuit.selected_components), -1) self.clipboard.store() def on_action_paste_pressed(self, widget): str_data = self.clipboard.wait_for_text() if str_data != None: tmp = string_to_components(str_data) if isinstance(tmp, str): dialog = Gtk.MessageDialog(self, 0, Gtk.MessageType.ERROR, Gtk.ButtonsType.OK, _("Error")) dialog.format_secondary_text(tmp) dialog.run() dialog.destroy() return else: pasted_components = tmp if not pasted_components: return self.comp_window.uncheck_all_buttons() self.drawarea.set_component(const.component_none) self.drawarea.set_pasted_components(pasted_components) def on_action_undo_pressed(self, widget): self.circuit.undo() if self.circuit.action_count == 0: self.action_undo.set_sensitive(False) self.action_redo.set_sensitive(True) self.disable_edit_actions() self.drawarea.redraw = True self.drawarea.queue_draw() def on_action_redo_pressed(self, widget): self.circuit.redo() self.action_undo.set_sensitive(True) if self.circuit.action_count == len(self.circuit.components_history) - 1: self.action_redo.set_sensitive(False) self.disable_edit_actions() self.drawarea.redraw = True self.drawarea.queue_draw() def on_action_delete_pressed(self, widget): self.circuit.remove_selected_component() self.drawarea.nearest_component = None self.drawarea.preselected_component = None self.circuit.push_history() self.action_undo.set_sensitive(True) self.action_redo.set_sensitive(False) self.disable_edit_actions() self.drawarea.redraw = True self.drawarea.queue_draw() def on_action_rotate_left_90(self, widget): if comp_dict[self.drawarea.get_component()] is None: self.circuit.rotate_left_selected_components() self.circuit.push_history() self.action_undo.set_sensitive(True) self.action_redo.set_sensitive(False) self.drawarea.redraw = True else: self.drawarea.rotate_left_picked_components() self.drawarea.queue_draw() def on_action_rotate_right_90(self, widget): if comp_dict[self.drawarea.get_component()] is None: self.circuit.rotate_right_selected_components() self.circuit.push_history() self.action_undo.set_sensitive(True) self.action_redo.set_sensitive(False) self.drawarea.redraw = True else: self.drawarea.rotate_right_picked_components() self.drawarea.queue_draw() def on_action_flip_horizontally(self, widget): if comp_dict[self.drawarea.get_component()] is None: self.circuit.flip_hori_selected_components() self.circuit.push_history() self.action_undo.set_sensitive(True) self.action_redo.set_sensitive(False) self.drawarea.redraw = True else: self.drawarea.flip_hori_picked_components() self.drawarea.queue_draw() def on_action_flip_vertically(self, widget): if comp_dict[self.drawarea.get_component()] is None: self.circuit.flip_vert_selected_components() self.circuit.push_history() self.action_undo.set_sensitive(True) self.action_redo.set_sensitive(False) self.drawarea.redraw = True else: self.drawarea.flip_vert_picked_components() self.drawarea.queue_draw() def on_action_property_toggled(self, widget): if widget.get_active(): self.drawarea.set_selected_component_to_prop_window() self.prop_window.show_all() else: self.prop_window.hide() def on_action_show_help(self, widget): Gtk.show_uri(None, const.help, Gdk.CURRENT_TIME) def on_action_translate_pressed(self, widget): webbrowser.open(const.devel_translate) def on_action_bug_pressed(self, widget): webbrowser.open(const.devel_bug) def on_action_diagram_pressed(self, widget): if widget.get_active(): self.diagram_window.show_all() else: self.diagram_window.hide() def on_action_save_image(self, widget): save_schematics_as_image(self.circuit, self.running_mode, self) def on_action_prefs_pressed(self, widget): self.pref_window.update_dialog() if self.pref_window.run() == Gtk.ResponseType.APPLY: self.pref_window.apply_settings() Preference.save_settings() self.drawarea.redraw = True self.drawarea.queue_draw() self.pref_window.hide() def on_comp_checked(self, widget, comp_name): if comp_dict[comp_name]: self.action_rotleft.set_sensitive(True) self.action_rotright.set_sensitive(True) self.action_fliphori.set_sensitive(True) self.action_flipvert.set_sensitive(True) elif not self.circuit.selected_components: self.action_rotleft.set_sensitive(False) self.action_rotright.set_sensitive(False) self.action_fliphori.set_sensitive(False) self.action_flipvert.set_sensitive(False) if comp_name != const.component_none: self.action_net.set_active(False) elif self.drawarea.get_component() == const.component_net: return self.drawarea.set_component(comp_name) self.drawarea.queue_draw() def on_compwindow_hidden(self, widget): self.action_components.set_active(False) def on_propwindow_hidden(self, widget): self.action_property.set_active(False) def on_property_changed(self, widget): self.drawarea.redraw = True self.drawarea.queue_draw() self.circuit.push_history() self.action_undo.set_sensitive(True) def on_circuit_title_changed(self, circuit, title): self.set_title(title) def on_circuit_message_changed(self, circuit, message): self.statusbar.push(0, message) def on_circuit_item_unselected(self, circuit): self.prop_window.setComponent(None) def on_circuit_alert(self, circuit, message): dialog = Gtk.MessageDialog(self, 0, Gtk.MessageType.ERROR, Gtk.ButtonsType.OK, _("Error")) dialog.format_secondary_text(message) dialog.run() dialog.destroy() def disable_edit_actions(self): self.action_cut.set_sensitive(False) self.action_copy.set_sensitive(False) self.action_delete.set_sensitive(False) if comp_dict[self.drawarea.get_component()] is None: self.action_rotleft.set_sensitive(False) self.action_rotright.set_sensitive(False) self.action_fliphori.set_sensitive(False) self.action_flipvert.set_sensitive(False) glogic-2.6/glogic/Exporter.py0000644000175000017500000002123112044453531013174 00000000000000# -*- coding: utf-8; indent-tabs-mode: t; tab-width: 4 -*- import cairo, os from glogic import const from glogic.Utils import cairo_paths from glogic import Preference from glogic.Utils import get_components_rect from gi.repository import Gtk, Pango, PangoCairo from gettext import gettext as _ def add_image_filters(dialog): filter_png = Gtk.FileFilter() filter_png.set_name(const.pngfile_text) filter_png.add_pattern("*.png") dialog.add_filter(filter_png) filter_svg = Gtk.FileFilter() filter_svg.set_name(const.svgfile_text) filter_svg.add_pattern("*.svg") dialog.add_filter(filter_svg) filter_pdf = Gtk.FileFilter() filter_pdf.set_name(const.pdffile_text) filter_pdf.add_pattern("*.pdf") dialog.add_filter(filter_pdf) filter_ps = Gtk.FileFilter() filter_ps.set_name(const.psfile_text) filter_ps.add_pattern("*.ps") dialog.add_filter(filter_ps) def save_image_dialog(parent): chooser = Gtk.FileChooserDialog(_("Save as image"), parent, Gtk.FileChooserAction.SAVE, (Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL, Gtk.STOCK_SAVE, Gtk.ResponseType.ACCEPT), flags=Gtk.DialogFlags.MODAL) chooser.set_transient_for(parent) chooser.set_modal(True) add_image_filters(chooser) while True: if chooser.run() == Gtk.ResponseType.ACCEPT: filepath = chooser.get_filename() filter_name = chooser.get_filter().get_name() if filter_name == const.pngfile_text: if not "." in os.path.basename(filepath): filepath += ".png" elif filter_name == const.svgfile_text: if not "." in os.path.basename(filepath): filepath += ".svg" elif filter_name == const.pdffile_text: if not "." in os.path.basename(filepath): filepath += ".pdf" elif filter_name == const.psfile_text: if not "." in os.path.basename(filepath): filepath += ".ps" else: chooser.destroy() return None if os.path.exists(filepath): dialog = Gtk.MessageDialog(chooser, Gtk.DialogFlags.MODAL, Gtk.MessageType.QUESTION, Gtk.ButtonsType.YES_NO, _("Overwrite to the existing file?")) dialog.format_secondary_text(_("The file already exist. Overwrite it?")) retval = dialog.run() dialog.destroy() if retval == Gtk.ResponseType.NO: continue else: chooser.destroy() return None break chooser.destroy() return (filepath, filter_name) def save_schematics_as_image(circuit, running, parent): choosedata = save_image_dialog(parent) if choosedata is None: return filepath = choosedata[0] filter_name = choosedata[1] settingsdialog = SaveSchematicsImageDialog(running, parent) if settingsdialog.run() == Gtk.ResponseType.CANCEL: settingsdialog.destroy() return scale = settingsdialog.scale_spin.get_value() mergin = settingsdialog.mergin_spin.get_value() drawvoltage = settingsdialog.voltstate_check.get_active() if running else False crect = get_components_rect(circuit.components) settingsdialog.destroy() width = (crect[2] - crect[0] + 1) * scale + mergin * 2 + 1 height = (crect[3] - crect[1] + 1) * scale + mergin * 2 + 1 if filter_name == const.pngfile_text: surface = cairo.ImageSurface(cairo.FORMAT_ARGB32, int(width), int(height)) elif filter_name == const.svgfile_text: surface = cairo.SVGSurface(filepath, width, height) elif filter_name == const.pdffile_text: surface = cairo.PDFSurface(filepath, width, height) elif filter_name == const.psfile_text: surface = cairo.PSSurface(filepath, width, height) cr = cairo.Context(surface) cr.translate(mergin, mergin) cr.scale(scale, scale) cr.translate(int(-crect[0]), int(-crect[1])) draw_schematics_for_file(cr, circuit, drawvoltage) if filter_name == const.pngfile_text: surface.write_to_png(filepath) elif filter_name == const.svgfile_text: surface.finish() elif filter_name == const.pdffile_text: surface.finish() elif filter_name == const.psfile_text: surface.finish() settingsdialog.destroy() def save_timingdiagram_as_image(diagramarea, parent): choosedata = save_image_dialog(parent) if choosedata is None: return filepath = choosedata[0] filter_name = choosedata[1] settingsdialog = SaveTimingDiagramDialog(parent) if settingsdialog.run() == Gtk.ResponseType.CANCEL: settingsdialog.destroy() return scale = settingsdialog.scale_spin.get_value() settingsdialog.destroy() width = (diagramarea.diagram_width + diagramarea.name_width) * scale height = diagramarea.img_height * scale if filter_name == const.pngfile_text: surface = cairo.ImageSurface(cairo.FORMAT_RGB24, int(width), int(height)) elif filter_name == const.svgfile_text: surface = cairo.SVGSurface(filepath, width, height) elif filter_name == const.pdffile_text: surface = cairo.PDFSurface(filepath, width, height) elif filter_name == const.psfile_text: surface = cairo.PSSurface(filepath, width, height) cr = cairo.Context(surface) cr.set_line_width(1.0) cr.scale(scale, scale) diagramarea.draw_names(cr) cr.translate(diagramarea.name_width, 0) diagramarea.draw_diagrams(cr) if filter_name == const.pngfile_text: surface.write_to_png(filepath) elif filter_name == const.svgfile_text: surface.finish() elif filter_name == const.pdffile_text: surface.finish() elif filter_name == const.psfile_text: surface.finish() settingsdialog.destroy() def draw_schematics_for_file(cr, circuit, withlevels): cr.translate(0.5, 0.5) matrix = cr.get_matrix() cr.set_line_width(1.0) layout = PangoCairo.create_layout(cr) layout.set_font_description(Preference.drawing_font) circuit.analyze_connections() if withlevels: circuit.set_netlevels() # Draw net for c in circuit.components: if c[0] == const.component_net: if withlevels: for i,net in enumerate(circuit.net_connections): if (c[1], c[2]) in net: if circuit.net_levels[i] == 1: cr.set_source(Preference.highlevel_color) elif circuit.net_levels[i] == 0: cr.set_source(Preference.lowlevel_color) else: cr.set_source(Preference.net_color_running) else: cr.set_source(Preference.net_color_running) cairo_paths(cr, (c[1], c[2]), (c[3], c[4])) cr.stroke() # Draw component for c in circuit.components: if c[0] != const.component_net: cr.translate(c[1].pos_x, c[1].pos_y) m = cairo.Matrix(xx = c[1].matrix[0], xy = c[1].matrix[1], yx = c[1].matrix[2], yy = c[1].matrix[3]) cr.set_matrix(m.multiply(cr.get_matrix())) cr.set_source(Preference.component_color_running) c[1].drawComponent(cr, layout) if(withlevels): c[1].drawComponentRunOverlap(cr, layout) else: c[1].drawComponentEditOverlap(cr, layout) cr.set_matrix(matrix) # Draw terminal of nets cr.set_source(Preference.terminal_color_running) for c in circuit.components: if c[0] == const.component_net: if not (c[1], c[2]) in circuit.net_no_dot: cr.rectangle(c[1]-1.5, c[2]-1.5, 3, 3) elif not (c[3], c[4]) in circuit.net_no_dot: cr.rectangle(c[3]-1.5, c[4]-1.5, 3, 3) cr.fill() class SaveSchematicsImageDialog(Gtk.Dialog): def __init__(self, running, parent): Gtk.Dialog.__init__(self, _("Save as image"), parent, 0, (Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL, Gtk.STOCK_OK, Gtk.ResponseType.OK)) vbox = Gtk.Box(orientation=Gtk.Orientation.VERTICAL) hbox = Gtk.Box() hbox.pack_start(Gtk.Label(_("Scale:")), False, False, 3) self.scale_spin = Gtk.SpinButton() self.scale_spin.set_increments(1, 10) self.scale_spin.set_range(0.1, 10) self.scale_spin.set_digits(2) self.scale_spin.set_value(1.0) hbox.pack_start(self.scale_spin, False, False, 3) vbox.pack_start(hbox, False, False, 3) hbox = Gtk.Box() hbox.pack_start(Gtk.Label(_("Mergin:")), False, False, 3) self.mergin_spin = Gtk.SpinButton() self.mergin_spin.set_increments(1, 10) self.mergin_spin.set_range(0, 100) self.mergin_spin.set_value(5) hbox.pack_start(self.mergin_spin, False, False, 3) vbox.pack_start(hbox, False, False, 3) if running: hbox = Gtk.Box() hbox.pack_start(Gtk.Label(_("Draw voltage states:")), False, False, 3) self.voltstate_check = Gtk.CheckButton("") hbox.pack_start(self.voltstate_check, False, False, 3) vbox.pack_start(hbox, False, False, 3) box = self.get_content_area() box.add(vbox) self.show_all() class SaveTimingDiagramDialog(Gtk.Dialog): def __init__(self, parent): Gtk.Dialog.__init__(self, _("Save as image"), parent, 0, (Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL, Gtk.STOCK_OK, Gtk.ResponseType.OK)) vbox = Gtk.Box(orientation=Gtk.Orientation.VERTICAL) hbox = Gtk.Box() hbox.pack_start(Gtk.Label(_("Scale:")), False, False, 3) self.scale_spin = Gtk.SpinButton() self.scale_spin.set_increments(1, 10) self.scale_spin.set_range(0.1, 10) self.scale_spin.set_digits(2) self.scale_spin.set_value(1.0) hbox.pack_start(self.scale_spin, False, False, 3) vbox.pack_start(hbox, False, False, 3) box = self.get_content_area() box.add(vbox) self.show_all() glogic-2.6/glogic/__init__.py0000644000175000017500000000000012036254747013123 00000000000000glogic-2.6/glogic/Utils.py0000644000175000017500000000676212043132160012467 00000000000000# -*- coding: utf-8; indent-tabs-mode: t; tab-width: 4 -*- from gi.repository import Pango, PangoCairo from glogic import const def cairo_paths(cr, *points): cr.move_to(points[0][0], points[0][1]) for p in points[1:]: cr.line_to(p[0], p[1]) def cairo_bezier(cr, *points): cr.move_to(points[0], points[1]) cr.curve_to(points[2], points[3], points[4], points[5], points[6], points[7]) def cairo_draw_text(cr, layout, text, x, y, xalign=0.0, yalign=0.0): m = cr.get_matrix() cr.translate(x, y) if m[0] < 0: cr.scale(-1, 1) xalign = 1.0 - xalign if m[3] < 0: cr.scale(1, -1) yalign = 1.0 - yalign if m[1] * m[2] > 0: cr.scale(-1, 1) xalign = 1.0 - xalign layout.set_text(text, -1) (w, h) = layout.get_size() cr.translate(-w / Pango.SCALE * xalign, -h / Pango.SCALE * yalign) PangoCairo.update_layout(cr, layout) PangoCairo.show_layout(cr, layout) cr.set_matrix(m) def encode_text(text): t_text = "" for c in text: if c == "\\": t_text += "\\\\" elif c == ",": t_text += "\\c" elif c == "=": t_text += "\\e" elif c == ":": t_text += "\\s" else: t_text += c return t_text def decode_text(text): t_text = "" esc = False for c in text: if esc: if c == "\\": t_text += "\\" elif c == "c": t_text += "," elif c == "e": t_text += "=" elif c == "s": t_text += ":" esc = False elif c == "\\": esc = True else: t_text += c return t_text def stack_with_tphl_lh(time, current, stacks, newdatas, tp_hl, tp_lh): for i, dat in enumerate(current): if stacks[i] and newdatas[i] == stacks[i][-1][1]: continue if newdatas[i] == dat: stacks[i] = [] else: if dat: stacks[i] = [[time + tp_hl, newdatas[i]]] else: stacks[i] = [[time + tp_lh, newdatas[i]]] def get_components_rect(components): if components: x_positions = [] y_positions = [] for c in components: if c[0] == const.component_net: x_positions.append(c[1]) x_positions.append(c[3]) y_positions.append(c[2]) y_positions.append(c[4]) else: x_positions.append(c[1].pos_x + c[1].rot_comp_rect[0]) x_positions.append(c[1].pos_x + c[1].rot_comp_rect[2]) y_positions.append(c[1].pos_y + c[1].rot_comp_rect[1]) y_positions.append(c[1].pos_y + c[1].rot_comp_rect[3]) return [min(x_positions), min(y_positions), max(x_positions), max(y_positions)] def rotate_left_90(x, y, orig_x, orig_y): return (y - orig_y + orig_x, -x + orig_x + orig_y) def rotate_right_90(x, y, orig_x, orig_y): return (-y + orig_y + orig_x, x - orig_x + orig_y) def multiply_matrix(X, Y): return (X[0] * Y[0] + X[1] * Y[2], X[0] * Y[1] + X[1] * Y[3], X[2] * Y[0] + X[3] * Y[2], X[2] * Y[1] + X[3] * Y[3]) def inv_matrix(m): det = m[0] * m[3] - m[1] * m[2] return (m[3] / det, -m[1] / det, -m[2] / det, m[0] / det) def fit_components(components, width, height): rect = get_components_rect(components) if rect[0] < 0: for c in components: if c[0] == const.component_net: c[1] -= rect[0] c[3] -= rect[0] else: c[1].pos_x -= rect[0] elif rect[2] > width: for c in components: if c[0] == const.component_net: c[1] -= rect[2] - width c[3] -= rect[2] - width else: c[1].pos_x -= rect[2] - width if rect[1] < 0: for c in components: if c[0] == const.component_net: c[2] -= rect[1] c[4] -= rect[1] else: c[1].pos_y -= rect[1] elif rect[3] > height: for c in components: if c[0] == const.component_net: c[2] -= rect[3] - height c[4] -= rect[3] - height else: c[1].pos_y -= rect[3] - height glogic-2.6/glogic/CircuitManager.py0000644000175000017500000004367512044140162014272 00000000000000# -*- coding: utf-8; indent-tabs-mode: t; tab-width: 4 -*- import copy, os, gettext, pickle from gi.repository import Gtk, Gdk, GObject from glogic import const, Preference from glogic.Utils import * from glogic.Components import * from gettext import gettext as _ from glogic.ComponentConverter import components_to_string, string_to_components class CircuitManager(GObject.GObject): __gsignals__ = { 'currenttime-changed': (GObject.SIGNAL_RUN_FIRST, None, (float,)), 'title-changed': (GObject.SIGNAL_RUN_FIRST, None, (str,)), 'message-changed': (GObject.SIGNAL_RUN_FIRST, None, (str,)), 'item-unselected': (GObject.SIGNAL_RUN_FIRST, None, ()), 'alert': (GObject.SIGNAL_RUN_FIRST, None, (str,)) } def __init__(self): GObject.GObject.__init__(self) self.components = [] self.selected_components = [] self.net_connections = [] self.net_levels = [] self.net_no_dot = [] self.components_history = [[]] self.action_count = 0 self.save_point = 0 self.current_time = 0.0 self.need_save = False self.simple_change = True self.filepath = "" self.probe_levels_history = [] self.component_state_history = [] def save_file(self, filepath): try: fp = open(filepath, mode="w", encoding="utf-8") except TypeError: import codecs fp = codecs.open(filepath, mode="w", encoding="utf-8") except IOError: return True fp.write(components_to_string(self.components)) fp.close() self.filepath = filepath self.need_save = False self.simple_change = True self.save_point = self.action_count self.emit("title-changed", "%s - %s" % (os.path.basename(filepath), const.app_name)) return False def open_file(self, filepath): try: fp = open(filepath, mode="r", encoding="utf-8") except TypeError: import codecs fp = codecs.open(filepath, mode="r", encoding="utf-8") except IOError: return True tmp = string_to_components(fp.read()) if isinstance(tmp, str): self.emit("alert", tmp) fp.close() return True else: self.reset_circuit() self.components = tmp self.components_history = [copy.deepcopy(self.components)] self.filepath = filepath self.emit("title-changed", "%s - %s" % (os.path.basename(filepath), const.app_name)) fp.close() return False def analyze_connections(self): # Analyze connections self.net_connections = [] self.net_no_dot = [] not_added = self.components[:] net_not_empty = True while True: connection = [] changed_flag = True net_not_empty = False while changed_flag: changed_flag = False remlist = [] for c in not_added: if c[0] == const.component_net: net_not_empty = True if len(connection) == 0: connection.append((c[1], c[2])) connection.append((c[3], c[4])) remlist.append(c) else: if (c[1], c[2]) in connection: if not (c[3], c[4]) in connection: connection.append((c[3], c[4])) changed_flag = True remlist.append(c) elif (c[3], c[4]) in connection: if not (c[1], c[2]) in connection: connection.append((c[1], c[2])) changed_flag = True remlist.append(c) for c in remlist: not_added.remove(c) if not net_not_empty: break for con_p in connection: cnt = 0 for c in self.components: if c[0] == const.component_net: if con_p[0] == c[1] and con_p[1] == c[2]: cnt += 1 elif con_p[0] == c[3] and con_p[1] == c[4]: cnt += 1 else: for p in c[1].rot_input_pins + c[1].rot_output_pins: if con_p[0] == c[1].pos_x + p[0] and con_p[1] == c[1].pos_y + p[1]: cnt += 1 if cnt <= 2: self.net_no_dot.append(con_p) self.net_connections.append(connection) for c in self.components: if c[0] != const.component_net: for p in c[1].rot_input_pins + c[1].rot_output_pins: found = False for net in self.net_connections: if (c[1].pos_x + p[0], c[1].pos_y + p[1]) in net: found = True break if not found: self.net_connections.append([(c[1].pos_x + p[0], c[1].pos_y + p[1])]) def split_nets(self, x, y): # Split nets on the specified point spl_list = [] for c in self.components: if c[0] == const.component_net: if (y - c[2]) * (c[3] - c[1]) == (x - c[1]) * (c[4] - c[2]): if (c[1] <= x <= c[3] and c[2] <= y <= c[4]) or (c[3] <= x <= c[1] and c[4] <= y <= c[2]): spl_list.append(c) for c in spl_list: self.components.remove(c) net_selected = False if c in self.selected_components: self.selected_components.remove(c) net_selected = True if x != c[1] or y != c[2]: if not [const.component_net, c[1], c[2], x, y] in self.components and not [const.component_net, x, y, c[1], c[2]] in self.components: component_data = [const.component_net, c[1], c[2], x, y] self.components.append(component_data) if net_selected: self.selected_components.append(component_data) if x != c[3] or y != c[4]: if not [const.component_net, c[3], c[4], x, y] in self.components and not [const.component_net, x, y, c[3], c[4]] in self.components: component_data = [const.component_net, x, y, c[3], c[4]] self.components.append(component_data) if net_selected: self.selected_components.append(component_data) def connect_nets(self, x, y, lock_selected = False): nets = [] for c in self.components: if c[0] == const.component_net: if c[1] == x and c[2] == y or c[3] == x and c[4] == y: if not (lock_selected and c in self.selected_components): nets.append(c) else: # Cannot connect if there are terminals of components for p in c[1].rot_input_pins + c[1].rot_output_pins: if c[1].pos_x + p[0] == x and c[1].pos_y + p[1] == y: return if len(nets) == 2: if (nets[0][1] - nets[0][3]) * (nets[1][2] - nets[1][4]) == (nets[1][1] - nets[1][3]) * (nets[0][2] - nets[0][4]): if nets[0][1] == x and nets[0][2] == y: if nets[1][1] == x and nets[1][2] == y: if (nets[0][1] - nets[0][3]) * (nets[1][1] - nets[1][3]) <= 0 and (nets[0][2] - nets[0][4]) * (nets[1][2] - nets[1][4]) <= 0: component_data = [const.component_net, nets[0][3], nets[0][4], nets[1][3], nets[1][4]] self.components.append(component_data) self.components.remove(nets[0]) self.components.remove(nets[1]) net_selected = False if nets[0] in self.selected_components: self.selected_components.remove(nets[0]) net_selected = True if nets[1] in self.selected_components: self.selected_components.remove(nets[1]) net_selected = True if net_selected: self.selected_components.append(component_data) else: if (nets[0][1] - nets[0][3]) * (nets[1][1] - nets[1][3]) >= 0 and (nets[0][2] - nets[0][4]) * (nets[1][2] - nets[1][4]) >= 0: component_data = [const.component_net, nets[0][3], nets[0][4], nets[1][1], nets[1][2]] self.components.append(component_data) self.components.remove(nets[0]) self.components.remove(nets[1]) net_selected = False if nets[0] in self.selected_components: self.selected_components.remove(nets[0]) net_selected = True if nets[1] in self.selected_components: self.selected_components.remove(nets[1]) net_selected = True if net_selected: self.selected_components.append(component_data) else: if nets[1][1] == x and nets[1][2] == y: if (nets[0][1] - nets[0][3]) * (nets[1][1] - nets[1][3]) >= 0 and (nets[0][2] - nets[0][4]) * (nets[1][2] - nets[1][4]) >= 0: component_data = [const.component_net, nets[0][1], nets[0][2], nets[1][3], nets[1][4]] self.components.append(component_data) self.components.remove(nets[0]) self.components.remove(nets[1]) net_selected = False if nets[0] in self.selected_components: self.selected_components.remove(nets[0]) net_selected = True if nets[1] in self.selected_components: self.selected_components.remove(nets[1]) net_selected = True if net_selected: self.selected_components.append(component_data) else: if (nets[0][1] - nets[0][3]) * (nets[1][1] - nets[1][3]) <= 0 and (nets[0][2] - nets[0][4]) * (nets[1][2] - nets[1][4]) <= 0: component_data = [const.component_net, nets[0][1], nets[0][2], nets[1][1], nets[1][2]] self.components.append(component_data) self.components.remove(nets[0]) self.components.remove(nets[1]) net_selected = False if nets[0] in self.selected_components: self.selected_components.remove(nets[0]) net_selected = True if nets[1] in self.selected_components: self.selected_components.remove(nets[1]) net_selected = True if net_selected: self.selected_components.append(component_data) def set_netlevels(self): self.net_levels = [-1]*len(self.net_connections) for c in self.components: if c[0] != const.component_net: for i,p in enumerate(c[1].rot_output_pins): for j,net in enumerate(self.net_connections): if (c[1].pos_x + p[0], c[1].pos_y + p[1]) in net: if self.net_levels[j] != -1 and self.net_levels[j] != c[1].output_level[i]: self.emit("message-changed", _("Output port is short circuit!")) return True self.net_levels[j] = c[1].output_level[i] return False def initialize_logic(self): self.probe_levels_history = [] self.component_state_history = [] self.current_time = 0.0 for c in self.components: if c[0] != const.component_net: c[1].initialize() def revert_state(self): if self.component_state_history: t = 0 for i, comp_state in reversed(list(enumerate(self.component_state_history))): if comp_state[0] <= self.current_time: t = i break i = 2 for c in self.components: if c[0] != const.component_net: c[1].input_level = self.component_state_history[t][i][0] c[1].output_level = self.component_state_history[t][i][1] c[1].output_stack = self.component_state_history[t][i][2] c[1].store = self.component_state_history[t][i][3] i += 1 self.net_levels = self.component_state_history[t][1] self.emit("currenttime-changed", self.current_time) def analyze_logic(self): counter = 0 stop_time = Preference.max_calc_duration max_iters = Preference.max_calc_iters if self.component_state_history: t = 0 for i, comp_state in reversed(list(enumerate(self.component_state_history))): if comp_state[0] <= self.current_time: t = i break self.current_time = self.component_state_history[t][0] self.component_state_history = self.component_state_history[:t] self.probe_levels_history = self.probe_levels_history[:t] while self.current_time < stop_time: net_levels_history = [] while True: if self.set_netlevels(): return True for c in self.components: if c[0] != const.component_net: input_datas = [] for p in c[1].rot_input_pins: for j, net in enumerate(self.net_connections): if (c[1].pos_x + p[0], c[1].pos_y + p[1]) in net: if self.net_levels[j] == -1: self.emit("message-changed", _("Input port is open circuit!")) return True input_datas.append(self.net_levels[j]) c[1].calculate(input_datas, self.current_time) c[1].input_level = input_datas[:] for i, p in enumerate(c[1].rot_output_pins): if c[1].output_stack[i]: if c[1].output_stack[i][0][0] == self.current_time: c[1].output_level[i] = c[1].output_stack[i].pop(0)[1] elif c[1].output_level[i] == c[1].output_stack[i][0][1]: c[1].output_stack[i].pop(0) if self.net_levels in net_levels_history[:-1]: if self.net_levels == net_levels_history[len(net_levels_history) - 1]: self.emit("message-changed", "") break else: self.emit("message-changed", _("This circuit oscillates on infinite frequency!")) return True net_levels_history.append(self.net_levels) if counter >= max_iters: self.emit("message-changed", _("This logic is complexity! (iters > %d)") % max_iters) return True counter += 1 probe_levels = [self.current_time] for c in self.components: if c[0] == const.component_probe: probe_levels.append(c[1].input_level[0]) self.probe_levels_history.append(probe_levels) comp_state = [self.current_time, self.net_levels[:]] for c in self.components: if c[0] != const.component_net: comp_state.append((c[1].input_level[:], c[1].output_level[:], copy.deepcopy(c[1].output_stack), copy.deepcopy(c[1].store))) self.component_state_history.append(comp_state) tmptime = self.current_time timelist = [] for c in self.components: if c[0] != const.component_net: for s in c[1].output_stack: if s and s[0][0] != self.current_time: timelist.append(s[0][0]) if timelist: self.current_time = min(timelist) if tmptime == self.current_time: break for c in self.components: if c[0] != const.component_net: for i, s in enumerate(c[1].output_stack): if s and s[0][0] == self.current_time: c[1].output_level[i] = s.pop(0)[1] self.emit("currenttime-changed", self.current_time) return False def remove_selected_component(self): for c in self.selected_components: self.components.remove(c) for c in self.selected_components: if c[0] == const.component_net: self.connect_nets(c[1], c[2]) self.connect_nets(c[3], c[4]) else: for p in c[1].rot_input_pins + c[1].rot_output_pins: self.connect_nets(c[1].pos_x + p[0], c[1].pos_y + p[1]) self.selected_components = [] self.emit("item-unselected") def reset_circuit(self): self.selected_components = [] self.emit("item-unselected") self.components = [] self.components_history = [[]] self.action_count = 0 self.save_point = 0 self.need_save = False self.simple_change = True self.filepath = "" def push_history(self): self.action_count += 1 if self.action_count < len(self.components_history): self.components_history = self.components_history[0:self.action_count] if self.action_count <= self.save_point: self.simple_change = False self.components_history.append(copy.deepcopy(self.components)) self.need_save = True self.emit("title-changed", "%s [%s] - %s" % (os.path.basename(self.filepath) if self.filepath != "" else const.text_notitle, const.text_modified, const.app_name)) def undo(self): self.action_count -= 1 if self.action_count >= 0: self.components = copy.deepcopy(self.components_history[self.action_count]) if self.save_point == self.action_count and self.simple_change: self.need_save = False self.emit("title-changed", "%s - %s" % (os.path.basename(self.filepath) if self.filepath != "" else const.text_notitle, const.app_name)) else: self.need_save = True self.emit("title-changed", "%s [%s] - %s" % ((os.path.basename(self.filepath) if self.filepath != "" else const.text_notitle), const.text_modified, const.app_name)) self.selected_components = [] self.emit("item-unselected") def redo(self): self.action_count += 1 if self.action_count < len(self.components_history): self.components = copy.deepcopy(self.components_history[self.action_count]) if self.save_point == self.action_count and self.simple_change: self.need_save = False self.emit("title-changed", "%s - %s" % (os.path.basename(self.filepath) if self.filepath != "" else const.text_notitle, const.app_name)) else: self.need_save = True self.emit("title-changed", "%s [%s] - %s" % ((os.path.basename(self.filepath) if self.filepath != "" else const.text_notitle), const.text_modified, const.app_name)) self.selected_components = [] self.emit("item-unselected") def rotate_left_selected_components(self): if not self.selected_components: return rect = get_components_rect(self.selected_components) if rect[2] - rect[0] > 1080: return center_x = (rect[0] + rect[2]) / 2 center_y = (rect[1] + rect[3]) / 2 center_x = int(center_x / 10) * 10 center_y = int(center_y / 10) * 10 for c in self.selected_components: if c[0] == const.component_net: (c[1], c[2]) = rotate_left_90(c[1], c[2], center_x, center_y) (c[3], c[4]) = rotate_left_90(c[3], c[4], center_x, center_y) else: (c[1].pos_x, c[1].pos_y) = rotate_left_90(c[1].pos_x, c[1].pos_y, center_x, center_y) c[1].matrix = multiply_matrix((0, 1, -1, 0), c[1].matrix) c[1].set_rot_props() fit_components(self.selected_components, 1920, 1080) def rotate_right_selected_components(self): if not self.selected_components: return rect = get_components_rect(self.selected_components) if rect[2] - rect[0] > 1080: return center_x = (rect[0] + rect[2]) / 2 center_y = (rect[1] + rect[3]) / 2 center_x = int(center_x / 10) * 10 center_y = int(center_y / 10) * 10 for c in self.selected_components: if c[0] == const.component_net: (c[1], c[2]) = rotate_right_90(c[1], c[2], center_x, center_y) (c[3], c[4]) = rotate_right_90(c[3], c[4], center_x, center_y) else: (c[1].pos_x, c[1].pos_y) = rotate_right_90(c[1].pos_x, c[1].pos_y, center_x, center_y) c[1].matrix = multiply_matrix((0, -1, 1, 0), c[1].matrix) c[1].set_rot_props() fit_components(self.selected_components, 1920, 1080) def flip_hori_selected_components(self): if not self.selected_components: return rect = get_components_rect(self.selected_components) center_x = (rect[0] + rect[2]) / 2 for c in self.selected_components: if c[0] == const.component_net: c[1] = -c[1] + center_x * 2 c[3] = -c[3] + center_x * 2 else: c[1].pos_x = -c[1].pos_x + center_x * 2 c[1].matrix = multiply_matrix((-1, 0, 0, 1), c[1].matrix) c[1].set_rot_props() def flip_vert_selected_components(self): if not self.selected_components: return rect = get_components_rect(self.selected_components) center_y = (rect[1] + rect[3]) / 2 for c in self.selected_components: if c[0] == const.component_net: c[2] = -c[2] + center_y * 2 c[4] = -c[4] + center_y * 2 else: c[1].pos_y = -c[1].pos_y + center_y * 2 c[1].matrix = multiply_matrix((1, 0, 0, -1), c[1].matrix) c[1].set_rot_props() glogic-2.6/glogic/Components/0000775000175000017500000000000012044454515013225 500000000000000glogic-2.6/glogic/Components/Standard.py0000644000175000017500000006520112044452774015266 00000000000000# -*- coding: utf-8; indent-tabs-mode: t; tab-width: 4 -*- import math from gettext import gettext as _ from glogic import const from glogic.Components.SystemComponents import BaseComponent from glogic import Preference from glogic.Utils import * class NOT(BaseComponent): def __init__(self, *args, **kwds): BaseComponent.__init__(self, *args, **kwds) self.description = _("NOT") self.comp_rect = [10, -40, 90, 0] self.input_pins = [(10, -20)] self.output_pins = [(90, -20)] self.input_pins_dir = [const.direction_E] self.output_pins_dir = [const.direction_W] self.input_level = [False] self.output_level = [True] self.tp_hl = 0.0 self.tp_lh = 0.0 self.prop_names = ["tphl", "tplh"] self.properties.append((_("Propagation delay:"), None, "")) self.properties.append((_("tPHL:"), (const.property_float, 0, 1000, 3, 100), "µs")) self.values.append(0) self.properties.append((_("tPLH:"), (const.property_float, 0, 1000, 3, 100), "µs")) self.values.append(0) def propertyChanged(self, prop): self.tp_hl = prop[0] * 0.000001 self.tp_lh = prop[1] * 0.000001 return False def drawComponent(self, cr, layout): if Preference.symbol_type == 0: cairo_paths(cr, (30, -35), (30, -5), (60, -20)) elif Preference.symbol_type == 1: cr.rectangle(30, -40, 30, 40) cr.close_path() cr.stroke() cr.arc(66, - 20, 6, 0, 2 * math.pi) cr.stroke() if Preference.symbol_type == 1: cairo_draw_text(cr, layout, "1", 45, -40, 0.5, 0.0) cr.fill() def drawComponentEditOverlap(self, cr, layout): cairo_paths(cr, (10, -20), (30, -20)) cairo_paths(cr, (72, -20), (90, -20)) cr.stroke() def drawComponentRunOverlap(self, cr, layout): if self.input_level[0]: cr.set_source(Preference.highlevel_color) else: cr.set_source(Preference.lowlevel_color) cairo_paths(cr, (10, -20), (30, -20)) cr.stroke() if self.output_level[0]: cr.set_source(Preference.highlevel_color) else: cr.set_source(Preference.lowlevel_color) cairo_paths(cr, (72, -20), (90, -20)) cr.stroke() def isMouseOvered(self, x, y): if self.pos_x + 13 <= x <= self.pos_x + 87 and self.pos_y - 37 <= y <= self.pos_y - 3: return True return False def calculate(self, input_datas, time): new_output = not input_datas[0] if new_output != self.output_level[0]: if self.output_level[0]: self.output_stack = [[[time + self.tp_hl, new_output]]] else: self.output_stack = [[[time + self.tp_lh, new_output]]] else: self.output_stack = [[]] class AND(BaseComponent): def __init__(self, *args, **kwds): BaseComponent.__init__(self, *args, **kwds) self.description = _("AND") self.comp_rect = [10, -40, 100, 0] self.input_pins = [(10, -30), (10, -10)] self.output_pins = [(100, -20)] self.input_pins_dir = [const.direction_E, const.direction_E] self.output_pins_dir = [const.direction_W] self.input_level = [False, False] self.output_level = [False] self.tp_hl = 0.0 self.tp_lh = 0.0 self.prop_names = ["inputs", "tphl", "tplh"] self.properties.append((_("Input pins:"), (const.property_float, 2, 3, 0, 100), "")) self.values.append(2) self.properties.append((_("Propagation delay:"), None, "")) self.properties.append((_("tPHL:"), (const.property_float, 0, 1000, 3, 100), "µs")) self.values.append(0) self.properties.append((_("tPLH:"), (const.property_float, 0, 1000, 3, 100), "µs")) self.values.append(0) def propertyChanged(self, prop): self.input_pins_dir = [const.direction_E, const.direction_E] self.input_level = [False, False] self.input_pins = [(10, -30), (10, -10)] if prop[0] == 3: self.input_pins_dir.append(const.direction_E) self.input_level.append(False) self.input_pins.append((10, -20)) self.tp_hl = prop[1] * 0.000001 self.tp_lh = prop[2] * 0.000001 return False def drawComponent(self, cr, layout): if Preference.symbol_type == 0: cairo_paths(cr, (60, 0), (30, 0), (30, -40), (60, -40)) cr.arc(60, -20, 20, -0.5 * math.pi, 0.5 * math.pi) cr.stroke() elif Preference.symbol_type == 1: cr.rectangle(30, -40, 50, 40) cr.stroke() cairo_draw_text(cr, layout, "&", 55, -40, 0.5, 0.0) cr.fill() def drawComponentEditOverlap(self, cr, layout): cairo_paths(cr, (10, -30), (30, -30)) if self.values[0] == 3: cairo_paths(cr, (10, -20), (30, -20)) cairo_paths(cr, (10, -10), (30, -10)) cairo_paths(cr, (80, -20), (100, -20)) cr.stroke() def drawComponentRunOverlap(self, cr, layout): if self.input_level[0]: cr.set_source(Preference.highlevel_color) else: cr.set_source(Preference.lowlevel_color) cairo_paths(cr, (10, -30), (30, -30)) cr.stroke() if self.input_level[1]: cr.set_source(Preference.highlevel_color) else: cr.set_source(Preference.lowlevel_color) cairo_paths(cr, (10, -10), (30, -10)) cr.stroke() if self.values[0] == 3: if self.input_level[2]: cr.set_source(Preference.highlevel_color) else: cr.set_source(Preference.lowlevel_color) cairo_paths(cr, (10, -20), (30, -20)) cr.stroke() if self.output_level[0]: cr.set_source(Preference.highlevel_color) else: cr.set_source(Preference.lowlevel_color) cairo_paths(cr, (80, -20), (100, -20)) cr.stroke() def isMouseOvered(self, x, y): if self.pos_x + 13 <= x <= self.pos_x + 97 and self.pos_y - 37 <= y <= self.pos_y - 3: return True return False def calculate(self, input_datas, time): new_output = input_datas[0] and input_datas[1] if self.values[0] == 2 else input_datas[0] and input_datas[1] and input_datas[2] if new_output != self.output_level[0]: if self.output_level[0]: self.output_stack = [[[time + self.tp_hl, new_output]]] else: self.output_stack = [[[time + self.tp_lh, new_output]]] else: self.output_stack = [[]] class OR(BaseComponent): def __init__(self, *args, **kwds): BaseComponent.__init__(self, *args, **kwds) self.description = _("OR") self.comp_rect = [10, -40, 100, 0] self.input_pins = [(10, -30), (10, -10)] self.output_pins = [(100, -20)] self.input_pins_dir = [const.direction_E, const.direction_E] self.output_pins_dir = [const.direction_W] self.input_level = [False, False] self.output_level = [False] self.tp_hl = 0.0 self.tp_lh = 0.0 self.prop_names = ["inputs", "tphl", "tplh"] self.properties.append((_("Input pins:"), (const.property_float, 2, 3, 0, 100), "")) self.values.append(2) self.properties.append((_("Propagation delay:"), None, "")) self.properties.append((_("tPHL:"), (const.property_float, 0, 1000, 3, 100), "µs")) self.values.append(0) self.properties.append((_("tPLH:"), (const.property_float, 0, 1000, 3, 100), "µs")) self.values.append(0) def propertyChanged(self, prop): self.input_pins_dir = [const.direction_E, const.direction_E] self.input_level = [False, False] self.input_pins = [(10, -30), (10, -10)] if prop[0] == 3: self.input_pins_dir.append(const.direction_E) self.input_level.append(False) self.input_pins.append((10, -20)) self.tp_hl = prop[1] * 0.000001 self.tp_lh = prop[2] * 0.000001 return False def drawComponent(self, cr, layout): if Preference.symbol_type == 0: cairo_bezier(cr, 30, -40, 40, -30, 40, -10, 30, 0) cairo_bezier(cr, 30, -40, 50, -40, 65, -40, 80, -20) cairo_bezier(cr, 30, 0, 50, 0, 65, 0, 80, -20) cr.stroke() elif Preference.symbol_type == 1: cr.rectangle(30, -40, 50, 40) cr.stroke() cairo_draw_text(cr, layout, "≥1", 55, -40, 0.5, 0.0) cr.fill() def drawComponentEditOverlap(self, cr, layout): if Preference.symbol_type == 0: cairo_paths(cr, (10, -30), (36, -30)) if self.values[0] == 3: cairo_paths(cr, (10, -20), (37, -20)) cairo_paths(cr, (10, -10), (36, -10)) elif Preference.symbol_type == 1: cairo_paths(cr, (10, -30), (30, -30)) if self.values[0] == 3: cairo_paths(cr, (10, -20), (30, -20)) cairo_paths(cr, (10, -10), (30, -10)) cairo_paths(cr, (80, -20), (100, -20)) cr.stroke() def drawComponentRunOverlap(self, cr, layout): if self.input_level[0]: cr.set_source(Preference.highlevel_color) else: cr.set_source(Preference.lowlevel_color) if Preference.symbol_type == 0: cairo_paths(cr, (10, -30), (36, -30)) elif Preference.symbol_type == 1: cairo_paths(cr, (10, -30), (30, -30)) cr.stroke() if self.input_level[1]: cr.set_source(Preference.highlevel_color) else: cr.set_source(Preference.lowlevel_color) if Preference.symbol_type == 0: cairo_paths(cr, (10, -10), (36, -10)) elif Preference.symbol_type == 1: cairo_paths(cr, (10, -10), (30, -10)) cr.stroke() if self.values[0] == 3: if self.input_level[2]: cr.set_source(Preference.highlevel_color) else: cr.set_source(Preference.lowlevel_color) if Preference.symbol_type == 0: cairo_paths(cr, (10, -20), (37, -20)) elif Preference.symbol_type == 1: cairo_paths(cr, (10, -20), (30, -20)) cr.stroke() if self.output_level[0]: cr.set_source(Preference.highlevel_color) else: cr.set_source(Preference.lowlevel_color) cairo_paths(cr, (80, -20), (100, -20)) cr.stroke() def isMouseOvered(self, x, y): if self.pos_x + 13 <= x <= self.pos_x + 97 and self.pos_y - 37 <= y <= self.pos_y - 3: return True return False def calculate(self, input_datas, time): new_output = input_datas[0] or input_datas[1] if self.values[0] == 2 else input_datas[0] or input_datas[1] or input_datas[2] if new_output != self.output_level[0]: if self.output_level[0]: self.output_stack = [[[time + self.tp_hl, new_output]]] else: self.output_stack = [[[time + self.tp_lh, new_output]]] else: self.output_stack = [[]] class XOR(BaseComponent): def __init__(self, *args, **kwds): BaseComponent.__init__(self, *args, **kwds) self.description = _("XOR") self.comp_rect = [10, -40, 100, 0] self.input_pins = [(10, -30), (10, -10)] self.output_pins = [(100, -20)] self.input_pins_dir = [const.direction_E, const.direction_E] self.output_pins_dir = [const.direction_W] self.input_level = [False, False] self.output_level = [False] self.tp_hl = 0.0 self.tp_lh = 0.0 self.prop_names = ["inputs", "tphl", "tplh"] self.properties.append((_("Input pins:"), (const.property_float, 2, 3, 0, 100), "")) self.values.append(2) self.properties.append((_("Propagation delay:"), None, "")) self.properties.append((_("tPHL:"), (const.property_float, 0, 1000, 3, 100), "µs")) self.values.append(0) self.properties.append((_("tPLH:"), (const.property_float, 0, 1000, 3, 100), "µs")) self.values.append(0) def propertyChanged(self, prop): self.input_pins_dir = [const.direction_E, const.direction_E] self.input_level = [False, False] self.input_pins = [(10, -30), (10, -10)] if prop[0] == 3: self.input_pins_dir.append(const.direction_E) self.input_level.append(False) self.input_pins.append((10, -20)) self.tp_hl = prop[1] * 0.000001 self.tp_lh = prop[2] * 0.000001 return False def drawComponent(self, cr, layout): if Preference.symbol_type == 0: cairo_bezier(cr, 30, -40, 40, -30, 40, -10, 30, 0) cairo_bezier(cr, 25, -40, 35, -30, 35, -10, 25, 0) cairo_bezier(cr, 30, -40, 50, -40, 65, -40, 80, -20) cairo_bezier(cr, 30, 0, 50, 0, 65, 0, 80, -20) elif Preference.symbol_type == 1: cr.rectangle(30, -40, 50, 40) cr.stroke() cairo_draw_text(cr, layout, "=1", 55, -40, 0.5, 0.0) cr.fill() cr.stroke() def drawComponentEditOverlap(self, cr, layout): if Preference.symbol_type == 0: cairo_paths(cr, (10, -30), (36, -30)) if self.values[0] == 3: cairo_paths(cr, (10, -20), (37, -20)) cairo_paths(cr, (10, -10), (36, -10)) elif Preference.symbol_type == 1: cairo_paths(cr, (10, -30), (30, -30)) if self.values[0] == 3: cairo_paths(cr, (10, -20), (30, -20)) cairo_paths(cr, (10, -10), (30, -10)) cairo_paths(cr, (80, -20), (100, -20)) cr.stroke() def drawComponentRunOverlap(self, cr, layout): if self.input_level[0]: cr.set_source(Preference.highlevel_color) else: cr.set_source(Preference.lowlevel_color) if Preference.symbol_type == 0: cairo_paths(cr, (10, -30), (36, -30)) elif Preference.symbol_type == 1: cairo_paths(cr, (10, -30), (30, -30)) cr.stroke() if self.input_level[1]: cr.set_source(Preference.highlevel_color) else: cr.set_source(Preference.lowlevel_color) if Preference.symbol_type == 0: cairo_paths(cr, (10, -10), (36, -10)) elif Preference.symbol_type == 1: cairo_paths(cr, (10, -10), (30, -10)) cr.stroke() if self.values[0] == 3: if self.input_level[2]: cr.set_source(Preference.highlevel_color) else: cr.set_source(Preference.lowlevel_color) if Preference.symbol_type == 0: cairo_paths(cr, (10, -20), (37, -20)) elif Preference.symbol_type == 1: cairo_paths(cr, (10, -20), (30, -20)) cr.stroke() if self.output_level[0]: cr.set_source(Preference.highlevel_color) else: cr.set_source(Preference.lowlevel_color) cairo_paths(cr, (80, -20), (100, -20)) cr.stroke() def isMouseOvered(self, x, y): if self.pos_x + 13 <= x <= self.pos_x + 97 and self.pos_y - 37 <= y <= self.pos_y - 3: return True return False def calculate(self, input_datas, time): new_output = (input_datas[0] + input_datas[1]) % 2 if self.values[0] == 2 else (input_datas[0] + input_datas[1] + input_datas[2]) % 2 if new_output != self.output_level[0]: if self.output_level[0]: self.output_stack = [[[time + self.tp_hl, new_output]]] else: self.output_stack = [[[time + self.tp_lh, new_output]]] else: self.output_stack = [[]] class NAND(BaseComponent): def __init__(self, *args, **kwds): BaseComponent.__init__(self, *args, **kwds) self.description = _("NAND") self.comp_rect = [10, -40, 110, 0] self.input_pins = [(10, -30), (10, -10)] self.output_pins = [(110, -20)] self.input_pins_dir = [const.direction_E, const.direction_E] self.output_pins_dir = [const.direction_W] self.input_level = [False, False] self.output_level = [True] self.tp_hl = 0.0 self.tp_lh = 0.0 self.prop_names = ["inputs", "tphl", "tplh"] self.properties.append((_("Input pins:"), (const.property_float, 2, 3, 0, 100), "")) self.values.append(2) self.properties.append((_("Propagation delay:"), None, "")) self.properties.append((_("tPHL:"), (const.property_float, 0, 1000, 3, 100), "µs")) self.values.append(0) self.properties.append((_("tPLH:"), (const.property_float, 0, 1000, 3, 100), "µs")) self.values.append(0) def propertyChanged(self, prop): self.input_pins_dir = [const.direction_E, const.direction_E] self.input_level = [False, False] self.input_pins = [(10, -30), (10, -10)] if prop[0] == 3: self.input_pins_dir.append(const.direction_E) self.input_level.append(False) self.input_pins.append((10, -20)) self.tp_hl = prop[1] * 0.000001 self.tp_lh = prop[2] * 0.000001 return False def drawComponent(self, cr, layout): if Preference.symbol_type == 0: cairo_paths(cr, (60, 0), (30, 0), (30, -40), (60, -40)) cr.arc(60, -20, 20, -0.5 * math.pi, 0.5 * math.pi) cr.stroke() cr.arc(86, -20, 6, 0, 2 * math.pi) cr.stroke() elif Preference.symbol_type == 1: cr.rectangle(30, -40, 50, 40) cr.stroke() cairo_paths(cr, (80, -28), (92, -20)) cr.stroke() cairo_draw_text(cr, layout, "&", 55, -40, 0.5, 0.0) cr.fill() def drawComponentEditOverlap(self, cr, layout): cairo_paths(cr, (10, -30), (30, -30)) if self.values[0] == 3: cairo_paths(cr, (10, -20), (30, -20)) cairo_paths(cr, (10, -10), (30, -10)) cairo_paths(cr, (92, -20), (110, -20)) cr.stroke() def drawComponentRunOverlap(self, cr, layout): if self.input_level[0]: cr.set_source(Preference.highlevel_color) else: cr.set_source(Preference.lowlevel_color) cairo_paths(cr, (10, -30), (30, -30)) cr.stroke() if self.input_level[1]: cr.set_source(Preference.highlevel_color) else: cr.set_source(Preference.lowlevel_color) cairo_paths(cr, (10, -10), (30, -10)) cr.stroke() if self.values[0] == 3: if self.input_level[2]: cr.set_source(Preference.highlevel_color) else: cr.set_source(Preference.lowlevel_color) cairo_paths(cr, (10, -20), (30, -20)) cr.stroke() if self.output_level[0]: cr.set_source(Preference.highlevel_color) else: cr.set_source(Preference.lowlevel_color) cairo_paths(cr, (92, -20), (110, -20)) cr.stroke() def isMouseOvered(self, x, y): if self.pos_x + 13 <= x <= self.pos_x + 107 and self.pos_y - 37 <= y <= self.pos_y - 3: return True return False def calculate(self, input_datas, time): new_output = not (input_datas[0] and input_datas[1]) if self.values[0] == 2 else not (input_datas[0] and input_datas[1] and input_datas[2]) if new_output != self.output_level[0]: if self.output_level[0]: self.output_stack = [[[time + self.tp_hl, new_output]]] else: self.output_stack = [[[time + self.tp_lh, new_output]]] else: self.output_stack = [[]] class NOR(BaseComponent): def __init__(self, *args, **kwds): BaseComponent.__init__(self, *args, **kwds) self.description = _("NOR") self.comp_rect = [10, -40, 110, 0] self.input_pins = [(10, -30), (10, -10)] self.output_pins = [(110, -20)] self.input_pins_dir = [const.direction_E, const.direction_E] self.output_pins_dir = [const.direction_W] self.input_level = [False, False] self.output_level = [True] self.tp_hl = 0.0 self.tp_lh = 0.0 self.prop_names = ["inputs", "tphl", "tplh"] self.properties.append((_("Input pins:"), (const.property_float, 2, 3, 0, 100), "")) self.values.append(2) self.properties.append((_("Propagation delay:"), None, "")) self.properties.append((_("tPHL:"), (const.property_float, 0, 1000, 3, 100), "µs")) self.values.append(0) self.properties.append((_("tPLH:"), (const.property_float, 0, 1000, 3, 100), "µs")) self.values.append(0) def propertyChanged(self, prop): self.input_pins_dir = [const.direction_E, const.direction_E] self.input_level = [False, False] self.input_pins = [(10, -30), (10, -10)] if prop[0] == 3: self.input_pins_dir.append(const.direction_E) self.input_level.append(False) self.input_pins.append((10, -20)) self.tp_hl = prop[1] * 0.000001 self.tp_lh = prop[2] * 0.000001 return False def drawComponent(self, cr, layout): if Preference.symbol_type == 0: cairo_bezier(cr, 30, -40, 40, -30, 40, -10, 30, 0) cairo_bezier(cr, 30, -40, 50, -40, 65, -40, 80, -20) cairo_bezier(cr, 30, 0, 50, 0, 65, 0, 80, -20) cr.stroke() cr.arc(86, -20, 6, 0, 2 * math.pi) cr.stroke() elif Preference.symbol_type == 1: cr.rectangle(30, -40, 50, 40) cr.stroke() cairo_paths(cr, (80, -28), (92, -20)) cr.stroke() cairo_draw_text(cr, layout, "≥1", 55, -40, 0.5, 0.0) cr.fill() def drawComponentEditOverlap(self, cr, layout): if Preference.symbol_type == 0: cairo_paths(cr, (10, -30), (36, -30)) if self.values[0] == 3: cairo_paths(cr, (10, -20), (37, -20)) cairo_paths(cr, (10, -10), (36, -10)) elif Preference.symbol_type == 1: cairo_paths(cr, (10, -30), (30, -30)) if self.values[0] == 3: cairo_paths(cr, (10, -20), (30, -20)) cairo_paths(cr, (10, -10), (30, -10)) cairo_paths(cr, (92, -20), (110, -20)) cr.stroke() def drawComponentRunOverlap(self, cr, layout): if self.input_level[0]: cr.set_source(Preference.highlevel_color) else: cr.set_source(Preference.lowlevel_color) if Preference.symbol_type == 0: cairo_paths(cr, (10, -30), (36, -30)) elif Preference.symbol_type == 1: cairo_paths(cr, (10, -30), (30, -30)) cr.stroke() if self.input_level[1]: cr.set_source(Preference.highlevel_color) else: cr.set_source(Preference.lowlevel_color) if Preference.symbol_type == 0: cairo_paths(cr, (10, -10), (36, -10)) elif Preference.symbol_type == 1: cairo_paths(cr, (10, -10), (30, -10)) cr.stroke() if self.values[0] == 3: if self.input_level[2]: cr.set_source(Preference.highlevel_color) else: cr.set_source(Preference.lowlevel_color) if Preference.symbol_type == 0: cairo_paths(cr, (10, -20), (37, -20)) elif Preference.symbol_type == 1: cairo_paths(cr, (10, -20), (30, -20)) cr.stroke() if self.output_level[0]: cr.set_source(Preference.highlevel_color) else: cr.set_source(Preference.lowlevel_color) cairo_paths(cr, (92, -20), (110, -20)) cr.stroke() def isMouseOvered(self, x, y): if self.pos_x + 13 <= x <= self.pos_x + 107 and self.pos_y - 37 <= y <= self.pos_y - 3: return True return False def calculate(self, input_datas, time): new_output = not (input_datas[0] or input_datas[1]) if self.values[0] == 2 else not (input_datas[0] or input_datas[1] or input_datas[2]) if new_output != self.output_level[0]: if self.output_level[0]: self.output_stack = [[[time + self.tp_hl, new_output]]] else: self.output_stack = [[[time + self.tp_lh, new_output]]] else: self.output_stack = [[]] class SW(BaseComponent): def __init__(self, *args, **kwds): BaseComponent.__init__(self, *args, **kwds) self.description = _("Switch") self.comp_rect = [10, -40, 70, 0] self.input_pins = [] self.output_pins = [(70, -20)] self.input_pins_dir = [] self.output_pins_dir = [const.direction_W] self.output_stack = [[]] self.input_level = [] self.output_level = [False] self.output_store = [[]] self.prop_names = ["initstate"] self.properties.append((_("Initial state:"), (const.property_select, _("Low level"), _("High level")), "")) self.values.append(0) self.store = [False] def drawComponent(self, cr, layout): cr.rectangle(10, -40, 40, 40) cr.rectangle(15, -30, 30, 10) cr.stroke() cairo_draw_text(cr, layout, "L", 20, -10, 0.5, 0.5) cairo_draw_text(cr, layout, "H", 40, -10, 0.5, 0.5) cr.fill() def drawComponentEditOverlap(self, cr, layout): cairo_paths(cr, (50, -20), (70, -20)) cr.rectangle(17, -28, 12, 6) cr.stroke() def drawComponentRunOverlap(self, cr, layout): if self.store[0]: cr.rectangle(30.5, -28.5, 13, 7) else: cr.rectangle(16.5, -28.5, 13, 7) cr.fill() if self.output_level[0]: cr.set_source(Preference.highlevel_color) else: cr.set_source(Preference.lowlevel_color) cairo_paths(cr, (50, -20), (70, -20)) cr.stroke() def isMouseOvered(self, x, y): if self.pos_x + 13 <= x <= self.pos_x + 67 and self.pos_y - 37 <= y <= self.pos_y - 3: return True return False def initialize(self): self.clicked_time = 0.0 self.store[0] = self.values[0] def click(self, x, y, time): self.store[0] = not self.store[0] self.clicked_time = time return True def calculate(self, input_datas, time): self.output_stack = [[[self.clicked_time, self.store[0]]]] class VDD(BaseComponent): def __init__(self, *args, **kwds): BaseComponent.__init__(self, *args, **kwds) self.description = _("Vdd rail") self.comp_rect = [10, -40, 30, 0] self.input_pins = [] self.output_pins = [(20, 0)] self.input_pins_dir = [] self.output_pins_dir = [const.direction_N] self.input_level = [] self.output_level = [True] self.output_stack = [[]] def drawComponent(self, cr, layout): cairo_paths(cr, (10, -20), (30, -20)) cr.rectangle(19, -21, 2, 2) cr.stroke() cairo_draw_text(cr, layout, "Vdd", 20, -30, 0.5, 0.5) cr.fill() def drawComponentEditOverlap(self, cr, layout): cairo_paths(cr, (20, -20), (20, 0)) cr.stroke() def drawComponentRunOverlap(self, cr, layout): cr.set_source(Preference.highlevel_color) cairo_paths(cr, (20, -20), (20, 0)) cr.stroke() def isMouseOvered(self, x, y): if self.pos_x + 13 <= x <= self.pos_x + 27 and self.pos_y - 37 <= y <= self.pos_y - 3: return True return False class GND(BaseComponent): def __init__(self, *args, **kwds): BaseComponent.__init__(self, *args, **kwds) self.description = _("GND rail") self.comp_rect = [10, -50, 30, 0] self.input_pins = [] self.output_pins = [(20, -50)] self.input_pins_dir = [] self.output_pins_dir = [const.direction_S] self.input_level = [] self.output_level = [False] self.output_stack = [[]] def drawComponent(self, cr, layout): cairo_paths(cr, (10, -30), (30, -30)) cairo_paths(cr, (16, -30), (12, -20)) cairo_paths(cr, (22, -30), (18, -20)) cairo_paths(cr, (28, -30), (24, -20)) cr.stroke() cairo_draw_text(cr, layout, "GND", 20, -10, 0.5, 0.5) cr.fill() def drawComponentEditOverlap(self, cr, layout): cairo_paths(cr, (20, -50), (20, -30)) cr.stroke() def drawComponentRunOverlap(self, cr, layout): cr.set_source(Preference.lowlevel_color) cairo_paths(cr, (20, -50), (20, -30)) cr.stroke() def isMouseOvered(self, x, y): if self.pos_x + 13 <= x <= self.pos_x + 27 and self.pos_y - 47 <= y <= self.pos_y - 3: return True return False class OSC(BaseComponent): def __init__(self, *args, **kwds): BaseComponent.__init__(self, *args, **kwds) self.description = _("Oscillator") self.comp_rect = [10, -40, 70, 0] self.input_pins = [] self.output_pins = [(70, -20)] self.input_pins_dir = [] self.output_pins_dir = [const.direction_W] self.input_level = [] self.output_level = [False] self.prop_names = ["period", "shift", "duration", "initstate"] self.properties.append((_("Period:"), (const.property_float, 0, 1000, 3, 100), "µs")) self.values.append(2) self.properties.append((_("Shift:"), (const.property_float, 0, 1000, 3, 100), "µs")) self.values.append(0) self.properties.append((_("Duration:"), (const.property_float, 0, 1000, 3, 100), "µs")) self.values.append(20) self.properties.append((_("Initial state:"), (const.property_select, _("Low level"), _("High level")), "")) self.values.append(0) self.h_period = 0.000001 self.shift = 0.0 self.dulation = 0.00002 self.end_time = self.dulation + self.shift - self.h_period self.store = [0.0] def propertyChanged(self, prop): self.h_period = prop[0] * 0.0000005 self.shift = prop[1] * 0.000001 self.dulation = prop[2] * 0.000001 self.end_time = self.dulation + self.shift - self.h_period return False def drawComponent(self, cr, layout): cairo_paths(cr, (15, -10), (20, -10), (20, -30), (25, -30), (25, -10), (30, -10), (30, -30), (35, -30), (35, -10), (40, -10), (40, -30), (45, -30)) cr.stroke() cr.rectangle(10, -40, 40, 40) cr.stroke() def drawComponentEditOverlap(self, cr, layout): cairo_paths(cr, (50, -20), (70, -20)) cr.stroke() def drawComponentRunOverlap(self, cr, layout): if self.output_level[0]: cr.set_source(Preference.highlevel_color) else: cr.set_source(Preference.lowlevel_color) cairo_paths(cr, (50, -20), (70, -20)) cr.stroke() def isMouseOvered(self, x, y): if self.pos_x + 13 <= x <= self.pos_x + 67 and self.pos_y - 37 <= y <= self.pos_y - 3: return True return False def initialize(self): if self.shift == 0.0: self.output_stack = [[[0.0, not self.values[3]]]] else: self.output_stack = [[[0.0, self.values[3]], [self.shift, not self.values[3]]]] self.store[0] = self.shift + self.h_period self.output_stack[0].append([self.store[0], self.values[3]]) def calculate(self, input_datas, time): if time == self.store[0] and time <= self.end_time: self.store[0] = time + self.h_period self.output_stack = [[[self.store[0], not self.output_level[0]]]] glogic-2.6/glogic/Components/__init__.py0000644000175000017500000000266012042714365015260 00000000000000# -*- coding: utf-8; indent-tabs-mode: t; tab-width: 4 -*- from gettext import gettext as _ from glogic import const from glogic.Components import SystemComponents, Standard, FlipFlop, StateViewer, Misc, Counter, Calculator comp_dict = { const.component_none: None, const.component_net: None, const.component_probe: SystemComponents.Probe(), const.component_VDD: Standard.VDD(), const.component_GND: Standard.GND(), const.component_SW: Standard.SW(), const.component_NOT: Standard.NOT(), const.component_AND: Standard.AND(), const.component_OR: Standard.OR(), const.component_XOR: Standard.XOR(), const.component_NAND: Standard.NAND(), const.component_NOR: Standard.NOR(), const.component_OSC: Standard.OSC(), const.component_RSFF: FlipFlop.RSFF(), const.component_JKFF: FlipFlop.JKFF(), const.component_DFF: FlipFlop.DFF(), const.component_TFF: FlipFlop.TFF(), const.component_counter: Counter.ModNCounter(), const.component_SISO: Counter.SISOShiftRegister(), const.component_SIPO: Counter.SIPOShiftRegister(), const.component_PISO: Counter.PISOShiftRegister(), const.component_PIPO: Counter.PIPOShiftRegister(), const.component_adder: Calculator.Adder(), const.component_7seg: StateViewer.SevenSegment(), const.component_LED: StateViewer.LED(), const.component_text: Misc.Text() } for c in comp_dict.values(): if c: c.set_rot_props() glogic-2.6/glogic/Components/Calculator.py0000644000175000017500000001141412042716612015604 00000000000000# -*- coding: utf-8; indent-tabs-mode: t; tab-width: 4 -*- import math from gettext import gettext as _ from glogic import const from glogic.Components.SystemComponents import BaseComponent from glogic import Preference from glogic.Utils import * class Adder(BaseComponent): def __init__(self, *args, **kwds): BaseComponent.__init__(self, *args, **kwds) self.description = _("Adder") self.comp_rect = [10, -60, 100, 0] self.input_pins = [(10, -50), (10, -30), (10, -10)] self.output_pins = [(100, -50), (100, -10)] self.input_pins_dir = [const.direction_E, const.direction_E, const.direction_E] self.output_pins_dir = [const.direction_W, const.direction_W] self.input_level = [False, False, False] self.output_level = [False, False] self.output_stack = [[], []] self.tp_hl = 0.0 self.tp_lh = 0.0 self.prop_names = ["halffull", "tphl", "tplh"] self.properties.append((_("Half/Full:"), (const.property_select, _("Half adder"), _("Full adder")), "")) self.values.append(1) self.properties.append((_("Propagation delay:"), None, "")) self.properties.append((_("tPHL:"), (const.property_float, 0, 1000, 3, 100), "µs")) self.values.append(0) self.properties.append((_("tPLH:"), (const.property_float, 0, 1000, 3, 100), "µs")) self.values.append(0) def propertyChanged(self, prop): self.tp_hl = prop[1] * 0.000001 self.tp_lh = prop[2] * 0.000001 if prop[0] == 0: self.comp_rect = [10, -40, 100, 0] self.input_pins = [(10, -30), (10, -10)] self.output_pins = [(100, -30), (100, -10)] self.input_pins_dir = [const.direction_E, const.direction_E] self.input_level = [False, False] else: self.comp_rect = [10, -60, 100, 0] self.input_pins = [(10, -50), (10, -30), (10, -10)] self.output_pins = [(100, -50), (100, -10)] self.input_pins_dir = [const.direction_E, const.direction_E, const.direction_E] self.input_level = [False, False, False] return False def drawComponent(self, cr, layout): if self.values[0] == 0: cr.rectangle(30, -40, 50, 40) cr.stroke() cairo_draw_text(cr, layout, "X", 35, -30, 0.0, 0.5) cairo_draw_text(cr, layout, "Y", 35, -10, 0.0, 0.5) cairo_draw_text(cr, layout, "C", 75, -30, 1.0, 0.5) else: cr.rectangle(30, -60, 50, 60) cr.stroke() cairo_draw_text(cr, layout, "X", 35, -50, 0.0, 0.5) cairo_draw_text(cr, layout, "Y", 35, -30, 0.0, 0.5) cairo_draw_text(cr, layout, "Z", 35, -10, 0.0, 0.5) cairo_draw_text(cr, layout, "C", 75, -50, 1.0, 0.5) cairo_draw_text(cr, layout, "S", 75, -10, 1.0, 0.5) cr.fill() def drawComponentEditOverlap(self, cr, layout): if self.values[0] == 0: cairo_paths(cr, (10, -30), (30, -30)) cairo_paths(cr, (80, -30), (100, -30)) else: cairo_paths(cr, (10, -50), (30, -50)) cairo_paths(cr, (10, -30), (30, -30)) cairo_paths(cr, (80, -50), (100, -50)) cairo_paths(cr, (10, -10), (30, -10)) cairo_paths(cr, (80, -10), (100, -10)) cr.stroke() def drawComponentRunOverlap(self, cr, layout): if self.input_level[0]: cr.set_source(Preference.highlevel_color) else: cr.set_source(Preference.lowlevel_color) if self.values[0] == 0: cairo_paths(cr, (10, -30), (30, -30)) else: cairo_paths(cr, (10, -50), (30, -50)) cr.stroke() if self.input_level[1]: cr.set_source(Preference.highlevel_color) else: cr.set_source(Preference.lowlevel_color) if self.values[0] == 0: cairo_paths(cr, (10, -10), (30, -10)) else: cairo_paths(cr, (10, -30), (30, -30)) cr.stroke() if self.values[0] == 1: if self.input_level[2]: cr.set_source(Preference.highlevel_color) else: cr.set_source(Preference.lowlevel_color) cairo_paths(cr, (10, -10), (30, -10)) cr.stroke() if self.output_level[0]: cr.set_source(Preference.highlevel_color) else: cr.set_source(Preference.lowlevel_color) if self.values[0] == 0: cairo_paths(cr, (80, -30), (100, -30)) else: cairo_paths(cr, (80, -50), (100, -50)) cr.stroke() if self.output_level[1]: cr.set_source(Preference.highlevel_color) else: cr.set_source(Preference.lowlevel_color) cairo_paths(cr, (80, -10), (100, -10)) cr.stroke() def isMouseOvered(self, x, y): if self.values[0] == 0: if self.pos_x + 13 <= x <= self.pos_x + 97 and self.pos_y - 37 <= y <= self.pos_y - 3: return True else: if self.pos_x + 13 <= x <= self.pos_x + 97 and self.pos_y - 57 <= y <= self.pos_y - 3: return True return False def calculate(self, input_datas, time): r = 1 if input_datas[0] else 0 r += 1 if input_datas[1] else 0 if self.values[0] == 1: r += 1 if input_datas[2] else 0 if r == 0: output_data = [False, False] elif r == 1: output_data = [False, True] elif r == 2: output_data = [True, False] else: output_data = [True, True] stack_with_tphl_lh(time, self.output_level, self.output_stack, output_data, self.tp_hl, self.tp_lh) glogic-2.6/glogic/Components/StateViewer.py0000644000175000017500000001743112042717041015757 00000000000000# -*- coding: utf-8; indent-tabs-mode: t; tab-width: 4 -*- import math from gettext import gettext as _ from glogic import const from glogic.Components.SystemComponents import BaseComponent from glogic import Preference from glogic.Utils import * class SevenSegment(BaseComponent): def __init__(self, *args, **kwds): BaseComponent.__init__(self, *args, **kwds) self.description = _("Seven-segment display") self.comp_rect = [10, -80, 100, 0] self.input_pins = [(10, -70), (10, -50), (10, -30), (10, -10)] self.output_pins = [] self.input_pins_dir = [const.direction_E, const.direction_E, const.direction_E, const.direction_E] self.output_pins_dir = [] self.input_level = [False, False, False, False] self.output_level = [] def set_7seg(self, cr, a, b, c, d, e, f, g): if a: cr.set_source_rgb(0.0, 1.0, 0.0) cairo_paths(cr, (60, -70), (62, -68), (88, -68), (90, -70), (88, -72), (62, -72), (60, -70)) cr.fill() if b: cr.set_source_rgb(0.0, 1.0, 0.0) cairo_paths(cr, (90, -70), (88, -68), (88, -42), (90, -40), (92, -42), (92, -68), (90, -70)) cr.fill() if c: cr.set_source_rgb(0.0, 1.0, 0.0) cairo_paths(cr, (90, -40), (88, -38), (88, -12), (90, -10), (92, -12), (92, -38), (90, -40)) cr.fill() if d: cr.set_source_rgb(0.0, 1.0, 0.0) cairo_paths(cr, (60, -10), (62, -8), (88, -8), (90, -10), (88, -12), (62, -12), (60, -10)) cr.fill() if e: cr.set_source_rgb(0.0, 1.0, 0.0) cairo_paths(cr, (60, -40), (58, -38), (58, -12), (60, -10), (62, -12), (62, -38), (60, -40)) cr.fill() if f: cr.set_source_rgb(0.0, 1.0, 0.0) cairo_paths(cr, (60, -70), (58, -68), (58, -42), (60, -40), (62, -42), (62, -68), (60, -70)) cr.fill() if g: cr.set_source_rgb(0.0, 1.0, 0.0) cairo_paths(cr, (60, -40), (62, -38), (88, -38), (90, -40), (88, -42), (62, -42), (60, -40)) cr.fill() def drawComponent(self, cr, layout): cairo_paths(cr, (60, -70), (62, -68), (88, -68), (90, -70), (88, -72), (62, -72), (60, -70)) cairo_paths(cr, (90, -70), (88, -68), (88, -42), (90, -40), (92, -42), (92, -68), (90, -70)) cairo_paths(cr, (90, -40), (88, -38), (88, -12), (90, -10), (92, -12), (92, -38), (90, -40)) cairo_paths(cr, (60, -10), (62, -8), (88, -8), (90, -10), (88, -12), (62, -12), (60, -10)) cairo_paths(cr, (60, -40), (58, -38), (58, -12), (60, -10), (62, -12), (62, -38), (60, -40)) cairo_paths(cr, (60, -70), (58, -68), (58, -42), (60, -40), (62, -42), (62, -68), (60, -70)) cairo_paths(cr, (60, -40), (62, -38), (88, -38), (90, -40), (88, -42), (62, -42), (60, -40)) cr.rectangle(30, -80, 70, 80) cr.stroke() cairo_draw_text(cr, layout, "IA", 35, -70, 0.0, 0.5) cairo_draw_text(cr, layout, "IB", 35, -50, 0.0, 0.5) cairo_draw_text(cr, layout, "IC", 35, -30, 0.0, 0.5) cairo_draw_text(cr, layout, "ID", 35, -10, 0.0, 0.5) cr.fill() def drawComponentEditOverlap(self, cr, layout): cairo_paths(cr, (10, -70), (30, -70)) cairo_paths(cr, (10, -50), (30, -50)) cairo_paths(cr, (10, -30), (30, -30)) cairo_paths(cr, (10, -10), (30, -10)) cr.stroke() def drawComponentRunOverlap(self, cr, layout): if self.input_level[0]: cr.set_source(Preference.highlevel_color) else: cr.set_source(Preference.lowlevel_color) cairo_paths(cr, (10, -70), (30, -70)) cr.stroke() if self.input_level[1]: cr.set_source(Preference.highlevel_color) else: cr.set_source(Preference.lowlevel_color) cairo_paths(cr, (10, -50), (30, -50)) cr.stroke() if self.input_level[2]: cr.set_source(Preference.highlevel_color) else: cr.set_source(Preference.lowlevel_color) cairo_paths(cr, (10, -30), (30, -30)) cr.stroke() if self.input_level[3]: cr.set_source(Preference.highlevel_color) else: cr.set_source(Preference.lowlevel_color) cairo_paths(cr, (10, -10), (30, -10)) cr.stroke() # Draw 7seg if not self.input_level[0] and not self.input_level[1] and not self.input_level[2] and not self.input_level[3]: # 0 self.set_7seg(cr, True, True, True, True, True, True, False) elif not self.input_level[0] and not self.input_level[1] and not self.input_level[2] and self.input_level[3]: # 1 self.set_7seg(cr, False, True, True, False, False, False, False) elif not self.input_level[0] and not self.input_level[1] and self.input_level[2] and not self.input_level[3]: # 2 self.set_7seg(cr, True, True, False, True, True, False, True) elif not self.input_level[0] and not self.input_level[1] and self.input_level[2] and self.input_level[3]: # 3 self.set_7seg(cr, True, True, True, True, False, False, True) elif not self.input_level[0] and self.input_level[1] and not self.input_level[2] and not self.input_level[3]: # 4 self.set_7seg(cr, False, True, True, False, False, True, True) elif not self.input_level[0] and self.input_level[1] and not self.input_level[2] and self.input_level[3]: # 5 self.set_7seg(cr, True, False, True, True, False, True, True) elif not self.input_level[0] and self.input_level[1] and self.input_level[2] and not self.input_level[3]: # 6 self.set_7seg(cr, True, False, True, True, True, True, True) elif not self.input_level[0] and self.input_level[1] and self.input_level[2] and self.input_level[3]: # 7 self.set_7seg(cr, True, True, True, False, False, False, False) elif self.input_level[0] and not self.input_level[1] and not self.input_level[2] and not self.input_level[3]: # 8 self.set_7seg(cr, True, True, True, True, True, True, True) elif self.input_level[0] and not self.input_level[1] and not self.input_level[2] and self.input_level[3]: # 9 self.set_7seg(cr, True, True, True, True, False, True, True) elif self.input_level[0] and not self.input_level[1] and self.input_level[2] and not self.input_level[3]: # A self.set_7seg(cr, True, True, True, False, True, True, True) elif self.input_level[0] and not self.input_level[1] and self.input_level[2] and self.input_level[3]: # B self.set_7seg(cr, False, False, True, True, True, True, True) elif self.input_level[0] and self.input_level[1] and not self.input_level[2] and not self.input_level[3]: # C self.set_7seg(cr, True, False, False, True, True, True, False) elif self.input_level[0] and self.input_level[1] and not self.input_level[2] and self.input_level[3]: # D self.set_7seg(cr, False, True, True, True, True, False, True) elif self.input_level[0] and self.input_level[1] and self.input_level[2] and not self.input_level[3]: # E self.set_7seg(cr, True, False, False, True, True, True, True) else: # F self.set_7seg(cr, True, False, False, False, True, True, True) def isMouseOvered(self, x, y): if self.pos_x + 13 <= x <= self.pos_x + 97 and self.pos_y - 77 <= y <= self.pos_y - 3: return True return False class LED(BaseComponent): def __init__(self, *args, **kwds): BaseComponent.__init__(self, *args, **kwds) self.description = _("LED") self.comp_rect = [10, -40, 70, 0] self.input_pins = [(10, -20)] self.output_pins = [] self.input_pins_dir = [const.direction_E] self.output_pins_dir = [] self.input_level = [False] self.output_level = [] def drawComponent(self, cr, layout): cr.arc(50, -20, 8, 0, 2 * math.pi) cr.rectangle(30, -40, 40, 40) cr.stroke() def drawComponentEditOverlap(self, cr, layout): cairo_paths(cr, (10, -20), (30, -20)) cr.stroke() def drawComponentRunOverlap(self, cr, layout): if self.input_level[0]: cr.set_source(Preference.highlevel_color) cairo_paths(cr, (10, -20), (30, -20)) cr.stroke() cr.set_source_rgb(0.0, 1.0, 0.0) cr.arc(50, -20, 8, 0, 2 * math.pi) else: cr.set_source(Preference.lowlevel_color) cairo_paths(cr, (10, -20), (30, -20)) cr.stroke() cr.set_source_rgb(0.0, 0.25, 0.0) cr.arc(50, -20, 8, 0, 2 * math.pi) cr.fill() def isMouseOvered(self, x, y): if self.pos_x + 13 <= x <= self.pos_x + 67 and self.pos_y - 37 <= y <= self.pos_y - 3: return True return False glogic-2.6/glogic/Components/SystemComponents.py0000644000175000017500000001130412043117334017040 00000000000000# -*- coding: utf-8; indent-tabs-mode: t; tab-width: 4 -*- from gettext import gettext as _ from glogic import const from glogic import Preference from glogic.Utils import * import math class BaseComponent(): def __init__(self, *args, **kwds): self.description = "" self.pos_x = 0 self.pos_y = 0 self.matrix = (1, 0, 0, 1) self.mouse_button = False self.properties = [] self.values = [] self.prop_names = [] self.input_pins = [] self.output_pins = [] self.rot_input_pins = [] self.rot_output_pins = [] self.input_level = [] self.output_level = [] self.output_stack = [] self.input_pins_dir = [] self.output_pins_dir = [] self.store = [] def drawComponent(self, cr, layout): return def drawComponentEditOverlap(self, cr, layout): return def drawComponentRunOverlap(self, cr, layout): return def isMouseOvered(self, x, y): return False def mouse_down(self, x, y): if self.isMouseOvered(x, y): self.mouse_button = True def mouse_up(self, x, y, time): if self.mouse_button: self.mouse_button = False if self.isMouseOvered(x, y): return self.click(x, y, time) return False def set_rot_props(self): self.rot_comp_rect = [self.matrix[0] * self.comp_rect[0] + self.matrix[1] * self.comp_rect[1], self.matrix[2] * self.comp_rect[0] + self.matrix[3] * self.comp_rect[1], self.matrix[0] * self.comp_rect[2] + self.matrix[1] * self.comp_rect[3], self.matrix[2] * self.comp_rect[2] + self.matrix[3] * self.comp_rect[3]] self.rot_comp_rect = [min((self.rot_comp_rect[0], self.rot_comp_rect[2])), min((self.rot_comp_rect[1], self.rot_comp_rect[3])), max((self.rot_comp_rect[0], self.rot_comp_rect[2])), max((self.rot_comp_rect[1], self.rot_comp_rect[3]))] self.rot_input_pins = self.input_pins[:] self.rot_input_pins_dir = self.input_pins_dir[:] for i, p in enumerate(self.input_pins): self.rot_input_pins[i] = (self.matrix[0] * self.rot_input_pins[i][0] + self.matrix[1] * self.rot_input_pins[i][1], self.matrix[2] * self.rot_input_pins[i][0] + self.matrix[3] * self.rot_input_pins[i][1]) self.rot_input_pins_dir[i] = (self.matrix[0] * self.rot_input_pins_dir[i][0] + self.matrix[1] * self.rot_input_pins_dir[i][1], self.matrix[2] * self.rot_input_pins_dir[i][0] + self.matrix[3] * self.rot_input_pins_dir[i][1]) self.rot_output_pins = self.output_pins[:] self.rot_output_pins_dir = self.output_pins_dir[:] for i, p in enumerate(self.output_pins): self.rot_output_pins[i] = (self.matrix[0] * self.rot_output_pins[i][0] + self.matrix[1] * self.rot_output_pins[i][1], self.matrix[2] * self.rot_output_pins[i][0] + self.matrix[3] * self.rot_output_pins[i][1]) self.rot_output_pins_dir[i] = (self.matrix[0] * self.rot_output_pins_dir[i][0] + self.matrix[1] * self.rot_output_pins_dir[i][1], self.matrix[2] * self.rot_output_pins_dir[i][0] + self.matrix[3] * self.rot_output_pins_dir[i][1]) def click(self, x, y, time): return False def propertyChanged(self, prop): return False def initialize(self): return def calculate(self, input_datas, time): return class Probe(BaseComponent): def __init__(self, *args, **kwds): BaseComponent.__init__(self, *args, **kwds) self.description = _("Probe") self.comp_rect = [10, -20, 55, 0] self.input_pins = [(10, -10)] self.output_pins = [] self.input_pins_dir = [const.direction_E] self.output_pins_dir = [] self.input_level = [False] self.output_level = [] self.prop_names = ["name"] self.properties.append((_("Name:"), (const.property_string, 20), "")) self.values.append("Probe") self.width = 12 def propertyChanged(self, prop): if prop[0] == "": return True return False def drawComponent(self, cr, layout): cr.arc(40, -10, 10, 0, 2 * math.pi) cr.stroke() cairo_draw_text(cr, layout, "V", 40, -10, 0.5, 0.5) cairo_draw_text(cr, layout, self.values[0], 55, -10, 0.0, 0.5) (w, h) = layout.get_size() self.width = w / Pango.SCALE if self.width < 12: self.width = 12 self.comp_rect = [10, -20, 55 + self.width, 0] self.set_rot_props() def drawComponentEditOverlap(self, cr, layout): cairo_paths(cr, (10, -10), (30, -10)) cr.stroke() def drawComponentRunOverlap(self, cr, layout): if self.input_level[0]: cr.set_source(Preference.highlevel_color) else: cr.set_source(Preference.lowlevel_color) cairo_paths(cr, (10, -10), (30, -10)) cr.stroke() def isMouseOvered(self, x, y): if self.pos_x + 13 <= x <= self.pos_x + 52 + self.width and self.pos_y - 17 <= y <= self.pos_y - 3: return True return False glogic-2.6/glogic/Components/Counter.py0000644000175000017500000005576212042754641015154 00000000000000# -*- coding: utf-8; indent-tabs-mode: t; tab-width: 4 -*- import math from gettext import gettext as _ from glogic import const from glogic.Components.SystemComponents import BaseComponent from glogic import Preference from glogic.Utils import * class ModNCounter(BaseComponent): def __init__(self, *args, **kwds): BaseComponent.__init__(self, *args, **kwds) self.description = _("Mod-N counter") self.comp_rect = [10, -80, 120, 0] self.input_pins = [(10, -50), (10, -30)] self.output_pins = [(120, -70), (120, -50), (120, -30), (120, -10)] self.input_pins_dir = [const.direction_E, const.direction_E] self.output_pins_dir = [const.direction_W, const.direction_W, const.direction_W, const.direction_W] self.input_level = [False, False] self.output_level = [False, False, False, False] self.tp_hl = 0.0 self.tp_lh = 0.0 self.outpin_t = -70 self.outpin_b = -10 self.prop_names = ["n", "bits", "trig", "tphl", "tplh"] self.properties.append((_("N:"), (const.property_int, 2, 256, 100), "")) self.values.append(16) self.properties.append((_("Number of bits:"), (const.property_int, 1, 8, 100), "")) self.values.append(4) self.properties.append((_("Trigger type:"), (const.property_select, _("Positive edge"), _("Negative edge")), "")) self.values.append(0) self.properties.append((_("Propagation delay:"), None, "")) self.properties.append((_("tPHL:"), (const.property_float, 0, 1000, 3, 100), "µs")) self.values.append(0) self.properties.append((_("tPLH:"), (const.property_float, 0, 1000, 3, 100), "µs")) self.values.append(0) self.store = [0] def propertyChanged(self, prop): if prop[0] > 2 ** prop[1]: return True self.outpin_t = -40 - (prop[1] - 1) * 10 self.outpin_b = -40 + (prop[1] - 1) * 10 self.comp_rect = [10, min((self.outpin_t - 10, -60)), 120, max((self.outpin_b + 10, -20))] self.output_pins = [(120, y) for y in range(self.outpin_t, self.outpin_b + 1, 20)] self.output_pins_dir = [const.direction_W for i in range(prop[1])] self.output_level = [False for i in range(prop[1])] self.tp_hl = prop[3] * 0.000001 self.tp_lh = prop[4] * 0.000001 return False def drawComponent(self, cr, layout): cr.rectangle(30, self.comp_rect[1], 70, self.comp_rect[3] - self.comp_rect[1]) if self.values[2] == 1: cr.arc(25, -50, 5, 0, 2 * math.pi) cairo_paths(cr, (30, -55), (40, -50), (30, -45)) cr.stroke() cairo_draw_text(cr, layout, "CK", 45, -50, 0.0, 0.5) cairo_draw_text(cr, layout, "RST", 45, -30, 0.0, 0.5) for i, y in enumerate(range(self.outpin_t, self.outpin_b + 1, 20)): cairo_draw_text(cr, layout, "Q%d" % i, 95, y, 1.0, 0.5) cr.fill() def drawComponentEditOverlap(self, cr, layout): if self.values[2] == 0: cairo_paths(cr, (10, -50), (30, -50)) else: cairo_paths(cr, (10, -50), (20, -50)) cairo_paths(cr, (10, -30), (30, -30)) for i, y in enumerate(range(self.outpin_t, self.outpin_b + 1, 20)): cairo_paths(cr, (100, y), (120, y)) cr.stroke() def drawComponentRunOverlap(self, cr, layout): if self.input_level[0]: cr.set_source(Preference.highlevel_color) else: cr.set_source(Preference.lowlevel_color) if self.values[2] == 0: cairo_paths(cr, (10, -50), (30, -50)) else: cairo_paths(cr, (10, -50), (20, -50)) cr.stroke() if self.input_level[1]: cr.set_source(Preference.highlevel_color) else: cr.set_source(Preference.lowlevel_color) cairo_paths(cr, (10, -30), (30, -30)) cr.stroke() for i, y in enumerate(range(self.outpin_t, self.outpin_b + 1, 20)): if self.output_level[i]: cr.set_source(Preference.highlevel_color) else: cr.set_source(Preference.lowlevel_color) cairo_paths(cr, (100, y), (120, y)) cr.stroke() def isMouseOvered(self, x, y): if self.pos_x + self.comp_rect[0] + 3 <= x <= self.pos_x + self.comp_rect[2] - 3 and self.pos_y + self.comp_rect[1] + 3 <= y <= self.pos_y + self.comp_rect[3] - 3: return True return False def initialize(self): self.store[0] = 0 self.output_stack = [[[0.0, False]] for i in range(self.values[1])] def calculate(self, input_datas, time): if input_datas[1]: output_data = [False for i in range(self.values[1])] self.store[0] = 0 elif (self.values[2] == 0 and not self.input_level[0] and input_datas[0]) or (self.values[2] == 1 and self.input_level[0] and not input_datas[0]): # trigger self.store[0] += 1 if self.store[0] == self.values[0]: self.store[0] = 0 output_data = [self.store[0] >> i & 0x01 for i in reversed(range(self.values[1]))] else: return stack_with_tphl_lh(time, self.output_level, self.output_stack, output_data, self.tp_hl, self.tp_lh) class SISOShiftRegister(BaseComponent): def __init__(self, *args, **kwds): BaseComponent.__init__(self, *args, **kwds) self.description = _("SISO shift register") self.comp_rect = [10, -60, 120, 0] self.input_pins = [(10, -30), (10, -10)] self.output_pins = [(120, -30), (120, -10)] self.input_pins_dir = [const.direction_E, const.direction_E] self.output_pins_dir = [const.direction_W, const.direction_W] self.input_level = [False, False] self.output_level = [False, True] self.tp_hl = 0.0 self.tp_lh = 0.0 self.prop_names = ["bits", "trig", "tphl", "tplh"] self.properties.append((_("Number of bits:"), (const.property_int, 0, 1000, 0, 100), "")) self.values.append(0) self.properties.append((_("Trigger type:"), (const.property_select, _("Positive edge"), _("Negative edge")), "")) self.values.append(0) self.properties.append((_("Propagation delay:"), None, "")) self.properties.append((_("tPHL:"), (const.property_float, 0, 1000, 3, 100), "µs")) self.values.append(0) self.properties.append((_("tPLH:"), (const.property_float, 0, 1000, 3, 100), "µs")) self.values.append(0) self.store = [0] def propertyChanged(self, prop): self.tp_hl = prop[2] * 0.000001 self.tp_lh = prop[3] * 0.000001 return False def drawComponent(self, cr, layout): cr.rectangle(30, -60, 70, 60) if self.values[1] == 1: cr.arc(25, -10, 5, 0, 2 * math.pi) cairo_paths(cr, (30, -15), (40, -10), (30, -5)) cr.stroke() cairo_draw_text(cr, layout, "SISO", 65, -50, 0.5, 0.5) cairo_draw_text(cr, layout, "D", 45, -30, 0.0, 0.5) cairo_draw_text(cr, layout, "CK", 45, -10, 0.0, 0.5) cairo_draw_text(cr, layout, "Q", 95, -30, 1.0, 0.5) cairo_draw_text(cr, layout, "~Q", 95, -10, 1.0, 0.5) cr.fill() def drawComponentEditOverlap(self, cr, layout): cairo_paths(cr, (10, -30), (30, -30)) if self.values[1] == 0: cairo_paths(cr, (10, -10), (30, -10)) else: cairo_paths(cr, (10, -10), (20, -10)) cairo_paths(cr, (100, -30), (120, -30)) cairo_paths(cr, (100, -10), (120, -10)) cr.stroke() def drawComponentRunOverlap(self, cr, layout): if self.input_level[0]: cr.set_source(Preference.highlevel_color) else: cr.set_source(Preference.lowlevel_color) if self.values[1] == 0: cairo_paths(cr, (10, -30), (30, -30)) else: cairo_paths(cr, (10, -30), (20, -30)) cr.stroke() if self.input_level[1]: cr.set_source(Preference.highlevel_color) else: cr.set_source(Preference.lowlevel_color) cairo_paths(cr, (10, -10), (30, -10)) cr.stroke() if self.output_level[0]: cr.set_source(Preference.highlevel_color) else: cr.set_source(Preference.lowlevel_color) cairo_paths(cr, (100, -30), (120, -30)) cr.stroke() if self.output_level[1]: cr.set_source(Preference.highlevel_color) else: cr.set_source(Preference.lowlevel_color) cairo_paths(cr, (100, -10), (120, -10)) cr.stroke() def isMouseOvered(self, x, y): if self.pos_x + 13 <= x <= self.pos_x + 117 and self.pos_y - 57 <= y <= self.pos_y - 3: return True return False def initialize(self): self.store[0] = 0 self.stack = [False for i in range(self.values[0])] self.output_stack = [[[0.0, False]], [[0.0, True]]] def calculate(self, input_datas, time): if (self.values[1] == 0 and not self.input_level[1] and input_datas[1]) or (self.values[1] == 1 and self.input_level[1] and not input_datas[1]): # trigger self.stack.append(input_datas[0]) output = self.stack.pop(0) output_data = [output, not output] stack_with_tphl_lh(time, self.output_level, self.output_stack, output_data, self.tp_hl, self.tp_lh) class SIPOShiftRegister(BaseComponent): def __init__(self, *args, **kwds): BaseComponent.__init__(self, *args, **kwds) self.description = _("SIPO shift register") self.comp_rect = [10, -100, 120, 0] self.input_pins = [(10, -60), (10, -40), (10, -20)] self.output_pins = [(120, -70), (120, -50), (120, -30), (120, -10)] self.input_pins_dir = [const.direction_E, const.direction_E, const.direction_E] self.output_pins_dir = [const.direction_W, const.direction_W, const.direction_W, const.direction_W] self.input_level = [False, False, False] self.output_level = [False, False, False, False] self.tp_hl = 0.0 self.tp_lh = 0.0 self.outpin_t = -70 self.outpin_b = -10 self.prop_names = ["bits", "trig", "tphl", "tplh"] self.properties.append((_("Number of bits:"), (const.property_int, 1, 8, 100), "")) self.values.append(4) self.properties.append((_("Trigger type:"), (const.property_select, _("Positive edge"), _("Negative edge")), "")) self.values.append(0) self.properties.append((_("Propagation delay:"), None, "")) self.properties.append((_("tPHL:"), (const.property_float, 0, 1000, 3, 100), "µs")) self.values.append(0) self.properties.append((_("tPLH:"), (const.property_float, 0, 1000, 3, 100), "µs")) self.values.append(0) self.store = [False, False, False, False] def propertyChanged(self, prop): self.outpin_t = -40 - (prop[0] - 1) * 10 self.outpin_b = -40 + (prop[0] - 1) * 10 self.comp_rect = [10, min((self.outpin_t - 30, -90)), 120, max((self.outpin_b + 10, -10))] self.output_pins = [(120, y) for y in range(self.outpin_t, self.outpin_b + 1, 20)] self.output_pins_dir = [const.direction_W for i in range(prop[0])] self.output_level = [False for i in range(prop[0])] self.tp_hl = prop[2] * 0.000001 self.tp_lh = prop[3] * 0.000001 self.store = [False for i in range(prop[0])] return False def drawComponent(self, cr, layout): cr.rectangle(30, self.comp_rect[1], 70, self.comp_rect[3] - self.comp_rect[1]) if self.values[1] == 1: cr.arc(25, -40, 5, 0, 2 * math.pi) cairo_paths(cr, (30, -45), (40, -40), (30, -35)) cr.stroke() cairo_draw_text(cr, layout, "SIPO", 65, self.comp_rect[1] + 10, 0.5, 0.5) cairo_draw_text(cr, layout, "D", 45, -60, 0.0, 0.5) cairo_draw_text(cr, layout, "CK", 45, -40, 0.0, 0.5) cairo_draw_text(cr, layout, "RST", 45, -20, 0.0, 0.5) for i, y in enumerate(range(self.outpin_t, self.outpin_b + 1, 20)): cairo_draw_text(cr, layout, "Q%d" % i, 95, y, 1.0, 0.5) cr.fill() def drawComponentEditOverlap(self, cr, layout): cairo_paths(cr, (10, -60), (30, -60)) if self.values[1] == 0: cairo_paths(cr, (10, -40), (30, -40)) else: cairo_paths(cr, (10, -40), (20, -40)) cairo_paths(cr, (10, -20), (30, -20)) for i, y in enumerate(range(self.outpin_t, self.outpin_b + 1, 20)): cairo_paths(cr, (100, y), (120, y)) cr.stroke() def drawComponentRunOverlap(self, cr, layout): if self.input_level[0]: cr.set_source(Preference.highlevel_color) else: cr.set_source(Preference.lowlevel_color) cairo_paths(cr, (10, -60), (30, -60)) cr.stroke() if self.input_level[1]: cr.set_source(Preference.highlevel_color) else: cr.set_source(Preference.lowlevel_color) if self.values[1] == 0: cairo_paths(cr, (10, -40), (30, -40)) else: cairo_paths(cr, (10, -40), (20, -40)) cr.stroke() if self.input_level[2]: cr.set_source(Preference.highlevel_color) else: cr.set_source(Preference.lowlevel_color) cairo_paths(cr, (10, -20), (30, -20)) cr.stroke() for i, y in enumerate(range(self.outpin_t, self.outpin_b + 1, 20)): if self.output_level[i]: cr.set_source(Preference.highlevel_color) else: cr.set_source(Preference.lowlevel_color) cairo_paths(cr, (100, y), (120, y)) cr.stroke() def isMouseOvered(self, x, y): if self.pos_x + self.comp_rect[0] + 3 <= x <= self.pos_x + self.comp_rect[2] - 3 and self.pos_y + self.comp_rect[1] + 3 <= y <= self.pos_y + self.comp_rect[3] - 3: return True return False def initialize(self): self.store = [False for i in range(self.values[0])] self.output_stack = [[[0.0, False]] for i in range(self.values[0])] def calculate(self, input_datas, time): if input_datas[2]: self.store = [False for i in range(self.values[0])] elif (self.values[1] == 0 and not self.input_level[1] and input_datas[1]) or (self.values[1] == 1 and self.input_level[1] and not input_datas[1]): # trigger self.store.insert(0, input_datas[0]) self.store.pop() else: return stack_with_tphl_lh(time, self.output_level, self.output_stack, self.store, self.tp_hl, self.tp_lh) class PISOShiftRegister(BaseComponent): def __init__(self, *args, **kwds): BaseComponent.__init__(self, *args, **kwds) self.description = _("PISO shift register") self.comp_rect = [10, -140, 120, 0] self.input_pins = [(10, -110), (10, -90), (10, -70), (10, -50), (10, -30), (10, -10)] self.output_pins = [(120, -70), (120, -50)] self.input_pins_dir = [const.direction_E, const.direction_E, const.direction_E, const.direction_E, const.direction_E, const.direction_E] self.output_pins_dir = [const.direction_W, const.direction_W] self.input_level = [False, False, False, False, False, False] self.output_level = [False, True] self.tp_hl = 0.0 self.tp_lh = 0.0 self.inpin_t = -90 self.inpin_b = -30 self.prop_names = ["bits", "trig", "tphl", "tplh"] self.properties.append((_("Number of bits:"), (const.property_int, 1, 8, 100), "")) self.values.append(4) self.properties.append((_("Trigger type:"), (const.property_select, _("Positive edge"), _("Negative edge")), "")) self.values.append(0) self.properties.append((_("Propagation delay:"), None, "")) self.properties.append((_("tPHL:"), (const.property_float, 0, 1000, 3, 100), "µs")) self.values.append(0) self.properties.append((_("tPLH:"), (const.property_float, 0, 1000, 3, 100), "µs")) self.values.append(0) def propertyChanged(self, prop): self.inpin_t = -60 - (prop[0] - 1) * 10 self.inpin_b = -60 + (prop[0] - 1) * 10 self.comp_rect = [10, min((self.inpin_t - 50, -90)), 120, max((self.inpin_b + 30, -30))] self.input_pins = [(10, y) for y in range(self.inpin_t - 20, self.inpin_b + 21, 20)] self.input_pins_dir = [const.direction_E for i in range(prop[0] + 2)] self.input_level = [False for i in range(prop[0] + 2)] self.tp_hl = prop[2] * 0.000001 self.tp_lh = prop[3] * 0.000001 return False def drawComponent(self, cr, layout): cr.rectangle(30, self.comp_rect[1], 70, self.comp_rect[3] - self.comp_rect[1]) if self.values[1] == 1: cr.arc(25, self.inpin_b + 20, 5, 0, 2 * math.pi) cairo_paths(cr, (30, self.inpin_b + 15), (40, self.inpin_b + 20), (30, self.inpin_b + 25)) cr.stroke() cairo_draw_text(cr, layout, "PISO", 65, self.comp_rect[1] + 10, 0.5, 0.5) for i, y in enumerate(range(self.inpin_t, self.inpin_b + 1, 20)): cairo_draw_text(cr, layout, "D%d" % i, 45, y, 0.0, 0.5) cairo_draw_text(cr, layout, "W/S", 45, self.inpin_t - 20, 0.0, 0.5) cairo_draw_text(cr, layout, "CK", 45, self.inpin_b + 20, 0.0, 0.5) cairo_draw_text(cr, layout, "Q", 95, -70, 1.0, 0.5) cairo_draw_text(cr, layout, "~Q", 95, -50, 1.0, 0.5) cr.fill() def drawComponentEditOverlap(self, cr, layout): cairo_paths(cr, (10, self.inpin_t - 20), (30, self.inpin_t - 20)) if self.values[1] == 0: cairo_paths(cr, (10, self.inpin_b + 20), (30, self.inpin_b + 20)) else: cairo_paths(cr, (10, self.inpin_b + 20), (20, self.inpin_b + 20)) for i, y in enumerate(range(self.inpin_t, self.inpin_b + 1, 20)): cairo_paths(cr, (10, y), (30, y)) cairo_paths(cr, (100, -70), (120, -70)) cairo_paths(cr, (100, -50), (120, -50)) cr.stroke() def drawComponentRunOverlap(self, cr, layout): for i, y in enumerate(range(self.inpin_t - 20, self.inpin_b + 1, 20)): if self.input_level[i]: cr.set_source(Preference.highlevel_color) else: cr.set_source(Preference.lowlevel_color) cairo_paths(cr, (10, y), (30, y)) cr.stroke() if self.input_level[-1]: cr.set_source(Preference.highlevel_color) else: cr.set_source(Preference.lowlevel_color) if self.values[1] == 0: cairo_paths(cr, (10, self.inpin_b + 20), (30, self.inpin_b + 20)) else: cairo_paths(cr, (10, self.inpin_b + 20), (20, self.inpin_b + 20)) cr.stroke() if self.output_level[0]: cr.set_source(Preference.highlevel_color) else: cr.set_source(Preference.lowlevel_color) cairo_paths(cr, (100, -70), (120, -70)) cr.stroke() if self.output_level[1]: cr.set_source(Preference.highlevel_color) else: cr.set_source(Preference.lowlevel_color) cairo_paths(cr, (100, -50), (120, -50)) cr.stroke() def isMouseOvered(self, x, y): if self.pos_x + self.comp_rect[0] + 3 <= x <= self.pos_x + self.comp_rect[2] - 3 and self.pos_y + self.comp_rect[1] + 3 <= y <= self.pos_y + self.comp_rect[3] - 3: return True return False def initialize(self): self.store = [False for i in range(self.values[0])] self.output_stack = [[[0.0, False]], [[0.0, True]]] def calculate(self, input_datas, time): if (self.values[1] == 0 and not self.input_level[-1] and input_datas[-1]) or (self.values[1] == 1 and self.input_level[-1] and not input_datas[-1]): # trigger if input_datas[0] == 0: self.store = input_datas[1:-2] output_data = [input_datas[-2], not input_datas[-2]] elif self.store: output = self.store.pop() output_data = [output, not output] else: return stack_with_tphl_lh(time, self.output_level, self.output_stack, output_data, self.tp_hl, self.tp_lh) else: return class PIPOShiftRegister(BaseComponent): def __init__(self, *args, **kwds): BaseComponent.__init__(self, *args, **kwds) self.description = _("PIPO shift register") self.comp_rect = [10, -200, 120, 0] self.input_pins = [(10, -170), (10, -150), (10, -130), (10, -110), (10, -90), (10, -70), (10, -50), (10, -30), (10, -10)] self.output_pins = [(120, -110), (120, -90), (120, -70), (120, -50)] self.input_pins_dir = [const.direction_E, const.direction_E, const.direction_E, const.direction_E, const.direction_E, const.direction_E, const.direction_E, const.direction_E, const.direction_E] self.output_pins_dir = [const.direction_W, const.direction_W, const.direction_W, const.direction_W] self.input_level = [False, False, False, False, False, False, False, False, False] self.output_level = [False, False, False, False] self.tp_hl = 0.0 self.tp_lh = 0.0 self.outpin_t = -110 self.outpin_b = -50 self.prop_names = ["bits", "trig", "tphl", "tplh"] self.properties.append((_("Number of bits:"), (const.property_int, 1, 8, 100), "")) self.values.append(4) self.properties.append((_("Trigger type:"), (const.property_select, _("Positive edge"), _("Negative edge")), "")) self.values.append(0) self.properties.append((_("Propagation delay:"), None, "")) self.properties.append((_("tPHL:"), (const.property_float, 0, 1000, 3, 100), "µs")) self.values.append(0) self.properties.append((_("tPLH:"), (const.property_float, 0, 1000, 3, 100), "µs")) self.values.append(0) def propertyChanged(self, prop): self.outpin_t = -60 - (prop[0] - 1) * 10 self.outpin_b = -60 + (prop[0] - 1) * 10 self.comp_rect = [10, min((self.outpin_t - 90, -90)), 120, max((self.outpin_b + 50, -30))] self.input_pins = [(10, y) for y in range(self.outpin_t - 60, self.outpin_b + 41, 20)] self.input_pins_dir = [const.direction_E for i in range(prop[0] + 5)] self.input_level = [False for i in range(prop[0] + 5)] self.output_pins = [(120, y) for y in range(self.outpin_t, self.outpin_b + 1, 20)] self.output_pins_dir = [const.direction_W for i in range(prop[0])] self.output_level = [False for i in range(prop[0])] self.tp_hl = prop[2] * 0.000001 self.tp_lh = prop[3] * 0.000001 return False def drawComponent(self, cr, layout): cr.rectangle(30, self.comp_rect[1], 70, self.comp_rect[3] - self.comp_rect[1]) if self.values[1] == 1: cr.arc(25, self.outpin_b + 20, 5, 0, 2 * math.pi) cairo_paths(cr, (30, self.outpin_b + 35), (40, self.outpin_b + 40), (30, self.outpin_b + 45)) cr.stroke() cairo_draw_text(cr, layout, "PIPO", 65, self.comp_rect[1] + 10, 0.5, 0.5) cairo_draw_text(cr, layout, "S0", 45, self.outpin_t - 60, 0.0, 0.5) cairo_draw_text(cr, layout, "S1", 45, self.outpin_t - 40, 0.0, 0.5) cairo_draw_text(cr, layout, "SR", 45, self.outpin_t - 20, 0.0, 0.5) for i, y in enumerate(range(self.outpin_t, self.outpin_b + 1, 20)): cairo_draw_text(cr, layout, "D%d" % i, 45, y, 0.0, 0.5) cairo_draw_text(cr, layout, "Q%d" % i, 95, y, 1.0, 0.5) cairo_draw_text(cr, layout, "SL", 45, self.outpin_b + 20, 0.0, 0.5) cairo_draw_text(cr, layout, "CK", 45, self.outpin_b + 40, 0.0, 0.5) cr.fill() def drawComponentEditOverlap(self, cr, layout): cairo_paths(cr, (10, self.outpin_t - 60), (30, self.outpin_t - 60)) cairo_paths(cr, (10, self.outpin_t - 40), (30, self.outpin_t - 40)) cairo_paths(cr, (10, self.outpin_t - 20), (30, self.outpin_t - 20)) for i, y in enumerate(range(self.outpin_t, self.outpin_b + 1, 20)): cairo_paths(cr, (10, y), (30, y)) cairo_paths(cr, (100, y), (120, y)) cairo_paths(cr, (10, self.outpin_b + 20), (30, self.outpin_b + 20)) if self.values[1] == 0: cairo_paths(cr, (10, self.outpin_b + 40), (30, self.outpin_b + 40)) else: cairo_paths(cr, (10, self.outpin_b + 40), (20, self.outpin_b + 40)) cr.stroke() def drawComponentRunOverlap(self, cr, layout): for i, y in enumerate(range(self.outpin_t - 60, self.outpin_b + 21, 20)): if self.input_level[i]: cr.set_source(Preference.highlevel_color) else: cr.set_source(Preference.lowlevel_color) cairo_paths(cr, (10, y), (30, y)) cr.stroke() if self.input_level[-1]: cr.set_source(Preference.highlevel_color) else: cr.set_source(Preference.lowlevel_color) if self.values[1] == 0: cairo_paths(cr, (10, self.outpin_b + 40), (30, self.outpin_b + 40)) else: cairo_paths(cr, (10, self.outpin_b + 40), (20, self.outpin_b + 40)) cr.stroke() for i, y in enumerate(range(self.outpin_t, self.outpin_b + 1, 20)): if self.output_level[i]: cr.set_source(Preference.highlevel_color) else: cr.set_source(Preference.lowlevel_color) cairo_paths(cr, (100, y), (120, y)) cr.stroke() def isMouseOvered(self, x, y): if self.pos_x + self.comp_rect[0] + 3 <= x <= self.pos_x + self.comp_rect[2] - 3 and self.pos_y + self.comp_rect[1] + 3 <= y <= self.pos_y + self.comp_rect[3] - 3: return True return False def initialize(self): self.store = [False for i in range(self.values[0])] self.output_stack = [[[0.0, False]] for i in range(self.values[0])] def calculate(self, input_datas, time): if (self.values[1] == 0 and not self.input_level[-1] and input_datas[-1]) or (self.values[1] == 1 and self.input_level[-1] and not input_datas[-1]): # trigger if input_datas[0] and input_datas[1]: self.store = input_datas[3:-2] elif not input_datas[0] and input_datas[1]: self.store.append(input_datas[-2]) self.store.pop(0) elif input_datas[0] and not input_datas[1]: self.store.insert(0, input_datas[2]) self.store.pop() else: return stack_with_tphl_lh(time, self.output_level, self.output_stack, self.store, self.tp_hl, self.tp_lh) else: return glogic-2.6/glogic/Components/Makefile.am0000644000175000017500000000030312036254747015201 00000000000000componentsdir = $(pythondir)/glogic/Components components_PYTHON = \ __init__.py \ Calculator.py \ Counter.py \ FlipFlop.py \ Misc.py \ Standard.py \ StateViewer.py \ SystemComponents.py glogic-2.6/glogic/Components/Misc.py0000644000175000017500000000237112043117265014410 00000000000000# -*- coding: utf-8; indent-tabs-mode: t; tab-width: 4 -*- import math from gettext import gettext as _ from glogic import const from glogic.Components.SystemComponents import BaseComponent from glogic.Utils import * from gi.repository import Pango class Text(BaseComponent): def __init__(self, *args, **kwds): BaseComponent.__init__(self, *args, **kwds) self.description = _("Text") self.comp_rect = [10, -12, 24, 0] self.prop_names = ["text"] self.properties.append((_("Text:"), (const.property_string, 20), "")) self.values.append("Text") self.width = 12 self.height = 12 def propertyChanged(self, prop): if prop[0] == "": return True return False def drawComponent(self, cr, layout): cairo_draw_text(cr, layout, self.values[0], 10, -10, 0.0, 0.5) cr.fill() (w, h) = layout.get_size() self.width = w / Pango.SCALE if self.width < 12: self.width = 12 self.height = h / Pango.SCALE if self.height < 12: self.height = 12 self.comp_rect = [10, -10-self.height/2, 10+self.width, -10+self.height/2] self.set_rot_props() def isMouseOvered(self, x, y): if self.pos_x + 10 <= x <= self.pos_x + self.width + 10 and self.pos_y - 10 - self.height / 2 <= y <= self.pos_y - 10 + self.height / 2: return True return False glogic-2.6/glogic/Components/Makefile.in0000644000175000017500000003312412044406014015202 00000000000000# Makefile.in generated by automake 1.11.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : subdir = glogic/Components DIST_COMMON = $(components_PYTHON) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/as-ac-expand.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__py_compile = PYTHON=$(PYTHON) $(SHELL) $(py_compile) am__installdirs = "$(DESTDIR)$(componentsdir)" py_compile = $(top_srcdir)/py-compile DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BZRREV = @BZRREV@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIR = @DATADIR@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ HELP_DIR = @HELP_DIR@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ ITSTOOL = @ITSTOOL@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_VERSION = @PYTHON_VERSION@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XMLLINT = @XMLLINT@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ intltool__v_merge_options_ = @intltool__v_merge_options_@ intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ componentsdir = $(pythondir)/glogic/Components components_PYTHON = \ __init__.py \ Calculator.py \ Counter.py \ FlipFlop.py \ Misc.py \ Standard.py \ StateViewer.py \ SystemComponents.py all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu glogic/Components/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu glogic/Components/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-componentsPYTHON: $(components_PYTHON) @$(NORMAL_INSTALL) @list='$(components_PYTHON)'; dlist=; list2=; test -n "$(componentsdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(componentsdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(componentsdir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then b=; else b="$(srcdir)/"; fi; \ if test -f $$b$$p; then \ $(am__strip_dir) \ dlist="$$dlist $$f"; \ list2="$$list2 $$b$$p"; \ else :; fi; \ done; \ for file in $$list2; do echo $$file; done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(componentsdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(componentsdir)" || exit $$?; \ done || exit $$?; \ if test -n "$$dlist"; then \ $(am__py_compile) --destdir "$(DESTDIR)" \ --basedir "$(componentsdir)" $$dlist; \ else :; fi uninstall-componentsPYTHON: @$(NORMAL_UNINSTALL) @list='$(components_PYTHON)'; test -n "$(componentsdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ dir='$(DESTDIR)$(componentsdir)'; \ filesc=`echo "$$files" | sed 's|$$|c|'`; \ fileso=`echo "$$files" | sed 's|$$|o|'`; \ st=0; \ for files in "$$files" "$$filesc" "$$fileso"; do \ $(am__uninstall_files_from_dir) || st=$$?; \ done; \ exit $$st tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile installdirs: for dir in "$(DESTDIR)$(componentsdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-componentsPYTHON install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-componentsPYTHON .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic distclean \ distclean-generic distdir dvi dvi-am html html-am info info-am \ install install-am install-componentsPYTHON install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am uninstall uninstall-am \ uninstall-componentsPYTHON # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: glogic-2.6/glogic/Components/FlipFlop.py0000644000175000017500000003166412042716742015243 00000000000000# -*- coding: utf-8; indent-tabs-mode: t; tab-width: 4 -*- import math from gettext import gettext as _ from glogic import const from glogic.Components.SystemComponents import BaseComponent from glogic import Preference from glogic.Utils import * class RSFF(BaseComponent): def __init__(self, *args, **kwds): BaseComponent.__init__(self, *args, **kwds) self.description = _("RS flip-flop") self.comp_rect = [10, -40, 100, 0] self.input_pins = [(10, -30), (10, -10)] self.output_pins = [(100, -30), (100, -10)] self.input_pins_dir = [const.direction_E, const.direction_E] self.output_pins_dir = [const.direction_W, const.direction_W] self.input_level = [False, False] self.output_level = [False, True] self.tp_hl = 0.0 self.tp_lh = 0.0 self.prop_names = ["tphl", "tplh"] self.properties.append((_("Propagation delay:"), None, "")) self.properties.append((_("tPHL:"), (const.property_float, 0, 1000, 3, 100), "µs")) self.values.append(0) self.properties.append((_("tPLH:"), (const.property_float, 0, 1000, 3, 100), "µs")) self.values.append(0) def propertyChanged(self, prop): self.tp_hl = prop[0] * 0.000001 self.tp_lh = prop[1] * 0.000001 return False def drawComponent(self, cr, layout): cr.rectangle(30, -40, 50, 40) cr.stroke() cairo_draw_text(cr, layout, "S", 35, -30, 0.0, 0.5) cairo_draw_text(cr, layout, "R", 35, -10, 0.0, 0.5) cairo_draw_text(cr, layout, "Q", 75, -30, 1.0, 0.5) cairo_draw_text(cr, layout, "~Q", 75, -10, 1.0, 0.5) cr.fill() def drawComponentEditOverlap(self, cr, layout): cairo_paths(cr, (10, -30), (30, -30)) cairo_paths(cr, (10, -10), (30, -10)) cairo_paths(cr, (80, -30), (100, -30)) cairo_paths(cr, (80, -10), (100, -10)) cr.stroke() def drawComponentRunOverlap(self, cr, layout): if self.input_level[0]: cr.set_source(Preference.highlevel_color) else: cr.set_source(Preference.lowlevel_color) cairo_paths(cr, (10, -30), (30, -30)) cr.stroke() if self.input_level[1]: cr.set_source(Preference.highlevel_color) else: cr.set_source(Preference.lowlevel_color) cairo_paths(cr, (10, -10), (30, -10)) cr.stroke() if self.output_level[0]: cr.set_source(Preference.highlevel_color) else: cr.set_source(Preference.lowlevel_color) cairo_paths(cr, (80, -30), (100, -30)) cr.stroke() if self.output_level[1]: cr.set_source(Preference.highlevel_color) else: cr.set_source(Preference.lowlevel_color) cairo_paths(cr, (80, -10), (100, -10)) cr.stroke() def isMouseOvered(self, x, y): if self.pos_x + 13 <= x <= self.pos_x + 97 and self.pos_y - 37 <= y <= self.pos_y - 3: return True return False def initialize(self): self.output_stack = [[[0.0, False]], [[0.0, True]]] def calculate(self, input_datas, time): if input_datas[0] and not input_datas[1]: output_data = [True, False] elif not input_datas[0] and input_datas[1]: output_data = [False, True] elif input_datas[0] and input_datas[1]: output_data = [False, False] elif not self.output_level[0] and not self.output_level[1]: output_data = [True, False] else: return stack_with_tphl_lh(time, self.output_level, self.output_stack, output_data, self.tp_hl, self.tp_lh) class JKFF(BaseComponent): def __init__(self, *args, **kwds): BaseComponent.__init__(self, *args, **kwds) self.description = _("JK flip-flop") self.comp_rect = [10, -60, 110, 0] self.input_pins = [(10, -50), (10, -30), (10, -10)] self.output_pins = [(110, -50), (110, -10)] self.input_pins_dir = [const.direction_E, const.direction_E, const.direction_E] self.output_pins_dir = [const.direction_W, const.direction_W] self.input_level = [False, False, False] self.output_level = [False, True] self.tp_hl = 0.0 self.tp_lh = 0.0 self.prop_names = ["trig", "tphl", "tplh"] self.properties.append((_("Trigger type:"), (const.property_select, _("Positive edge"), _("Negative edge")), "")) self.values.append(0) self.properties.append((_("Propagation delay:"), None, "")) self.properties.append((_("tPHL:"), (const.property_float, 0, 1000, 3, 100), "µs")) self.values.append(0) self.properties.append((_("tPLH:"), (const.property_float, 0, 1000, 3, 100), "µs")) self.values.append(0) def propertyChanged(self, prop): self.tp_hl = prop[1] * 0.000001 self.tp_lh = prop[2] * 0.000001 return False def drawComponent(self, cr, layout): cr.rectangle(30, -60, 60, 60) if self.values[0] == 1: cr.arc(25, -30, 5, 0, 2 * math.pi) cairo_paths(cr, (30, -35), (40, -30), (30, -25)) cr.stroke() cairo_draw_text(cr, layout, "J", 45, -50, 0.0, 0.5) cairo_draw_text(cr, layout, "CK", 45, -30, 0.0, 0.5) cairo_draw_text(cr, layout, "K", 45, -10, 0.0, 0.5) cairo_draw_text(cr, layout, "Q", 85, -50, 1.0, 0.5) cairo_draw_text(cr, layout, "~Q",85, -10, 1.0, 0.5) cr.fill() def drawComponentEditOverlap(self, cr, layout): cairo_paths(cr, (10, -50), (30, -50)) if self.values[0] == 0: cairo_paths(cr, (10, -30), (30, -30)) else: cairo_paths(cr, (10, -30), (20, -30)) cairo_paths(cr, (10, -10), (30, -10)) cairo_paths(cr, (90, -50), (110, -50)) cairo_paths(cr, (90, -10), (110, -10)) cr.stroke() def drawComponentRunOverlap(self, cr, layout): if self.input_level[0]: cr.set_source(Preference.highlevel_color) else: cr.set_source(Preference.lowlevel_color) cairo_paths(cr, (10, -50), (30, -50)) cr.stroke() if self.input_level[1]: cr.set_source(Preference.highlevel_color) else: cr.set_source(Preference.lowlevel_color) if self.values[0] == 0: cairo_paths(cr, (10, -30), (30, -30)) else: cairo_paths(cr, (10, -30), (20, -30)) cr.stroke() if self.input_level[2]: cr.set_source(Preference.highlevel_color) else: cr.set_source(Preference.lowlevel_color) cairo_paths(cr, (10, -10), (30, -10)) cr.stroke() if self.output_level[0]: cr.set_source(Preference.highlevel_color) else: cr.set_source(Preference.lowlevel_color) cairo_paths(cr, (90, -50), (110, -50)) cr.stroke() if self.output_level[1]: cr.set_source(Preference.highlevel_color) else: cr.set_source(Preference.lowlevel_color) cairo_paths(cr, (90, -10), (110, -10)) cr.stroke() def isMouseOvered(self, x, y): if self.pos_x + 13 <= x <= self.pos_x + 107 and self.pos_y - 57 <= y <= self.pos_y - 3: return True return False def initialize(self): self.output_stack = [[[0.0, False]], [[0.0, True]]] def calculate(self, input_datas, time): if (self.values[0] == 0 and not self.input_level[1] and input_datas[1]) or (self.values[0] == 1 and self.input_level[1] and not input_datas[1]): # trigger if self.input_level[0] and not self.input_level[2]: output_data = [True, False] elif not self.input_level[0] and self.input_level[2]: output_data = [False, True] elif self.input_level[0] and self.input_level[2]: output_data = [self.output_level[1], self.output_level[0]] else: return stack_with_tphl_lh(time, self.output_level, self.output_stack, output_data, self.tp_hl, self.tp_lh) class DFF(BaseComponent): def __init__(self, *args, **kwds): BaseComponent.__init__(self, *args, **kwds) self.description = _("D flip-flop") self.comp_rect = [10, -40, 110, 0] self.input_pins = [(10, -30), (10, -10)] self.output_pins = [(110, -30), (110, -10)] self.input_pins_dir = [const.direction_E, const.direction_E] self.output_pins_dir = [const.direction_W, const.direction_W] self.input_level = [False, False] self.output_level = [False, True] self.tp_hl = 0.0 self.tp_lh = 0.0 self.prop_names = ["trig", "tphl", "tplh"] self.properties.append((_("Trigger type:"), (const.property_select, _("Positive edge"), _("Negative edge")), "")) self.values.append(0) self.properties.append((_("Propagation delay:"), None, "")) self.properties.append((_("tPHL:"), (const.property_float, 0, 1000, 3, 100), "µs")) self.values.append(0) self.properties.append((_("tPLH:"), (const.property_float, 0, 1000, 3, 100), "µs")) self.values.append(0) def propertyChanged(self, prop): self.tp_hl = prop[1] * 0.000001 self.tp_lh = prop[2] * 0.000001 return False def drawComponent(self, cr, layout): cr.rectangle(30, -40, 60, 40) if self.values[0] == 1: cr.arc(25, -10, 5, 0, 2 * math.pi) cairo_paths(cr, (30, -15), (40, -10), (30, -5)) cr.stroke() cairo_draw_text(cr, layout, "D", 45, -30, 0.0, 0.5) cairo_draw_text(cr, layout, "CK", 45, -10, 0.0, 0.5) cairo_draw_text(cr, layout, "Q", 85, -30, 1.0, 0.5) cairo_draw_text(cr, layout, "~Q", 85, -10, 1.0, 0.5) cr.fill() def drawComponentEditOverlap(self, cr, layout): cairo_paths(cr, (10, -30), (30, -30)) if self.values[0] == 0: cairo_paths(cr, (10, -10), (30, -10)) else: cairo_paths(cr, (10, -10), (20, -10)) cairo_paths(cr, (90, -30), (110, -30)) cairo_paths(cr, (90, -10), (110, -10)) cr.stroke() def drawComponentRunOverlap(self, cr, layout): if self.input_level[0]: cr.set_source(Preference.highlevel_color) else: cr.set_source(Preference.lowlevel_color) cairo_paths(cr, (10, -30), (30, -30)) cr.stroke() if self.input_level[1]: cr.set_source(Preference.highlevel_color) else: cr.set_source(Preference.lowlevel_color) if self.values[0] == 0: cairo_paths(cr, (10, -10), (30, -10)) else: cairo_paths(cr, (10, -10), (20, -10)) cr.stroke() if self.output_level[0]: cr.set_source(Preference.highlevel_color) else: cr.set_source(Preference.lowlevel_color) cairo_paths(cr, (90, -30), (110, -30)) cr.stroke() if self.output_level[1]: cr.set_source(Preference.highlevel_color) else: cr.set_source(Preference.lowlevel_color) cairo_paths(cr, (90, -10), (110, -10)) cr.stroke() def isMouseOvered(self, x, y): if self.pos_x + 13 <= x <= self.pos_x + 107 and self.pos_y - 37 <= y <= self.pos_y - 3: return True return False def initialize(self): self.output_stack = [[[0.0, False]], [[0.0, True]]] def calculate(self, input_datas, time): if (self.values[0] == 0 and not self.input_level[1] and input_datas[1]) or (self.values[0] == 1 and self.input_level[1] and not input_datas[1]): # trigger output_data = [input_datas[0], not input_datas[0]] stack_with_tphl_lh(time, self.output_level, self.output_stack, output_data, self.tp_hl, self.tp_lh) class TFF(BaseComponent): def __init__(self, *args, **kwds): BaseComponent.__init__(self, *args, **kwds) self.description = _("T flip-flop") self.comp_rect = [10, -40, 110, 0] self.input_pins = [(10, -20)] self.output_pins = [(110, -30), (110, -10)] self.input_pins_dir = [const.direction_E] self.output_pins_dir = [const.direction_W, const.direction_W] self.input_level = [False] self.output_level = [False, True] self.tp_hl = 0.0 self.tp_lh = 0.0 self.prop_names = ["trig", "tphl", "tplh"] self.properties.append((_("Trigger type:"), (const.property_select, _("Positive edge"), _("Negative edge")), "")) self.values.append(0) self.properties.append((_("Propagation delay:"), None, "")) self.properties.append((_("tPHL:"), (const.property_float, 0, 1000, 3, 100), "µs")) self.values.append(0) self.properties.append((_("tPLH:"), (const.property_float, 0, 1000, 3, 100), "µs")) self.values.append(0) def propertyChanged(self, prop): self.tp_hl = prop[1] * 0.000001 self.tp_lh = prop[2] * 0.000001 return False def drawComponent(self, cr, layout): cr.rectangle(30, -40, 60, 40) if self.values[0] == 1: cr.arc(25, -20, 5, 0, 2 * math.pi) cairo_paths(cr, (30, -25), (40, -20), (30, -15)) cr.stroke() cairo_draw_text(cr, layout, "T", 45, -20, 0.0, 0.5) cairo_draw_text(cr, layout, "Q", 85, -30, 1.0, 0.5) cairo_draw_text(cr, layout, "~Q", 85, -10, 1.0, 0.5) cr.fill() def drawComponentEditOverlap(self, cr, layout): if self.values[0] == 0: cairo_paths(cr, (10, -20), (30, -20)) else: cairo_paths(cr, (10, -20), (20, -20)) cairo_paths(cr, (90, -30), (110, -30)) cairo_paths(cr, (90, -10), (110, -10)) cr.stroke() def drawComponentRunOverlap(self, cr, layout): if self.input_level[0]: cr.set_source(Preference.highlevel_color) else: cr.set_source(Preference.lowlevel_color) if self.values[0] == 0: cairo_paths(cr, (10, -20), (30, -20)) else: cairo_paths(cr, (10, -20), (20, -20)) cr.stroke() if self.output_level[0]: cr.set_source(Preference.highlevel_color) else: cr.set_source(Preference.lowlevel_color) cairo_paths(cr, (90, -30), (110, -30)) cr.stroke() if self.output_level[1]: cr.set_source(Preference.highlevel_color) else: cr.set_source(Preference.lowlevel_color) cairo_paths(cr, (90, -10), (110, -10)) cr.stroke() def isMouseOvered(self, x, y): if self.pos_x + 13 <= x <= self.pos_x + 107 and self.pos_y - 37 <= y <= self.pos_y - 3: return True return False def initialize(self): self.output_stack = [[[0.0, False]], [[0.0, True]]] def calculate(self, input_datas, time): if (self.values[0] == 0 and not self.input_level[0] and input_datas[0]) or (self.values[0] == 1 and self.input_level[0] and not input_datas[0]): # trigger output_data = [self.output_level[1], self.output_level[0]] stack_with_tphl_lh(time, self.output_level, self.output_stack, output_data, self.tp_hl, self.tp_lh) glogic-2.6/glogic/DrawArea.py0000644000175000017500000011265712044142012013054 00000000000000# -*- coding: utf-8; indent-tabs-mode: t; tab-width: 4 -*- import math, copy, cairo from glogic import const from glogic.Utils import * from glogic.Components import comp_dict from glogic import Preference from gi.repository import Gtk, Gdk, GdkPixbuf, PangoCairo class DrawArea(Gtk.ScrolledWindow): def __init__(self, parent): Gtk.ScrolledWindow.__init__(self) self.set_hexpand(True) self.set_vexpand(True) self.width = 1920 self.height = 1080 self.vadj = self.get_vadjustment() self.hadj = self.get_hadjustment() self.netstarted = False self.drawingarea = Gtk.DrawingArea() self.drawingarea.set_size_request(self.width, self.height) self.add_with_viewport(self.drawingarea) self.drawingarea.set_events(Gdk.EventMask.ENTER_NOTIFY_MASK | Gdk.EventMask.LEAVE_NOTIFY_MASK | Gdk.EventMask.POINTER_MOTION_MASK | Gdk.EventMask.BUTTON_PRESS_MASK | Gdk.EventMask.BUTTON_RELEASE_MASK) self.drawingarea.connect("draw", self.on_draw) self.drawingarea.connect("enter-notify-event", self.on_enter) self.drawingarea.connect("leave-notify-event", self.on_leave) self.drawingarea.connect("motion-notify-event", self.on_motion) self.drawingarea.connect("button-press-event", self.on_button_press) self.drawingarea.connect("button-release-event", self.on_button_release) parent.connect("key-press-event", self.on_key_press) parent.connect("key-release-event", self.on_key_release) self.cursor_x = 0 self.cursor_y = 0 self.parent = parent self.added = False self.preadd = False self.drag_enabled = False self.preselected_component = None self.component_dragged = False self.cursor_over = False self.nearest_component = None self.rect_select_enabled = False self.middle_move_enabled = False self.mouse_down = False self.mbitmap = None self.circuit = None self.redraw = True self.netstarted = False self.mpixbuf = cairo.ImageSurface(cairo.FORMAT_RGB24, self.width, self.height) self._pasted_components = None self._pushed_component_name = const.component_none self._pushed_component = comp_dict[const.component_none] def on_draw(self, widget, cr): if self.redraw: mcr = cairo.Context(self.mpixbuf) if self.parent.running_mode: mcr.set_source(Preference.bg_color_running) else: mcr.set_source(Preference.bg_color) mcr.rectangle(0, 0, self.width, self.height) mcr.fill() mcr.translate(0.5, 0.5) matrix = mcr.get_matrix() mcr.set_line_width(1.0) layout = PangoCairo.create_layout(mcr) layout.set_font_description(Preference.drawing_font) if not self.parent.running_mode: # Draw grids mcr.set_source(Preference.grid_color) for x in range(0, self.width, 10): cairo_paths(mcr, (x, 0), (x, self.height)) for y in range(0, self.height, 10): cairo_paths(mcr, (0, y), (self.width, y)) mcr.stroke() # Draw component for c in self.circuit.components: if c[0] != const.component_net: if not c in self.circuit.selected_components: mcr.translate(c[1].pos_x, c[1].pos_y) m = cairo.Matrix(xx = c[1].matrix[0], xy = c[1].matrix[1], yx = c[1].matrix[2], yy = c[1].matrix[3]) mcr.set_matrix(m.multiply(mcr.get_matrix())) if self.parent.running_mode: mcr.set_source(Preference.component_color_running) c[1].drawComponent(mcr, layout) else: mcr.set_source(Preference.component_color) c[1].drawComponent(mcr, layout) mcr.set_source(Preference.component_color) c[1].drawComponentEditOverlap(mcr, layout) mcr.set_matrix(matrix) if not self.parent.running_mode: # Draw net for c in self.circuit.components: if c[0] == const.component_net: if not c in self.circuit.selected_components: mcr.set_source(Preference.net_color) cairo_paths(mcr, (c[1], c[2]), (c[3], c[4])) mcr.stroke() # Draw terminal of components mcr.set_source(Preference.terminal_color) for c in self.circuit.components: if c[0] != const.component_net: if not c in self.circuit.selected_components: for p in c[1].rot_input_pins + c[1].rot_output_pins: mcr.rectangle(c[1].pos_x+p[0]-1.5, c[1].pos_y+p[1]-1.5, 3, 3) mcr.fill() # Draw terminal of nets mcr.set_source(Preference.terminal_color) for c in self.circuit.components: if c[0] == const.component_net: if not c in self.circuit.selected_components: mcr.rectangle(c[1]-1.5, c[2]-1.5, 3, 3) mcr.rectangle(c[3]-1.5, c[4]-1.5, 3, 3) mcr.fill() # Draw selected components if not self.component_dragged: mcr.set_source(Preference.selected_color) for c in self.circuit.selected_components: if c[0] == const.component_net: cairo_paths(mcr, (c[1], c[2]), (c[3], c[4])) mcr.stroke() for c in self.circuit.selected_components: if c[0] != const.component_net: mcr.translate(c[1].pos_x, c[1].pos_y) m = cairo.Matrix(xx = c[1].matrix[0], xy = c[1].matrix[1], yx = c[1].matrix[2], yy = c[1].matrix[3]) mcr.set_matrix(m.multiply(mcr.get_matrix())) c[1].drawComponent(mcr, layout) c[1].drawComponentEditOverlap(mcr, layout) mcr.set_matrix(matrix) for c in self.circuit.selected_components: if c[0] != const.component_net: for p in c[1].rot_input_pins + c[1].rot_output_pins: mcr.rectangle(c[1].pos_x+p[0]-1.5, c[1].pos_y+p[1]-1.5, 3, 3) for c in self.circuit.selected_components: if c[0] == const.component_net: mcr.rectangle(c[1]-1.5, c[2]-1.5, 3, 3) mcr.rectangle(c[3]-1.5, c[4]-1.5, 3, 3) mcr.fill() self.redraw = False cr.set_source_surface(self.mpixbuf, 0, 0); cr.paint(); cr.translate(0.5, 0.5) matrix = cr.get_matrix() cr.set_line_width(1.0) layout = PangoCairo.create_layout(cr) layout.set_font_description(Preference.drawing_font) if self.rect_select_enabled: cr.set_source_rgba(1, 0.75, 0, 0.25) cr.rectangle(self.select_start_x-0.5, self.select_start_y-0.5, self.cursor_smooth_x - self.select_start_x, self.cursor_smooth_y- self.select_start_y) cr.fill() cr.set_source_rgb(1, 0.75, 0) cr.set_line_width(1.0) cr.rectangle(self.select_start_x-0.5, self.select_start_y-0.5, self.cursor_smooth_x - self.select_start_x, self.cursor_smooth_y- self.select_start_y) cr.stroke() cr.set_line_width(1.0) if not self.parent.running_mode and not self.added and self.cursor_over and (self._pushed_component_name != const.component_none or self._pasted_components): if self._pushed_component_name == const.component_net: # Draw cursor cr.set_source(Preference.cursor_color) cr.arc(self.cursor_x, self.cursor_y, 3, 0, 2 * math.pi) cr.stroke() if self.netstarted: # Draw net cr.set_source(Preference.net_color) if self.net_right and self.netstart_x < self.cursor_x or self.net_left and self.cursor_x < self.netstart_x: cairo_paths(cr, (self.netstart_x, self.netstart_y), (self.cursor_x, self.netstart_y)) if self.netstart_y != self.cursor_y: cairo_paths(cr, (self.cursor_x, self.netstart_y), (self.cursor_x, self.cursor_y)) cr.stroke() cr.set_source(Preference.terminal_color) cr.rectangle(self.cursor_x-1.5, self.netstart_y-1.5, 3, 3) cr.fill() else: if self.netstart_y != self.cursor_y: cairo_paths(cr, (self.netstart_x, self.netstart_y), (self.netstart_x, self.cursor_y)) if self.netstart_x != self.cursor_x: cairo_paths(cr, (self.netstart_x, self.cursor_y), (self.cursor_x, self.cursor_y)) cr.stroke() cr.set_source(Preference.terminal_color) cr.rectangle(self.netstart_x-1.5, self.cursor_y-1.5, 3, 3) cr.fill() cr.rectangle(self.netstart_x-1.5, self.netstart_y-1.5, 3, 3) cr.fill() elif self._pasted_components: # Draw pasted component if self.preadd: cr.set_source(Preference.preadd_color) else: cr.set_source(Preference.picked_color) for c in self._pasted_components: cr.translate(self.cursor_x - self._paste_center_x, self.cursor_y - self._paste_center_y) if c[0] != const.component_net: cr.translate(c[1].pos_x, c[1].pos_y) m = cairo.Matrix(xx = c[1].matrix[0], xy = c[1].matrix[1], yx = c[1].matrix[2], yy = c[1].matrix[3]) cr.set_matrix(m.multiply(cr.get_matrix())) c[1].drawComponent(cr, layout) c[1].drawComponentEditOverlap(cr, layout) else: cairo_paths(cr, (c[1], c[2]), (c[3], c[4])) cr.stroke() cr.rectangle(c[1]-1.5, c[2]-1.5, 3, 3) cr.rectangle(c[3]-1.5, c[4]-1.5, 3, 3) cr.fill() cr.set_matrix(matrix) else: # Draw picked component if self.preadd: cr.set_source(Preference.preadd_color) else: cr.set_source(Preference.picked_color) logicand = self._pushed_component cr.translate(self.cursor_x, self.cursor_y) m = cairo.Matrix(xx = logicand.matrix[0], xy = logicand.matrix[1], yx = logicand.matrix[2], yy = logicand.matrix[3]) cr.set_matrix(m.multiply(cr.get_matrix())) logicand.drawComponent(cr, layout) logicand.drawComponentEditOverlap(cr, layout) cr.set_matrix(matrix) if self.parent.running_mode: # Draw net of components cr.set_source(Preference.component_color_running) for c in self.circuit.components: if c[0] != const.component_net: if not c in self.circuit.selected_components: cr.translate(c[1].pos_x, c[1].pos_y) m = cairo.Matrix(xx = c[1].matrix[0], xy = c[1].matrix[1], yx = c[1].matrix[2], yy = c[1].matrix[3]) cr.set_matrix(m.multiply(cr.get_matrix())) cr.set_source(Preference.component_color_running) c[1].drawComponentRunOverlap(cr, layout) cr.set_matrix(matrix) # Draw net for c in self.circuit.components: if c[0] == const.component_net: if not c in self.circuit.selected_components: for i,net in enumerate(self.circuit.net_connections): if (c[1], c[2]) in net: if self.circuit.net_levels[i] == 1: cr.set_source(Preference.highlevel_color) elif self.circuit.net_levels[i] == 0: cr.set_source(Preference.lowlevel_color) else: cr.set_source(Preference.net_color_running) cairo_paths(cr, (c[1], c[2]), (c[3], c[4])) cr.stroke() # Draw terminal of nets cr.set_source(Preference.terminal_color_running) for c in self.circuit.components: if c[0] == const.component_net: if not c in self.circuit.selected_components: if not (c[1], c[2]) in self.circuit.net_no_dot: cr.rectangle(c[1]-1.5, c[2]-1.5, 3, 3) elif not (c[3], c[4]) in self.circuit.net_no_dot: cr.rectangle(c[3]-1.5, c[4]-1.5, 3, 3) cr.fill() else: # Draw selected components if self.component_dragged: cr.set_source(Preference.selected_color) for c in self.circuit.selected_components: if c[0] == const.component_net: cairo_paths(cr, (c[1], c[2]), (c[3], c[4])) cr.stroke() for c in self.circuit.selected_components: if c[0] != const.component_net: cr.translate(c[1].pos_x, c[1].pos_y) m = cairo.Matrix(xx = c[1].matrix[0], xy = c[1].matrix[1], yx = c[1].matrix[2], yy = c[1].matrix[3]) cr.set_matrix(m.multiply(cr.get_matrix())) c[1].drawComponent(cr, layout) c[1].drawComponentEditOverlap(cr, layout) cr.set_matrix(matrix) for c in self.circuit.selected_components: if c[0] != const.component_net: for p in c[1].rot_input_pins + c[1].rot_output_pins: cr.rectangle(c[1].pos_x+p[0]-1.5, c[1].pos_y+p[1]-1.5, 3, 3) for c in self.circuit.selected_components: if c[0] == const.component_net: cr.rectangle(c[1]-1.5, c[2]-1.5, 3, 3) cr.rectangle(c[3]-1.5, c[4]-1.5, 3, 3) cr.fill() # Highlight component if self.nearest_component is not None and self._pushed_component_name == const.component_none: if not self.nearest_component in self.circuit.selected_components and self.cursor_over and not self.parent.running_mode: c = self.nearest_component if c[0] == const.component_net: cr.set_source(Preference.net_high_color) cairo_paths(cr, (c[1], c[2]), (c[3], c[4])) cr.stroke() else: cr.set_source(Preference.component_high_color) cr.translate(c[1].pos_x, c[1].pos_y) m = cairo.Matrix(xx = c[1].matrix[0], xy = c[1].matrix[1], yx = c[1].matrix[2], yy = c[1].matrix[3]) cr.set_matrix(m.multiply(cr.get_matrix())) c[1].drawComponent(cr, layout) c[1].drawComponentEditOverlap(cr, layout) cr.set_matrix(matrix) self.added = False def on_leave(self, widget, event): self.cursor_over = False if not self.parent.running_mode: self.queue_draw() def on_enter(self, widget, event): self.cursor_over = True if not self.parent.running_mode: self.queue_draw() def set_cursor_to_nearest_terminal(self, min_dist): for c in self.circuit.components: if c[0] == const.component_net: if min_dist > (self.cursor_smooth_x - c[1]) ** 2 + (self.cursor_smooth_y - c[2]) ** 2: min_dist = (self.cursor_smooth_x - c[1]) ** 2 + (self.cursor_smooth_y - c[2]) ** 2 self.cursor_x = c[1] self.cursor_y = c[2] if min_dist > (self.cursor_smooth_x - c[3]) ** 2 + (self.cursor_smooth_y - c[4]) ** 2: min_dist = (self.cursor_smooth_x - c[3]) ** 2 + (self.cursor_smooth_y - c[4]) ** 2 self.cursor_x = c[3] self.cursor_y = c[4] if c[1] == c[3]: if c[2] < self.cursor_smooth_y < c[4] or c[4] < self.cursor_smooth_y < c[2]: if min_dist > (self.cursor_smooth_x - c[1]) ** 2: min_dist = (self.cursor_smooth_x - c[1]) ** 2 self.cursor_x = c[1] - c[1] % 10 self.cursor_y = int(self.cursor_smooth_y - self.cursor_smooth_y % 10) if c[2] == c[4]: if c[1] < self.cursor_smooth_x < c[3] or c[3] < self.cursor_smooth_x < c[1]: if min_dist > (self.cursor_smooth_y - c[2]) ** 2: min_dist = (self.cursor_smooth_y - c[2]) ** 2 self.cursor_x = int(self.cursor_smooth_x - self.cursor_smooth_x % 10) self.cursor_y = c[2] - c[2] % 10 else: for p in c[1].rot_input_pins + c[1].rot_output_pins: if min_dist > (self.cursor_smooth_x - c[1].pos_x - p[0]) ** 2 + (self.cursor_smooth_y - c[1].pos_y - p[1]) ** 2: min_dist = (self.cursor_smooth_x - c[1].pos_x - p[0]) ** 2 + (self.cursor_smooth_y - c[1].pos_y - p[1]) ** 2 self.cursor_x = c[1].pos_x + p[0] self.cursor_y = c[1].pos_y + p[1] return min_dist def on_key_release(self, widget, event): if self.parent.running_mode: return if self.cursor_over: if self._pushed_component_name == const.component_net: if event.keyval == Gdk.KEY_Control_L or event.keyval == Gdk.KEY_Control_R: oldcursor_x = self.cursor_x oldcursor_y = self.cursor_y # snap cursor to terminals min_dist = self.set_cursor_to_nearest_terminal(225) if min_dist == 225: self.cursor_x = int(self.cursor_smooth_x - self.cursor_smooth_x % 10) self.cursor_y = int(self.cursor_smooth_y - self.cursor_smooth_y % 10) if oldcursor_x != self.cursor_x or oldcursor_y != self.cursor_y: self.queue_draw() def on_key_press(self, widget, event): if self.parent.running_mode: return if self.cursor_over: if self._pushed_component_name != const.component_none: if event.keyval == Gdk.KEY_Control_L or event.keyval == Gdk.KEY_Control_R: oldcursor_x = self.cursor_x oldcursor_y = self.cursor_y self.cursor_x = int(self.cursor_smooth_x - self.cursor_smooth_x % 10) self.cursor_y = int(self.cursor_smooth_y - self.cursor_smooth_y % 10) if oldcursor_x != self.cursor_x or oldcursor_y != self.cursor_y: self.queue_draw() def on_motion(self, widget, event): self.cursor_smooth_x = event.x self.cursor_smooth_y = event.y if self.middle_move_enabled: delta_x = self.move_start_x - event.x delta_y = self.move_start_y - event.y if -1 < delta_x < 1 and -1 < delta_y < 1: return self.hadj.set_value(self.hadj.get_value() + delta_x) self.vadj.set_value(self.vadj.get_value() + delta_y) if self.parent.running_mode: return oldcursor_x = self.cursor_x oldcursor_y = self.cursor_y self.cursor_smooth_x = max((0, min((self.width, self.cursor_smooth_x)))) self.cursor_smooth_y = max((0, min((self.height, self.cursor_smooth_y)))) if self._pushed_component_name == const.component_net: # snap cursor to terminals min_dist = 225 if not event.state & Gdk.ModifierType.CONTROL_MASK: min_dist = self.set_cursor_to_nearest_terminal(min_dist) if min_dist == 225: self.cursor_x = int(self.cursor_smooth_x - self.cursor_smooth_x % 10) self.cursor_y = int(self.cursor_smooth_y - self.cursor_smooth_y % 10) if oldcursor_x != self.cursor_x or oldcursor_y != self.cursor_y: self.queue_draw() else: self.cursor_x = int(self.cursor_smooth_x - self.cursor_smooth_x % 10) self.cursor_y = int(self.cursor_smooth_y - self.cursor_smooth_y % 10) if self._pushed_component_name != const.component_none or self._pasted_components: if oldcursor_x != self.cursor_x or oldcursor_y != self.cursor_y: self.queue_draw() if self.mouse_down and self.drag_enabled: # Move components ddx = self.cursor_smooth_x - self.select_start_x ddy = self.cursor_smooth_y - self.select_start_y old_delta_x = self.drag_delta_x old_delta_y = self.drag_delta_y if ddx >= 0: self.drag_delta_x = ddx - ddx % 10 else: self.drag_delta_x = ddx + (-ddx % 10) if ddy >= 0: self.drag_delta_y = ddy - ddy % 10 else: self.drag_delta_y = ddy + (-ddy % 10) if old_delta_x != self.drag_delta_x or old_delta_y != self.drag_delta_y: fix_delta_x = 0 fix_delta_y = 0 self.comps_rect[0] += self.drag_delta_x - old_delta_x self.comps_rect[1] += self.drag_delta_y - old_delta_y self.comps_rect[2] += self.drag_delta_x - old_delta_x self.comps_rect[3] += self.drag_delta_y - old_delta_y if self.comps_rect[0] < 0: fix_delta_x = -self.comps_rect[0] if self.comps_rect[1] < 0: fix_delta_y = -self.comps_rect[1] if fix_delta_x == 0: if self.comps_rect[2] > self.width: fix_delta_x = self.width - self.comps_rect[2] if fix_delta_y == 0: if self.comps_rect[3] > self.height: fix_delta_y = self.height - self.comps_rect[3] for c in self.circuit.selected_components: if c[0] == const.component_net: c[1] += self.drag_delta_x - old_delta_x c[2] += self.drag_delta_y - old_delta_y c[3] += self.drag_delta_x - old_delta_x c[4] += self.drag_delta_y - old_delta_y else: c[1].pos_x += self.drag_delta_x - old_delta_x c[1].pos_y += self.drag_delta_y - old_delta_y if old_delta_x == 0 and old_delta_y == 0: for p in c[1].rot_input_pins + c[1].rot_output_pins: self.circuit.connect_nets(c[1].pos_x - (self.drag_delta_x - old_delta_x) + p[0], c[1].pos_y - (self.drag_delta_y - old_delta_y) + p[1], lock_selected = True) if fix_delta_x != 0 or fix_delta_y != 0: self.comps_rect[0] += fix_delta_x self.comps_rect[1] += fix_delta_y self.comps_rect[2] += fix_delta_x self.comps_rect[3] += fix_delta_y for c in self.circuit.selected_components: if c[0] == const.component_net: c[1] += fix_delta_x c[2] += fix_delta_y c[3] += fix_delta_x c[4] += fix_delta_y else: c[1].pos_x += fix_delta_x c[1].pos_y += fix_delta_y for c in self.circuit.selected_components: if c[0] == const.component_net: if old_delta_x == 0 and old_delta_y == 0: self.circuit.connect_nets(c[1] - (self.drag_delta_x - old_delta_x), c[2] - (self.drag_delta_y - old_delta_y), lock_selected = True) self.circuit.connect_nets(c[3] - (self.drag_delta_x - old_delta_x), c[4] - (self.drag_delta_y - old_delta_y), lock_selected = True) if not self.component_dragged: self.redraw = True self.component_dragged = True self.queue_draw() else: if self.rect_select_enabled: self.queue_draw() else: # Highlight component old_nearest_component = self.nearest_component self.nearest_component = None for c in self.circuit.components: if c[0] == const.component_net: if (c[1] - 3 <= self.cursor_smooth_x <= c[3] + 3 or c[3] - 3 <= self.cursor_smooth_x <= c[1] + 3) and (c[2] - 3 <= self.cursor_smooth_y <= c[4] + 3 or c[4] - 3 <= self.cursor_smooth_y <= c[2] + 3): if ((c[4] - c[2]) * (self.cursor_smooth_x - c[1]) + (c[3] - c[1]) * (self.cursor_smooth_y - c[2])) ** 2 / ((c[3] - c[1]) ** 2 + (c[4] - c[2]) ** 2) <= 9: self.nearest_component = c break else: im = inv_matrix(c[1].matrix) if c[1].isMouseOvered(im[0] * (self.cursor_smooth_x - c[1].pos_x) + im[1] * (self.cursor_smooth_y - c[1].pos_y) + c[1].pos_x, im[2] * (self.cursor_smooth_x - c[1].pos_x) + im[3] * (self.cursor_smooth_y - c[1].pos_y) + c[1].pos_y): self.nearest_component = c break if old_nearest_component is not self.nearest_component: self.queue_draw() def on_button_press(self, widget, event): self.cursor_smooth_x = event.x self.cursor_smooth_y = event.y if event.button == 1: if not self.parent.running_mode: if self._pushed_component_name == const.component_none and not self._pasted_components: # Check selected area self.rect_select_enabled = True for c in self.circuit.components: if c[0] == const.component_net: if (c[1] - 3 <= self.cursor_smooth_x <= c[3] + 3 or c[3] - 3 <= self.cursor_smooth_x <= c[1] + 3) and (c[2] - 3 <= self.cursor_smooth_y <= c[4] + 3 or c[4] - 3 <= self.cursor_smooth_y <= c[2] + 3): if ((c[4] - c[2]) * (self.cursor_smooth_x - c[1]) + (c[3] - c[1]) * (self.cursor_smooth_y - c[2])) ** 2 / ((c[3] - c[1]) ** 2 + (c[4] - c[2]) ** 2) <= 9: if c in self.circuit.selected_components: self.drag_delta_x = 0 self.drag_delta_y = 0 self.drag_enabled = True self.preselected_component = c self.rect_select_enabled = False break else: im = inv_matrix(c[1].matrix) if c[1].isMouseOvered(im[0] * (self.cursor_smooth_x - c[1].pos_x) + im[1] * (self.cursor_smooth_y - c[1].pos_y) + c[1].pos_x, im[2] * (self.cursor_smooth_x - c[1].pos_x) + im[3] * (self.cursor_smooth_y - c[1].pos_y) + c[1].pos_y): if c in self.circuit.selected_components: self.drag_delta_x = 0 self.drag_delta_y = 0 self.drag_enabled = True self.preselected_component = c self.rect_select_enabled = False break self.select_start_x = self.cursor_smooth_x self.select_start_y = self.cursor_smooth_y if self.drag_enabled: self.comps_rect = get_components_rect(self.circuit.selected_components) else: self.preadd = True self.queue_draw() else: for c in self.circuit.components: if c[0] != const.component_net: im = inv_matrix(c[1].matrix) c[1].mouse_down(im[0] * (self.cursor_smooth_x - c[1].pos_x) + im[1] * (self.cursor_smooth_y - c[1].pos_y) + c[1].pos_x, im[2] * (self.cursor_smooth_x - c[1].pos_x) + im[3] * (self.cursor_smooth_y - c[1].pos_y) + c[1].pos_y) self.mouse_down = True elif event.button == 2: self.middle_move_enabled = True self.move_start_x = self.cursor_smooth_x self.move_start_y = self.cursor_smooth_y def refresh_nets(self): tmp_components = self.circuit.components[:] for c in tmp_components: if c[0] == const.component_net: self.circuit.split_nets(c[1], c[2]) self.circuit.split_nets(c[3], c[4]) else: for p in c[1].rot_input_pins + c[1].rot_output_pins: self.circuit.split_nets(c[1].pos_x + p[0], c[1].pos_y + p[1]) tmp_components = self.circuit.components[:] for c in tmp_components: if c[0] == const.component_net: self.circuit.connect_nets(c[1], c[2]) self.circuit.connect_nets(c[3], c[4]) def on_button_release(self, widget, event): if event.button == 1: # Left button released if not self.parent.running_mode: self.drag_enabled = False if self.component_dragged: self.component_dragged = False tmp_components = self.circuit.components[:] for c in tmp_components: if c[0] == const.component_net: self.circuit.split_nets(c[1], c[2]) self.circuit.split_nets(c[3], c[4]) else: for p in c[1].rot_input_pins + c[1].rot_output_pins: self.circuit.split_nets(c[1].pos_x + p[0], c[1].pos_y + p[1]) tmp_components = self.circuit.components[:] for c in tmp_components: if c[0] == const.component_net: self.circuit.connect_nets(c[1], c[2]) self.circuit.connect_nets(c[3], c[4]) self.preselected_component = None self.circuit.push_history() self.parent.action_undo.set_sensitive(True) self.parent.action_redo.set_sensitive(False) self.redraw = True elif self._pushed_component_name == const.component_none and not self._pasted_components: # Select component selected = False if self.preselected_component is not None: c = self.preselected_component if c[0] == const.component_net: if (c[1] - 3 <= self.cursor_smooth_x <= c[3] + 3 or c[3] - 3 <= self.cursor_smooth_x <= c[1] + 3) and (c[2] - 3 <= self.cursor_smooth_y <= c[4] + 3 or c[4] - 3 <= self.cursor_smooth_y <= c[2] + 3): if ((c[4] - c[2]) * (self.cursor_smooth_x - c[1]) + (c[3] - c[1]) * (self.cursor_smooth_y - c[2])) ** 2 / ((c[3] - c[1]) ** 2 + (c[4] - c[2]) ** 2) <= 9: if event.state & Gdk.ModifierType.CONTROL_MASK: if not c in self.circuit.selected_components: self.circuit.selected_components.append(c) else: self.circuit.selected_components.remove(c) else: self.circuit.selected_components = [c] selected = True else: im = inv_matrix(c[1].matrix) if c[1].isMouseOvered(im[0] * (self.cursor_smooth_x - c[1].pos_x) + im[1] * (self.cursor_smooth_y - c[1].pos_y) + c[1].pos_x, im[2] * (self.cursor_smooth_x - c[1].pos_x) + im[3] * (self.cursor_smooth_y - c[1].pos_y) + c[1].pos_y): if event.state & Gdk.ModifierType.CONTROL_MASK: if not c in self.circuit.selected_components: self.circuit.selected_components.append(c) else: self.circuit.selected_components.remove(c) else: self.circuit.selected_components = [c] selected = True self.preselected_component = None elif self.rect_select_enabled: self.rect_select_enabled = False rectselected_components = [] if self.select_start_x < self.cursor_smooth_x: rect_left = self.select_start_x rect_right = self.cursor_smooth_x else: rect_left = self.cursor_smooth_x rect_right = self.select_start_x if self.select_start_y < self.cursor_smooth_y: rect_top = self.select_start_y rect_bottom = self.cursor_smooth_y else: rect_top = self.cursor_smooth_y rect_bottom = self.select_start_y for c in self.circuit.components: if c[0] == const.component_net: if rect_left <= c[1] <= rect_right and rect_left <= c[3] <= rect_right and rect_top <= c[2] <= rect_bottom and rect_top <= c[4] <= rect_bottom: rectselected_components.append(c) selected = True elif rect_left <= c[1].pos_x + c[1].rot_comp_rect[0] + 3 and rect_top <= c[1].pos_y + c[1].rot_comp_rect[1] + 3 and c[1].pos_x + c[1].rot_comp_rect[2] - 3 <= rect_right and c[1].pos_y + c[1].rot_comp_rect[3] - 3 <= rect_bottom: rectselected_components.append(c) selected = True if event.state & Gdk.ModifierType.CONTROL_MASK: for c in rectselected_components: if not c in self.circuit.selected_components: self.circuit.selected_components.append(c) else: self.circuit.selected_components = rectselected_components if not selected and not event.state & Gdk.ModifierType.CONTROL_MASK: self.circuit.selected_components = [] self.set_selected_component_to_prop_window() if len(self.circuit.selected_components) == 0: self.parent.disable_edit_actions() else: self.parent.action_cut.set_sensitive(True) self.parent.action_copy.set_sensitive(True) self.parent.action_delete.set_sensitive(True) self.parent.action_rotleft.set_sensitive(True) self.parent.action_rotright.set_sensitive(True) self.parent.action_fliphori.set_sensitive(True) self.parent.action_flipvert.set_sensitive(True) self.redraw = True elif self._pushed_component_name == const.component_net: if self.netstarted: # Add net if self.net_right and self.netstart_x < self.cursor_x or self.net_left and self.cursor_x < self.netstart_x: component_data = [const.component_net, self.netstart_x, self.netstart_y, self.cursor_x, self.netstart_y] component_data2 = [const.component_net, self.cursor_x, self.netstart_y, self.netstart_x, self.netstart_y] if not component_data in self.circuit.components and not component_data2 in self.circuit.components: self.circuit.components.append(component_data) if self.netstart_y != self.cursor_y: component_data = [const.component_net, self.cursor_x, self.netstart_y, self.cursor_x, self.cursor_y] component_data2 = [const.component_net, self.cursor_x, self.cursor_y, self.cursor_x, self.netstart_y] if not component_data in self.circuit.components and not component_data2 in self.circuit.components: self.circuit.components.append(component_data) else: if self.netstart_y != self.cursor_y: component_data = [const.component_net, self.netstart_x, self.netstart_y, self.netstart_x, self.cursor_y] component_data2 = [const.component_net, self.netstart_x, self.cursor_y, self.netstart_x, self.netstart_y] if not component_data in self.circuit.components and not component_data2 in self.circuit.components: self.circuit.components.append(component_data) if self.netstart_x != self.cursor_x: component_data = [const.component_net, self.netstart_x, self.cursor_y, self.cursor_x, self.cursor_y] component_data2 = [const.component_net, self.cursor_x, self.cursor_y, self.netstart_x, self.cursor_y] if not component_data in self.circuit.components and not component_data2 in self.circuit.components: self.circuit.components.append(component_data) self.refresh_nets() self.circuit.push_history() self.parent.action_undo.set_sensitive(True) self.parent.action_redo.set_sensitive(False) # Begin to create net self.netstart_x = self.cursor_x self.netstart_y = self.cursor_y self.netstarted = True self.net_left = True self.net_right = True for c in self.circuit.components: if c[0] == const.component_net: if c[2] == c[4] == self.netstart_y: if c[1] <= self.netstart_x <= c[3]: if c[1] != self.netstart_x: self.net_left = False if c[3] != self.netstart_x: self.net_right = False elif c[3] <= self.netstart_x <= c[1]: if c[3] != self.netstart_x: self.net_left = False if c[1] != self.netstart_x: self.net_right = False if self.net_left == self.net_right == False: break else: pins = c[1].rot_input_pins + c[1].rot_output_pins dirs = c[1].rot_input_pins_dir + c[1].rot_output_pins_dir for i, p in enumerate(pins): if c[1].pos_x + p[0] == self.netstart_x and c[1].pos_y + p[1] == self.netstart_y: if dirs[i] == const.direction_E: self.net_right = False break elif dirs[i] == const.direction_W: self.net_left = False break if self.net_left == self.net_right == False: break self.redraw = True else: # Add component if self._pasted_components: left = self._pasted_rect[0] + self.cursor_x - self._paste_center_x top = self._pasted_rect[1] + self.cursor_y - self._paste_center_y right = self._pasted_rect[2] + self.cursor_x - self._paste_center_x bottom = self._pasted_rect[3] + self.cursor_y - self._paste_center_y if left >= 0 and top >= 0 and right <= 1980 and bottom <= 1080: for cadd in self._pasted_components: if cadd[0] == const.component_net: cadd[1] += self.cursor_x - self._paste_center_x cadd[2] += self.cursor_y - self._paste_center_y cadd[3] += self.cursor_x - self._paste_center_x cadd[4] += self.cursor_y - self._paste_center_y else: comp_x = self.cursor_x - self._paste_center_x + cadd[1].pos_x comp_y = self.cursor_y - self._paste_center_y + cadd[1].pos_y exist = False for c in self.circuit.components: if c[0] == cadd[0]: if c[1].pos_x == comp_x and c[1].pos_y == comp_y: exist = True break if not exist: cadd[1].pos_x = comp_x cadd[1].pos_y = comp_y for p in cadd[1].rot_input_pins + cadd[1].rot_output_pins: self.circuit.split_nets(p[0] + comp_x, p[1] + comp_y) self.circuit.components.append(cadd) self.refresh_nets() self._pasted_components = None self.circuit.push_history() self.parent.action_undo.set_sensitive(True) self.parent.action_redo.set_sensitive(False) self.added = True self.redraw = True else: exist = False for c in self.circuit.components: if c[0] != const.component_net: if c[1].pos_x == self.cursor_x and c[1].pos_y == self.cursor_y: exist = True break if not exist: component_data = [self._pushed_component_name, copy.deepcopy(self._pushed_component)] component_data[1].pos_x = self.cursor_x component_data[1].pos_y = self.cursor_y if 0 <= component_data[1].pos_x + component_data[1].rot_comp_rect[0] + 3 and 0 <= component_data[1].pos_y + component_data[1].rot_comp_rect[1] + 3 and component_data[1].pos_x + component_data[1].rot_comp_rect[2] - 3 <= 1920 and component_data[1].pos_y + component_data[1].rot_comp_rect[3] - 3 <= 1080: for p in component_data[1].rot_input_pins + component_data[1].rot_output_pins: self.circuit.split_nets(p[0] + self.cursor_x, p[1] + self.cursor_y) self.circuit.components.append(component_data) self.circuit.push_history() self.parent.action_undo.set_sensitive(True) self.parent.action_redo.set_sensitive(False) self.added = True self.redraw = True self.preadd = False self.mouse_down = False self.queue_draw() else: for c in self.circuit.components: if c[0] != const.component_net: im = inv_matrix(c[1].matrix) if c[1].mouse_up(im[0] * (self.cursor_smooth_x - c[1].pos_x) + im[1] * (self.cursor_smooth_y - c[1].pos_y) + c[1].pos_x, im[2] * (self.cursor_smooth_x - c[1].pos_x) + im[3] * (self.cursor_smooth_y - c[1].pos_y) + c[1].pos_y, self.circuit.current_time): if self.parent.pause_running_mode: self.parent.clicked_on_pause = True elif not self.circuit.analyze_logic(): self.parent.diagram_window.diagramarea.createDiagram() self.queue_draw() break elif event.button == 2: self.middle_move_enabled = False elif event.button == 3: # Right button released if not self.parent.running_mode: if self._pasted_components: self._pasted_components = None elif self._pushed_component_name == const.component_none: self.set_selected_component_to_prop_window() self.parent.prop_window.show_all() self.parent.action_property.set_active(True) elif not self.netstarted: self.parent.comp_window.uncheck_all_buttons() self.parent.action_net.set_active(False) self.set_component(const.component_none) else: # Finish creating net self.netstarted = False self.queue_draw() def set_selected_component_to_prop_window(self): if len(self.circuit.selected_components) == 1: if self.circuit.selected_components[0][0] != const.component_net: self.parent.prop_window.setComponent(self.circuit.selected_components[0][1]) else: self.parent.prop_window.setComponent(None) else: self.parent.prop_window.setComponent(None) def set_component(self, comp_name): self._pasted_components = None self._pushed_component_name = comp_name self._pushed_component = copy.deepcopy(comp_dict[comp_name]) def set_pasted_components(self, components): self._pasted_components = components for c in self._pasted_components: if c[0] != const.component_net: c[1].set_rot_props() self._pasted_rect = get_components_rect(components) self._paste_center_x = round((self._pasted_rect[0] + self._pasted_rect[2]) / 2, -1) self._paste_center_y = round((self._pasted_rect[1] + self._pasted_rect[3]) / 2, -1) self.drag_enabled = False self.rect_select_enabled = False self.queue_draw() def get_component(self): return self._pushed_component_name def rotate_left_picked_components(self): self._pushed_component.matrix = multiply_matrix((0, 1, -1, 0), self._pushed_component.matrix) self._pushed_component.set_rot_props() def rotate_right_picked_components(self): self._pushed_component.matrix = multiply_matrix((0, -1, 1, 0), self._pushed_component.matrix) self._pushed_component.set_rot_props() def flip_hori_picked_components(self): self._pushed_component.matrix = multiply_matrix((-1, 0, 0, 1), self._pushed_component.matrix) self._pushed_component.set_rot_props() def flip_vert_picked_components(self): self._pushed_component.matrix = multiply_matrix((1, 0, 0, -1), self._pushed_component.matrix) self._pushed_component.set_rot_props() glogic-2.6/glogic/config.py.in0000644000175000017500000000020012044164057013231 00000000000000# -*- coding: utf-8; indent-tabs-mode: t; tab-width: 4 -*- DATADIR="@DATADIR@/@PACKAGE@" VERSION="@VERSION@" BZRREV="@BZRREV@" glogic-2.6/glogic/ComponentConverter.py0000644000175000017500000001324312044451747015231 00000000000000# -*- coding: utf-8; indent-tabs-mode: t; tab-width: 4 -*- from glogic.Components import comp_dict from glogic.Utils import * from glogic import const, config from gettext import gettext as _ import copy required = [2, 6] backward_compat = [0] def components_to_string(components): str_data = "version\n" str_data += " author=%s\n" % config.VERSION str_data += " required=%s\n\n" % ".".join([str(x) for x in required]) for c in components: if c[0] == const.component_net: str_data += "net\n position=%d,%d,%d,%d\n\n" % (c[1], c[2], c[3], c[4]) else: str_data += "%s\n" % c[0] str_data += " position=%d,%d\n" % (c[1].pos_x, c[1].pos_y) str_data += " input_level=%s\n" % ",".join([str(int(p)) for p in c[1].input_level]) str_data += " output_level=%s\n" % ",".join([str(int(p)) for p in c[1].output_level]) str_data += " matrix=%s\n" % ",".join([str(int(p)) for p in c[1].matrix]) str_data += " properties=%s\n\n" % ",".join(["%s:%s" % (c[1].prop_names[i], encode_text(str(p))) for i, p in enumerate(c[1].values)]) return str_data def string_to_components(str_data): component = None components = [] lines = str_data.split("\n") versioninfo = False for l in lines: l = l.strip() if l == "net": component = [const.component_net, 0, 10, 10, 10] elif l in comp_dict: component = [l, copy.deepcopy(comp_dict[l])] elif l == "version": versioninfo = True version_author = [0] version_required = [0] elif component is not None or versioninfo: if l == "": if versioninfo: this_version_str = config.VERSION.split(".") this_version = [int(x if x.isdigit() else 0) for x in this_version_str] m = len(version_required) n = len(this_version) if m > n: this_version += [0] * (m - n) for i, x in enumerate(version_required): if x > this_version[i]: return _("Compatibility error: This circuit requires glogic %s or later.") % ".".join([str(x) for x in version_required]) elif x < this_version[i]: break m = len(backward_compat) n = len(version_author) if m > n: version_author += [0] * (m - n) for i, x in enumerate(backward_compat): if x > version_author[i]: return _("Compatibility error: This circuit was created by %(creator)s. glogic %(this)s doesn't support older than %(minimum)s.") % {"creator": ".".join([str(x) for x in version_author]), "this": config.VERSION, "minimum": ".".join([str(x) for x in backward_compat])} elif x < version_author[i]: break versioninfo = False else: components.append(component) component = None else: prop = l.split("=") if len(prop) == 2: if prop[0] == "position": p = prop[1].split(",") if component[0] == const.component_net: if len(p) == 4: component[1] = int(p[0]) component[2] = int(p[1]) component[3] = int(p[2]) component[4] = int(p[3]) else: if len(p) == 2: component[1].pos_x = int(p[0]) component[1].pos_y = int(p[1]) elif prop[0] == "input_level": if component[0] != const.component_net: p = prop[1].split(",") if len(component[1].input_level) == len(p): component[1].input_level = [bool(int(s if s.isdigit() else 0)) for s in p] elif prop[0] == "output_level": if component[0] != const.component_net: p = prop[1].split(",") if len(component[1].output_level) == len(p): component[1].output_level = [bool(int(s if s.isdigit() else 0)) for s in p] elif prop[0] == "matrix": if component[0] != const.component_net: p = prop[1].split(",") if len(p) == 4: component[1].matrix = [int(p[0]), int(p[1]), int(p[2]), int(p[3])] elif prop[0] == "properties": if component[0] != const.component_net: p = prop[1].split(",") p_pairs = [pp.split(":") for pp in p] i = 0 for p in component[1].properties: if isinstance(p[1], tuple): if p[1][0] == const.property_select: for p_pair in p_pairs: if p_pair[0] == component[1].prop_names[i] and len(p_pair) == 2: component[1].values[i] = int(p_pair[1] if p_pair[1].isdigit() else 0) break elif p[1][0] == const.property_int: for p_pair in p_pairs: if p_pair[0] == component[1].prop_names[i] and len(p_pair) == 2: component[1].values[i] = int(p_pair[1] if p_pair[1].isdigit() else 0) break elif p[1][0] == const.property_float: try: for p_pair in p_pairs: if p_pair[0] == component[1].prop_names[i] and len(p_pair) == 2: component[1].values[i] = float(p_pair[1]) break except ValueError: component[1].values[i] = 0.0 else: for p_pair in p_pairs: if p_pair[0] == component[1].prop_names[i] and len(p_pair) == 2: component[1].values[i] = decode_text(p_pair[1]) break elif p[1] == const.property_bool: for p_pair in p_pairs: if p_pair[0] == component[1].prop_names[i] and len(p_pair) == 2: component[1].values[i] = bool(int(p_pair[1] if p_pair[1].isdigit() else 0)) break else: i -= 1 i += 1 component[1].propertyChanged(component[1].values) component[1].set_rot_props() elif versioninfo: if prop[0] == "author": version_author_str = prop[1].split(".") version_author = [int(x if x.isdigit() else 0) for x in version_author_str] elif prop[0] == "required": version_required_str = prop[1].split(".") version_required = [int(x if x.isdigit() else 0) for x in version_required_str] return components glogic-2.6/glogic/const.py0000644000175000017500000000515012042713334012512 00000000000000# -*- coding: utf-8; indent-tabs-mode: t; tab-width: 4 -*- import sys, os, gettext from gettext import gettext as _ gettext.textdomain("glogic") class _const: class ConstError(TypeError): pass def __setattr__(self, name, value): if name in self.__dict__: raise (self.ConstError, "Can't rebind const(%s)" % name) self.__dict__[name] = value # Definitions component_none = "none" component_net = "net" component_NOT = "not" component_AND = "and" component_OR = "or" component_XOR = "xor" component_NAND = "nand" component_NOR = "nor" component_RSFF = "rsff" component_JKFF = "jkff" component_DFF = "dff" component_TFF = "tff" component_counter = "counter" component_SISO = "siso" component_SIPO = "sipo" component_PISO = "piso" component_PIPO = "pipo" component_adder = "adder" component_SW = "sw" component_7seg = "7seg" component_LED = "led" component_VDD = "vdd" component_GND = "gnd" component_OSC = "osc" component_probe = "probe" component_text = "text" direction_none = (0, 0) direction_E = (1, 0) direction_N = (0, -1) direction_W = (-1, 0) direction_S = (0, 1) property_bool = 0 property_int = 1 property_float = 2 property_select = 3 property_string = 4 text_notitle = _("No title") text_modified = _("Modified") glcfile_text = _("gLogic files (*.glc)") pngfile_text = _("Portable Network Graphics (*.png)") svgfile_text = _("Scalable Vector Graphics (*.svg)") pdffile_text = _("Portable Document Format (*.pdf)") psfile_text = _("Post Script (*.ps)") anyfile_text = _("All files") config_path = os.path.join(os.path.expanduser("~"), ".config/glogic") app_name = _("gLogic") description = _("gLogic is a logic circuit simulator developed with GTK+ and Python.") copyright = "Copyright © 2012 Koichi Akabe" developer = ["Koichi Akabe "] website = "https://launchpad.net/glogic" help = "help:glogic" license = """gLogic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. gLogic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see .""" devel_translate = "https://translations.launchpad.net/glogic/" devel_bug = "https://bugs.launchpad.net/glogic" sys.modules[__name__] = _const() glogic-2.6/glogic/config.py0000664000175000017500000000017012044454503012632 00000000000000# -*- coding: utf-8; indent-tabs-mode: t; tab-width: 4 -*- DATADIR="/usr/local/share/glogic" VERSION="2.6" BZRREV="83" glogic-2.6/glogic/TimingDiagramWindow.py0000644000175000017500000002222112036254747015301 00000000000000# -*- coding: utf-8; indent-tabs-mode: t; tab-width: 4 -*- import gettext from glogic import config, const from glogic.DiagramArea import DiagramArea from glogic.Exporter import save_timingdiagram_as_image from gi.repository import Gtk, Gdk from gettext import gettext as _ class TimingDiagramWindow(Gtk.Window): def __init__(self, parent): Gtk.Window.__init__(self, title=_("Timimg diagram")) self.set_default_size(640, 200) self.parent = parent self.set_type_hint(Gdk.WindowTypeHint.DIALOG) self.set_transient_for(parent) vbox = Gtk.Box(orientation=Gtk.Orientation.VERTICAL) # Create option buttons hbox1 = Gtk.Box() scale_list = Gtk.ListStore(str) scales = ["500.0", "200.0", "100.0", "50.0", "20.0", "10.0", "5.0", "2.0", "1.0"] for scale in scales: scale_list.append([scale]) unit_list = Gtk.ListStore(str) units = ["ns", "µs", "ms"] for unit in units: unit_list.append([unit]) scalebox = Gtk.Box() scalebox.pack_start(Gtk.Label(_("Scale:")), False, False, 0) self.scale_combo = Gtk.ComboBox.new_with_model_and_entry(scale_list) self.scale_combo.set_events(Gdk.EventMask.FOCUS_CHANGE_MASK) self.scale_combo.get_child().connect("activate", self.on_scale_combo_activate) self.scale_combo.get_child().connect("focus-out-event", self.on_scale_combo_focusout) self.scale_combo.get_child().set_width_chars(6) self.scale_combo.set_entry_text_column(0) self.scale_combo.get_child().set_text("5.0") scalebox.pack_start(self.scale_combo, False, False, 0) scalebox.pack_start(Gtk.Label("px/"), False, False, 0) self.scale_unit_combo = Gtk.ComboBox.new_with_model(unit_list) renderer_text = Gtk.CellRendererText() self.scale_unit_combo.pack_start(renderer_text, True) self.scale_unit_combo.add_attribute(renderer_text, "text", 0) self.scale_unit_combo.set_active(1) self.scale_unit_combo_changed_id = self.scale_unit_combo.connect("changed", self.on_combo_changed) scalebox.pack_start(self.scale_unit_combo, False, False, 0) hbox1.pack_start(scalebox, False, False, 5) rangebox = Gtk.Box() rangebox.pack_start(Gtk.Label(_("Range:")), False, False, 0) self.from_spin = Gtk.SpinButton() self.from_spin.set_increments(1, 10) self.from_spin.set_range(0, 10000) self.from_spin.set_digits(2) self.from_spin.set_value(0) self.from_spin_changed_id = self.from_spin.connect("changed", self.on_from_time_changed) rangebox.pack_start(self.from_spin, False, False, 0) self.from_combo = Gtk.ComboBox.new_with_model(unit_list) renderer_text = Gtk.CellRendererText() self.from_combo.pack_start(renderer_text, True) self.from_combo.add_attribute(renderer_text, "text", 0) self.from_combo.set_active(1) self.from_combo_changed_id = self.from_combo.connect("changed", self.on_combo_changed) rangebox.pack_start(self.from_combo, False, False, 0) rangebox.pack_start(Gtk.Label("-"), False, False, 0) self.to_spin = Gtk.SpinButton() self.to_spin.set_increments(1, 10) self.to_spin.set_range(0, 10000) self.to_spin.set_digits(2) self.to_spin.set_value(200.0) self.to_spin_changed_id = self.to_spin.connect("changed", self.on_to_time_changed) rangebox.pack_start(self.to_spin, False, False, 0) self.to_combo = Gtk.ComboBox.new_with_model(unit_list) renderer_text = Gtk.CellRendererText() self.to_combo.pack_start(renderer_text, True) self.to_combo.add_attribute(renderer_text, "text", 0) self.to_combo.set_active(1) self.to_combo_changed_id = self.to_combo.connect("changed", self.on_combo_changed) rangebox.pack_start(self.to_combo, False, False, 0) hbox1.pack_start(rangebox, False, False, 5) self.redraw_btn = Gtk.Button(_("_Redraw")) self.redraw_btn.set_use_underline(True) self.redraw_btn.connect("clicked", self.on_redraw_clicked) hbox1.pack_start(self.redraw_btn, False, False, 5) self.saveimage_btn = Gtk.Button(_("Save _diagram...")) self.saveimage_btn.set_use_underline(True) self.saveimage_btn.connect("clicked", self.on_saveimage_clicked) hbox1.pack_start(self.saveimage_btn, False, False, 5) vbox.pack_start(hbox1, False, False, 0) hbox2 = Gtk.Box() cursorbox = Gtk.Box() cursorbox.pack_start(Gtk.Label(_("Cursor position:")), False, False, 0) self.cursor_spin = Gtk.SpinButton() self.cursor_spin.set_increments(1, 10) self.cursor_spin.set_range(0, 10000) self.cursor_spin.set_digits(2) self.cursor_spin.set_value(200.0) self.cursor_spin_changed_id = self.cursor_spin.connect("changed", self.on_cursor_spin_changed) cursorbox.pack_start(self.cursor_spin, False, False, 0) self.cursor_combo = Gtk.ComboBox.new_with_model(unit_list) renderer_text = Gtk.CellRendererText() self.cursor_combo.pack_start(renderer_text, True) self.cursor_combo.add_attribute(renderer_text, "text", 0) self.cursor_combo.set_active(1) self.cursor_combo_changed_id = self.cursor_combo.connect("changed", self.on_combo_changed) cursorbox.pack_start(self.cursor_combo, False, False, 0) hbox2.pack_start(cursorbox, False, False, 5) vbox.pack_start(hbox2, False, False, 0) self.diagramarea = DiagramArea(self.parent.circuit, self.parent.drawarea) self.parent.circuit.connect("currenttime-changed", self.on_diagramarea_currtime_changed) vbox.pack_start(self.diagramarea, True, True, 0) self.add(vbox) self.connect("delete-event", self.on_window_delete) def on_window_delete(self, widget, event): self.parent.action_diagram.set_active(False) return True def check_scale_format(self): try: scale = float(self.scale_combo.get_child().get_text()) if scale == int(scale): self.scale_combo.get_child().set_text(str(int(scale)) + ".0") except ValueError: scale = 5.0 self.scale_combo.get_child().set_text("5.0") def on_scale_combo_activate(self, widget): self.check_scale_format() def on_scale_combo_focusout(self, widget, event): self.check_scale_format() def expand_time(self, time, unit): if unit == 0: return time / 1000000000 elif unit == 1: return time / 1000000 else: return time / 1000 def on_diagramarea_currtime_changed(self, diagramarea, time): unit = self.cursor_combo.get_active() if unit == 0: self.cursor_spin.set_value(time * 1000000000) elif unit == 1: self.cursor_spin.set_value(time * 1000000) else: self.cursor_spin.set_value(time * 1000) def on_from_time_changed(self, widget): from_time = self.from_spin.get_value() to_time = self.to_spin.get_value() if from_time > to_time: self.to_spin.disconnect(self.to_spin_changed_id) self.to_spin.set_value(from_time) self.to_spin_changed_id = self.to_spin.connect("changed", self.on_to_time_changed) def on_to_time_changed(self, widget): from_time = self.from_spin.get_value() to_time = self.to_spin.get_value() if from_time > to_time: self.from_spin.disconnect(self.from_spin_changed_id) self.from_spin.set_value(to_time) self.from_spin_changed_id = self.from_spin.connect("changed", self.on_from_time_changed) def on_cursor_spin_changed(self, widget): self.diagramarea.set_time(self.expand_time(self.cursor_spin.get_value(), self.cursor_combo.get_active())) def on_combo_changed(self, widget): self.scale_unit_combo.disconnect(self.scale_unit_combo_changed_id) self.from_combo.disconnect(self.from_combo_changed_id) self.to_combo.disconnect(self.to_combo_changed_id) self.cursor_combo.disconnect(self.cursor_combo_changed_id) self.scale_unit_combo.set_active(widget.get_active()) self.from_combo.set_active(widget.get_active()) self.to_combo.set_active(widget.get_active()) self.cursor_combo.set_active(widget.get_active()) self.scale_unit_combo_changed_id = self.scale_unit_combo.connect("changed", self.on_combo_changed) self.from_combo_changed_id = self.from_combo.connect("changed", self.on_combo_changed) self.to_combo_changed_id = self.to_combo.connect("changed", self.on_combo_changed) self.cursor_combo_changed_id = self.cursor_combo.connect("changed", self.on_combo_changed) self.diagramarea.set_time(self.expand_time(self.cursor_spin.get_value(), self.cursor_combo.get_active())) def on_redraw_clicked(self, widget): if self.scale_unit_combo.get_active() == 0: new_scale = float(self.scale_combo.get_child().get_text()) * 1000000000 elif self.scale_unit_combo.get_active() == 1: new_scale = float(self.scale_combo.get_child().get_text()) * 1000000 else: new_scale = float(self.scale_combo.get_child().get_text()) * 1000 new_diagram_unit = self.scale_unit_combo.get_active() new_start_time = self.expand_time(self.from_spin.get_value(), self.from_combo.get_active()) new_end_time = self.expand_time(self.to_spin.get_value(), self.to_combo.get_active()) diagram_width = int((new_end_time - new_start_time) * new_scale) if diagram_width > 5000: dialog = Gtk.MessageDialog(self, Gtk.DialogFlags.MODAL, Gtk.MessageType.ERROR, Gtk.ButtonsType.OK, _("Can't create timing diagram!")) dialog.format_secondary_text(_("The width of the timing diagram will be too wide. (> 5000)")) dialog.run() dialog.destroy() else: self.diagramarea.scale = new_scale self.diagramarea.diagram_unit = new_diagram_unit self.diagramarea.start_time = new_start_time self.diagramarea.end_time = new_end_time self.diagramarea.createDiagram() def on_saveimage_clicked(self, widget): save_timingdiagram_as_image(self.diagramarea, self) glogic-2.6/glogic/Preference.py0000644000175000017500000000635712042635757013470 00000000000000# -*- coding: utf-8; indent-tabs-mode: t; tab-width: 4 -*- import cairo, sys from gi.repository import Pango class _Preference: def __setattr__(self, name, value): import cairo from gi.repository import Pango if isinstance(self.pref_dict[name], Pango.FontDescription): self.pref_dict[name] = Pango.FontDescription(value) elif isinstance(self.pref_dict[name], cairo.Pattern): try: rgb = value.split(",") self.pref_dict[name] = cairo.SolidPattern(float(rgb[0]), float(rgb[1]), float(rgb[2])) except ValueError: self.pref_dict[name] = cairo.SolidPattern(0.0, 0.0, 0.0) elif isinstance(self.pref_dict[name], int): self.pref_dict[name] = int(value) elif isinstance(self.pref_dict[name], float): self.pref_dict[name] = float(value) def __getattr__(self, name): return self.pref_dict[name] pref_dict = { "drawing_font": Pango.FontDescription("Liberation Mono 10"), "net_color": cairo.SolidPattern(0.0, 0.0, 1.0), "net_high_color": cairo.SolidPattern(0.5, 0.5, 1.0), "net_color_running": cairo.SolidPattern(0.0, 0.0, 0.0), "component_color": cairo.SolidPattern(0.0, 1.0, 0.0), "component_high_color": cairo.SolidPattern(0.5, 1.0, 0.5), "component_color_running": cairo.SolidPattern(0.0, 0.0, 0.0), "selected_color": cairo.SolidPattern(1.0, 1.0, 1.0), "cursor_color": cairo.SolidPattern(1.0, 1.0, 1.0), "terminal_color": cairo.SolidPattern(1.0, 0.0, 0.0), "preadd_color": cairo.SolidPattern(1.0, 0.75, 0.0), "picked_color": cairo.SolidPattern(1.0, 0.5, 0.0), "terminal_color_running": cairo.SolidPattern(0.0, 0.0, 0.0), "highlevel_color": cairo.SolidPattern(1.0, 0.0, 0.0), "lowlevel_color": cairo.SolidPattern(0.0, 0.0, 1.0), "bg_color": cairo.SolidPattern(0.0, 0.0, 0.0), "bg_color_running": cairo.SolidPattern(1.0, 1.0, 1.0), "grid_color": cairo.SolidPattern(0.15, 0.15, 0.15), "symbol_type": 0, # 0: MIL/ANSI 1: IEC "max_calc_iters": 10000, "max_calc_duration": 0.0002 } def load_settings(self): import os from glogic import const try: fp = open(os.path.join(const.config_path, "preferences"), mode="r", encoding="utf-8") except TypeError: import codecs fp = codecs.open(os.path.join(const.config_path, "preferences"), mode="r", encoding="utf-8") except IOError: return for l in fp: pref = l.split("=") if len(pref) != 2: continue if pref[0] in self.pref_dict: self.__setattr__(pref[0], pref[1]) def save_settings(self): import cairo, os from glogic import const from gi.repository import Pango try: if not os.path.isdir(const.config_path): os.makedirs(const.config_path) fp = open(os.path.join(const.config_path, "preferences"), mode="w", encoding="utf-8") except IOError: return for key in self.pref_dict: if isinstance(self.pref_dict[key], Pango.FontDescription): fp.write("%s=%s\n" % (key, self.pref_dict[key].to_string())) elif isinstance(self.pref_dict[key], cairo.Pattern): rgba = self.pref_dict[key].get_rgba() fp.write("%s=%f,%f,%f\n" % (key, rgba[0], rgba[1], rgba[2])) elif isinstance(self.pref_dict[key], int): fp.write("%s=%d\n" % (key, self.pref_dict[key])) elif isinstance(self.pref_dict[key], float): fp.write("%s=%.9f\n" % (key, self.pref_dict[key])) fp.close() sys.modules[__name__] = _Preference() glogic-2.6/glogic/Makefile.am0000644000175000017500000000052612042503174013047 00000000000000SUBDIRS = Components glogicdir = $(pythondir)/glogic glogic_PYTHON = \ __init__.py \ CircuitManager.py \ ComponentConverter.py \ ComponentWindow.py \ DiagramArea.py \ DrawArea.py \ Exporter.py \ MainFrame.py \ Preference.py \ PreferencesWindow.py \ PropertyWindow.py \ TimingDiagramWindow.py \ Utils.py \ config.py \ const.py glogic-2.6/glogic/PropertyWindow.py0000644000175000017500000001364112042713744014411 00000000000000# -*- coding: utf-8; indent-tabs-mode: t; tab-width: 4 -*- from glogic import const from gi.repository import Gtk, Gdk, GObject from gettext import gettext as _ class PropertyWindow(Gtk.Window): __gsignals__ = { 'property-changed': (GObject.SIGNAL_RUN_FIRST, None, ()), 'window-hidden': (GObject.SIGNAL_RUN_FIRST, None, ()) } def __init__(self): self.title = _("Properties") Gtk.Window.__init__(self, title=self.title) self.set_resizable(False) self.set_type_hint(Gdk.WindowTypeHint.DIALOG) self.set_border_width(5) # Buttons buttons = Gtk.Box(spacing=5) self.undo_btn = Gtk.Button(stock=Gtk.STOCK_UNDO) buttons.pack_start(self.undo_btn, False, False, 0) self.apply_btn = Gtk.Button(stock=Gtk.STOCK_APPLY) buttons.pack_start(self.apply_btn, False, False, 0) self.bottom_btns = Gtk.Alignment.new(1, 0, 0, 0) self.bottom_btns.add(buttons) self.vbox = None self.prop_controls = [] self.apply_btn.connect("clicked", self.on_apply_btn_clicked) self.undo_btn.connect("clicked", self.on_undo_btn_clicked) self.connect("delete-event", self.on_window_delete) def on_property_changed(self, widget): self.apply_btn.set_sensitive(True) self.undo_btn.set_sensitive(True) def on_apply_btn_clicked(self, widget): values = [] i = 0 for p in self.component.properties: if isinstance(p[1], tuple): if p[1][0] == const.property_select: values.append(self.prop_controls[i].get_active()) elif p[1][0] == const.property_int: self.prop_controls[i].update() values.append(int(self.prop_controls[i].get_value())) elif p[1][0] == const.property_float: self.prop_controls[i].update() values.append(self.prop_controls[i].get_value()) else: values.append(self.prop_controls[i].get_text()) elif p[1] == const.property_bool: values.append(self.prop_controls[i].get_active()) else: i -= 1 i += 1 if self.component.propertyChanged(values): dialog = Gtk.MessageDialog(self, Gtk.DialogFlags.MODAL, Gtk.MessageType.WARNING, Gtk.ButtonsType.OK, _("Set values are invalid.")) dialog.run() dialog.destroy() else: self.component.values = values self.component.set_rot_props() self.apply_btn.set_sensitive(False) self.undo_btn.set_sensitive(False) self.emit("property-changed") def on_undo_btn_clicked(self, widget): i = 0 for p in self.component.properties: if isinstance(p[1], tuple): if p[1][0] == const.property_select: self.prop_controls[i].set_active(self.component.values[i]) elif p[1][0] == const.property_int: self.prop_controls[i].set_value(self.component.values[i]) elif p[1][0] == const.property_float: self.prop_controls[i].set_value(self.component.values[i]) else: self.prop_controls[i].set_text(self.component.values[i]) elif p[1] == const.property_bool: self.prop_controls[i].set_active(self.component.values[i]) else: i -= 1 i += 1 self.apply_btn.set_sensitive(False) self.undo_btn.set_sensitive(False) def setComponent(self, component): self.component = component if self.vbox is not None: self.vbox.remove(self.bottom_btns) self.remove(self.vbox) self.vbox = Gtk.Box(orientation=Gtk.Orientation.VERTICAL) if component is None: self.vbox.pack_start(Gtk.Label(_("Please select a component to edit properties.")), True, True, 5) self.set_title(self.title) else: self.set_title("%s - %s" % (self.title, component.description)) if len(component.properties) != 0: layout = Gtk.Table(len(component.properties), 2, False) i = 0 # Create property editor self.prop_controls = [] for (j, p) in enumerate(component.properties): caption = Gtk.Label(p[0]) caption.set_alignment(1.0, 0.5) layout.attach(caption, 0, 1, j, j + 1) has_property = True if isinstance(p[1], tuple): if p[1][0] == const.property_select: ctrl = Gtk.ComboBoxText() choices = p[1][1:] for choice in choices: ctrl.append_text(choice) ctrl.set_active(self.component.values[i]) ctrl.connect("changed", self.on_property_changed) elif p[1][0] == const.property_int: ctrl = Gtk.SpinButton() ctrl.set_increments(1, 10) ctrl.set_range(p[1][1], p[1][2]) ctrl.set_value(component.values[i]) ctrl.connect("changed", self.on_property_changed) ctrl.connect("activate", self.on_apply_btn_clicked) ctrl.set_size_request(p[1][3], -1) elif p[1][0] == const.property_float: ctrl = Gtk.SpinButton() ctrl.set_increments(1, 10) ctrl.set_range(p[1][1], p[1][2]) ctrl.set_digits(p[1][3]) ctrl.set_value(component.values[i]) ctrl.connect("changed", self.on_property_changed) ctrl.connect("activate", self.on_apply_btn_clicked) ctrl.set_size_request(p[1][4], -1) else: ctrl = Gtk.Entry() ctrl.set_text(component.values[i]) ctrl.connect("changed", self.on_property_changed) ctrl.connect("activate", self.on_apply_btn_clicked) ctrl.set_width_chars(p[1][1]) elif p[1] == const.property_bool: ctrl = Gtk.CheckButton("") ctrl.set_active(component.values[i]) ctrl.connect("toggled", self.on_property_changed) ctrl.connect("activate", self.on_apply_btn_clicked) else: ctrl = Gtk.Label("") i -= 1 has_property = False i += 1 propbox = Gtk.Box() propbox.pack_start(ctrl, False, False, 3) if has_property: self.prop_controls.append(ctrl) propbox.pack_start(Gtk.Label(p[2]), False, False, 3) layout.attach(propbox, 1, 2, j, j + 1) self.vbox.pack_start(layout, True, True, 10) else: self.vbox.pack_start(Gtk.Label(_("This component has no property.")), True, True, 5) self.vbox.pack_start(self.bottom_btns, False, False, 5) self.apply_btn.set_sensitive(False) self.undo_btn.set_sensitive(False) self.add(self.vbox) self.vbox.show_all() def on_window_delete(self, widget, event): self.emit("window-hidden") return True glogic-2.6/glogic/Makefile.in0000644000175000017500000005142312044406014013057 00000000000000# Makefile.in generated by automake 1.11.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : subdir = glogic DIST_COMMON = $(glogic_PYTHON) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in $(srcdir)/config.py.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/as-ac-expand.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = config.py CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__py_compile = PYTHON=$(PYTHON) $(SHELL) $(py_compile) am__installdirs = "$(DESTDIR)$(glogicdir)" py_compile = $(top_srcdir)/py-compile RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BZRREV = @BZRREV@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIR = @DATADIR@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ HELP_DIR = @HELP_DIR@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ ITSTOOL = @ITSTOOL@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_VERSION = @PYTHON_VERSION@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XMLLINT = @XMLLINT@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ intltool__v_merge_options_ = @intltool__v_merge_options_@ intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = Components glogicdir = $(pythondir)/glogic glogic_PYTHON = \ __init__.py \ CircuitManager.py \ ComponentConverter.py \ ComponentWindow.py \ DiagramArea.py \ DrawArea.py \ Exporter.py \ MainFrame.py \ Preference.py \ PreferencesWindow.py \ PropertyWindow.py \ TimingDiagramWindow.py \ Utils.py \ config.py \ const.py all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu glogic/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu glogic/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): config.py: $(top_builddir)/config.status $(srcdir)/config.py.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ install-glogicPYTHON: $(glogic_PYTHON) @$(NORMAL_INSTALL) @list='$(glogic_PYTHON)'; dlist=; list2=; test -n "$(glogicdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(glogicdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(glogicdir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then b=; else b="$(srcdir)/"; fi; \ if test -f $$b$$p; then \ $(am__strip_dir) \ dlist="$$dlist $$f"; \ list2="$$list2 $$b$$p"; \ else :; fi; \ done; \ for file in $$list2; do echo $$file; done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(glogicdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(glogicdir)" || exit $$?; \ done || exit $$?; \ if test -n "$$dlist"; then \ $(am__py_compile) --destdir "$(DESTDIR)" \ --basedir "$(glogicdir)" $$dlist; \ else :; fi uninstall-glogicPYTHON: @$(NORMAL_UNINSTALL) @list='$(glogic_PYTHON)'; test -n "$(glogicdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ dir='$(DESTDIR)$(glogicdir)'; \ filesc=`echo "$$files" | sed 's|$$|c|'`; \ fileso=`echo "$$files" | sed 's|$$|o|'`; \ st=0; \ for files in "$$files" "$$filesc" "$$fileso"; do \ $(am__uninstall_files_from_dir) || st=$$?; \ done; \ exit $$st # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(glogicdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-glogicPYTHON install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-glogicPYTHON .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ install-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-generic ctags \ ctags-recursive distclean distclean-generic distclean-tags \ distdir dvi dvi-am html html-am info info-am install \ install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am \ install-glogicPYTHON install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am tags tags-recursive uninstall uninstall-am \ uninstall-glogicPYTHON # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: glogic-2.6/glogic/PreferencesWindow.py0000644000175000017500000001043412036254747015031 00000000000000# -*- coding: utf-8; indent-tabs-mode: t; tab-width: 4 -*- from glogic import const, Preference from gi.repository import Gtk, Gdk from gettext import gettext as _ class PreferencesWindow(Gtk.Dialog): def __init__(self, parent): Gtk.Dialog.__init__(self, _("Preferences"), parent, 0, (Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL, Gtk.STOCK_APPLY, Gtk.ResponseType.APPLY)) self.set_resizable(False) self.set_modal(True) self.set_border_width(5) self.set_destroy_with_parent(True) vbox = Gtk.Box(orientation=Gtk.Orientation.VERTICAL) pref = Gtk.Box(spacing=5) pref.set_border_width(3) pref.pack_start(Gtk.Label(_("Font:")), False, False, 0) self.drawing_font_btn = Gtk.FontButton() self.drawing_font_btn.set_show_size(True) pref.pack_start(self.drawing_font_btn, False, False, 0) vbox.pack_start(pref, True, True, 5) table = Gtk.Table(6, 6, False) table.set_col_spacings(5) prefset = (("net_color", _("Net:")), ("net_high_color", _("Net (highlighted):")), ("net_color_running", _("Net (running):")), ("highlevel_color", _("Net (high level):")), ("lowlevel_color", _("Net (low level):")), None, ("component_color", _("Component:")), ("component_high_color", _("Component (highlighted):")), ("component_color_running", _("Component (running):")), ("picked_color", _("Component (picked):")), ("preadd_color", _("Component (pre added):")), ("selected_color", _("Component (selected):")), ("terminal_color", _("Terminal:")), ("terminal_color_running", _("Terminal (running):")), ("cursor_color", _("Cursor:")), ("bg_color", _("Background:")), ("bg_color_running", _("Background (running):")), ("grid_color", _("Grid:")), ) self.color_buttons = {} for i, prefpair in enumerate(prefset): if prefpair is None: continue caption = Gtk.Label(prefpair[1]) caption.set_alignment(1.0, 0.5) table.attach(caption, i % 3 * 2, i % 3 * 2 + 1, i / 3, i / 3 + 1) colorbutton = Gtk.ColorButton() self.color_buttons[prefpair[0]] = colorbutton table.attach(colorbutton, i % 3 * 2 + 1, i % 3 * 2 + 2, i / 3, i / 3 + 1) vbox.pack_start(table, True, True, 5) pref = Gtk.Box(spacing=5) pref.set_border_width(3) pref.pack_start(Gtk.Label(_("Symbol type:")), False, False, 0) self.symbol_type_combo = Gtk.ComboBoxText() self.symbol_type_combo.set_entry_text_column(0) self.symbol_type_combo.append_text(_("MIL/ANSI")) self.symbol_type_combo.append_text(_("IEC")) pref.pack_start(self.symbol_type_combo, False, False, 0) vbox.pack_start(pref, True, True, 5) pref = Gtk.Box(spacing=5) pref.set_border_width(3) pref.pack_start(Gtk.Label(_("Max calc iters:")), False, False, 0) self.calc_iter_spin = Gtk.SpinButton() self.calc_iter_spin.set_increments(1, 10) self.calc_iter_spin.set_range(10, 1000000) pref.pack_start(self.calc_iter_spin, False, False, 0) pref.pack_start(Gtk.Label(_("Max calc duration [µs]:")), False, False, 0) self.calc_duration_spin = Gtk.SpinButton() self.calc_duration_spin.set_increments(1, 10) self.calc_duration_spin.set_range(0, 100000) self.calc_duration_spin.set_digits(3) pref.pack_start(self.calc_duration_spin, False, False, 0) vbox.pack_start(pref, True, True, 5) box = self.get_content_area() box.add(vbox) box.show_all() def update_dialog(self): self.drawing_font_btn.set_font_name(Preference.drawing_font.to_string()) for key in self.color_buttons: rgba = Preference.__getattr__(key).get_rgba() self.color_buttons[key].set_color(Gdk.Color(rgba[0]*65535, rgba[1]*65535, rgba[2]*65535)) self.symbol_type_combo.set_active(Preference.symbol_type) self.calc_iter_spin.set_value(Preference.max_calc_iters) self.calc_duration_spin.set_value(Preference.max_calc_duration * 1000000) def apply_settings(self): Preference.drawing_font = self.drawing_font_btn.get_font_name() for key in self.color_buttons: color = self.color_buttons[key].get_color() Preference.__setattr__(key, "%f,%f,%f" % (color.red / 65536, color.green / 65536, color.blue / 65536)) Preference.symbol_type = self.symbol_type_combo.get_active() Preference.max_calc_iters = self.calc_iter_spin.get_value() Preference.max_calc_duration = self.calc_duration_spin.get_value() * 0.000001 glogic-2.6/configure.ac0000644000175000017500000000161412044362333012036 00000000000000AC_PREREQ([2.64]) AC_INIT(glogic, 2.6) AM_INIT_AUTOMAKE AM_PATH_PYTHON(3.1) GETTEXT_PACKAGE=glogic AC_SUBST(GETTEXT_PACKAGE) AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE", [GETTEXT package name]) AM_GLIB_GNU_GETTEXT IT_PROG_INTLTOOL([0.35.0]) AM_INIT_AUTOMAKE([1.11]) AC_CONFIG_MACRO_DIR([m4]) AS_AC_EXPAND(DATADIR, $datadir) bzrrev="" if test -d "$srcdir/.bzr"; \ then \ echo This is a development branch && \ cd $srcdir && \ bzrrev=`$srcdir/missing --run bzr revno` \ || echo Failed to get revision number >&2 \ else \ echo This is a released software; \ fi AC_SUBST(BZRREV, $bzrrev) YELP_HELP_INIT AC_CONFIG_FILES([ Makefile bin/Makefile bin/glogic glogic/Makefile glogic/config.py glogic/Components/Makefile help/Makefile po/Makefile.in data/Makefile data/icons/Makefile data/icons/scalable/Makefile data/images/Makefile data/images/components/Makefile examples/Makefile ]) AC_OUTPUT glogic-2.6/help/0000775000175000017500000000000012044454516010565 500000000000000glogic-2.6/help/ja/0000775000175000017500000000000012044454516011157 500000000000000glogic-2.6/help/ja/saveimage.page0000664000175000017500000000250512044454512013674 00000000000000 作成した回路やタイミングチャートを画像ファイルに保存できます。 画像として保存
回路図の保存

回路図を保存するには、 ファイル画像として保存 をクリックします。編集画面でこの操作を行った場合、配線は一色で表示されます。回路の実行画面で保存操作を行った場合は、配線の着色の有無を選択できます。

タイミングチャートの保存

タイミングチャートを保存するには、タイミングチャートウィンドウ上部の 図を保存 をクリックします。

PNG、PDF、SVG、PS の4つのフォーマットで保存できます。

glogic-2.6/help/ja/timing.page0000664000175000017500000000506012044454512013221 00000000000000 実行モードで 実行タイミングチャート をクリックすると、タイミングチャートを表示できます。 タイミングチャート
プローブの設置

タイミングチャートはプローブの電圧レベルを表示します。回路にプローブを追加するには、部品ウィンドウで Probe を選択します。

それぞれのプローブの「名前」プロパティーを変更することで、プローブの名前を変更できます。この名前はタイミングチャートのグラフ名として表示されます。

タイミングチャートの表示

タイミングチャートを表示するには、実行モード中に 実行タイミングチャート をクリックするか、CtrlT を押します。

指定時刻でのスイッチの切り替え

回路の現在の時刻は、タイミングチャート上の赤線で表示されます。一方、タイミングチャート上をマウスカーソルが移動すると、青線が表示されます。回路の現在の時刻を変更するには、タイミングチャート上の特定の位置をクリックするか、ウィンドウ上部の「カーソル位置」に手動で入力します。

回路のスイッチ素子をクリックしてスイッチを切り替えると、指定時刻でスイッチを切り替えた時の挙動が表示されます。

タイミングチャートの調整

タイミングチャートの表示位置や倍率は、ウィンドウ上部のボタンで調節できます。

タイミングチャートの横幅の上限は 5000 ピクセルです。

glogic-2.6/help/ja/basic-components.page0000664000175000017500000002566712044454511015214 00000000000000 NOT、AND、OR などの基本的な論理素子 基本的な論理素子
NOT

NOT

入力の否定を出力します。

真理値表:

入力

出力

H

L

L

H

プロパティー:

入力端子

入力端子の数。2 または 3

伝播遅延時間

tPHL

出力がHレベルからLレベルに変化する時の遅延時間

tPLH

出力がLレベルからHレベルに変化する時の遅延時間

AND

AND

入力の論理積を出力します。

真理値表:

入力

出力

L

L

L

L

H

L

H

L

L

H

H

H

プロパティー:

入力端子

入力端子の数。2 または 3

伝播遅延時間

tPHL

出力がHレベルからLレベルに変化する時の遅延時間

tPLH

出力がLレベルからHレベルに変化する時の遅延時間

OR

OR

入力の論理和を出力します。

真理値表:

入力

出力

L

L

L

L

H

H

H

L

H

H

H

H

プロパティー:

入力端子

入力端子の数。2 または 3

伝播遅延時間

tPHL

出力がHレベルからLレベルに変化する時の遅延時間

tPLH

出力がLレベルからHレベルに変化する時の遅延時間

XOR

XOR

入力の排他的論理和を出力します。

真理値表:

入力

出力

L

L

L

L

H

H

H

L

H

H

H

L

プロパティー:

入力端子

入力端子の数。2 または 3

伝播遅延時間

tPHL

出力がHレベルからLレベルに変化する時の遅延時間

tPLH

出力がLレベルからHレベルに変化する時の遅延時間

NAND

NAND

入力の否定論理積を出力します。

真理値表:

入力

出力

L

L

H

L

H

H

H

L

H

H

H

L

プロパティー:

入力端子

入力端子の数。2 または 3

伝播遅延時間

tPHL

出力がHレベルからLレベルに変化する時の遅延時間

tPLH

出力がLレベルからHレベルに変化する時の遅延時間

NOR

NOR

入力の否定論理和を出力します。

真理値表:

入力

出力

L

L

H

L

H

L

H

L

L

H

H

L

プロパティー:

入力端子

入力端子の数。2 または 3

伝播遅延時間

tPHL

出力がHレベルからLレベルに変化する時の遅延時間

tPLH

出力がLレベルからHレベルに変化する時の遅延時間

Vdd

Vdd

常時Hレベルを出力します

真理値表:

入力

出力

H

プロパティー:

プロパティーはありません。

GND

GND

常時Lレベルを出力します。

真理値表:

入力

出力

L

プロパティー:

プロパティーはありません。

glogic-2.6/help/ja/simulate.page0000664000175000017500000000646412044454512013566 00000000000000 シミュレート実行 をクリックして作成した回路をシミュレートします。 シミュレートの基本
回路の実行

作成した回路のシミュレートを開始するには、 シミュレート実行 をクリックするか、F5 を押します。

回路をシミュレートする前に、以下の点に注意しなければなりません。

回路が周波数無限大で振動しないこと (振動する回路で伝播遅延時間などが適切に設定されていること)

素子の入力端子が開放されていないこと

素子の出力端子が短絡されていないこと

回路の一時停止

2つ以上のスイッチを同時に切り替えたい時は、一時停止モードが使えます。シミュレーションを一時停止するには、シミュレート一時停止をクリックするか、F6 を押して一時停止モードに切り替えます。

一時停止モードでは、スイッチが切り替えられた時に回路は動作しません。このモードの時に2つ以上のスイッチを切り替えることができます。シミュレーションを再開するには、メニューをクリックするか F6 を押してモードを切り替えます。

収束する回路の実行

回路が振動せずに収束する場合、スイッチ素子をクリックすることで、結果を直ちに見ることができます。

振動する回路の実行

回路が振動する場合、伝播遅延時間が適切に設定されている場合に限り実行できます。この場合の回路の挙動はタイミングチャートウィンドウから把握できます。タイミングチャートウィンドウについては を参照してください。

設定

編集設定 からシミュレート時の設定を変更できます。

最大計算反復回数

システム内での計算の反復回数の上限値です。反復回数がこの値を超えると、シミュレートを停止します。

最大計算時間

伝播遅延時間などの累積時間がこの値を超えると、シミュレートを停止します。

glogic-2.6/help/ja/index.page0000664000175000017500000000230512044454512013040 00000000000000 gLogic のヘルプ <media type="image" src="figures/glogic-trail.png"/> gLogic 論理回路シミュレーター gLogic 論理回路シミュレーター <media type="image" src="figures/glogic-logo.png" its:translate="no">gLogic logo</media> gLogic 論理回路シミュレーター
回路の編集
回路のシミュレート
画像として保存
論理素子
glogic-2.6/help/ja/flipflop-components.page0000664000175000017500000002075612044454512015741 00000000000000 RS-FFやD-FFなどの基本的なフリップフロップ素子 基本的なフリップフロップ
RSフリップフロップ

RS flip-flop

RSフリップフロップにより入力を記憶します。

等価回路:

RS flip-flop

真理値表:

入力

出力

S

R

Q

~Q

L

L

Q(n-1)

~Q(n-1)

H

L

H

L

L

H

L

H

H

H

L

L

プロパティー:

伝播遅延時間

tPHL

出力がHレベルからLレベルに変化する時の遅延時間

tPLH

出力がLレベルからHレベルに変化する時の遅延時間

RSフリップフロップでは本来R=S=1の時の動作、及びそこからR=S=0に切り替わった時の出力Qは定義されていませんが、この素子はQ=1で安定します。

JKフリップフロップ

JK flip-flop

エッジトリガー型JKフリップフロップにより入力を記憶します。

等価回路:

JK flip-flop

真理値表:

入力

出力

J

K

CK

Q

~Q

L

L

↑(↓)

Q(n-1)

~Q(n-1)

H

L

H

L

L

H

L

H

H

H

~Q(n-1)

Q(n-1)

プロパティー:

トリガータイプ

クロック信号の種類。立ち上がりエッジ(↑)または立ち下がりエッジ(↓)

伝播遅延時間

tPHL

出力がHレベルからLレベルに変化する時の遅延時間

tPLH

出力がLレベルからHレベルに変化する時の遅延時間

Dフリップフロップ

D flip-flop

Dフリップフロップにより入力を記憶します。

等価回路:

D flip-flop

真理値表:

入力

出力

D

CK

Q

~Q

H

↑(↓)

H

L

L

L

H

プロパティー:

トリガータイプ

クロック信号の種類。立ち上がりエッジ(↑)または立ち下がりエッジ(↓)

伝播遅延時間

tPHL

出力がHレベルからLレベルに変化する時の遅延時間

tPLH

出力がLレベルからHレベルに変化する時の遅延時間

Tフリップフロップ

T flip-flop

Tフリップフロップにより、出力を切り替えます。

等価回路:

T flip-flop

真理値表:

入力

出力

CK

Q

~Q

↑(↓)

~Q(n-1)

Q(n-1)

プロパティー:

トリガータイプ

クロック信号の種類。立ち上がりエッジ(↑)または立ち下がりエッジ(↓)

伝播遅延時間

tPHL

出力がHレベルからLレベルに変化する時の遅延時間

tPLH

出力がLレベルからHレベルに変化する時の遅延時間

glogic-2.6/help/ja/other-components.page0000664000175000017500000000546212044454512015244 00000000000000 スイッチ、プローブなど その他の素子
スイッチ

Switch

クリックにより出力電圧レベルを切り替えます。

プロパティー:

初期状態

シミュレート開始時の電圧レベル

発振器

Oscillator

出力する電圧レベルを周期的に切り替えます。

プロパティー:

周期

HレベルとLレベルを入れ替える周期。

シフト

発振を開始する時刻

発振時間

発振を継続する時間

初期状態

シミュレート開始時の電圧レベル

プローブ

Probe

タイミングチャートに表示するグラフを選択します。

プロパティー:

名前

プローブの名前。ここに設定した名前はグラフのタイトルとなります。

テキスト

Text

回路図中にテキストを表示します。

プロパティー:

テキスト

表示するテキスト

glogic-2.6/help/ja/mil-iec.page0000664000175000017500000000163012044454512013250 00000000000000 編集設定 から回路図に表示する記号の種類を変更できます。 記号の種類の変更
設定

回路図に表示する記号の種類を変更するには、編集設定 の「記号の種類」を「MIL/ANSI」または「IEC」に変更します。この変更は回路の動作には影響しません。

glogic-2.6/help/ja/ja.po0000644000175000017500000012730112044405462012027 00000000000000# # Koichi Akabe , 2012. # msgid "" msgstr "" "Project-Id-Version: glogic-help trunk\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-11-01 12:00+0900\n" "PO-Revision-Date: 2012-11-01 01:40+0000\n" "Last-Translator: Koichi Akabe \n" "Language-Team: Japanese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2012-11-01 05:16+0000\n" "X-Generator: Launchpad (build 16218)\n" "Language: ja\n" #. Put one translator per line, in the form NAME , YEAR1, YEAR2 msgctxt "_" msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Koichi Akabe https://launchpad.net/~vbkaisetsu" #: help/C/add-component.page:8(info/desc) msgid "" "Click AddComponents to choose " "components you want to add." msgstr "" "追加部品 をクリックして追加する部品を" "選択します。" #: help/C/add-component.page:14(page/title) msgid "Add components and edit properties" msgstr "部品の追加とプロパティーの編集" #: help/C/add-component.page:17(section/title) msgid "Add components" msgstr "部品の追加" #: help/C/add-component.page:18(section/p) msgid "To add components:" msgstr "部品を追加するには:" #: help/C/add-component.page:21(item/p) msgid "" "Click AddComponents to show " "Components window" msgstr "" "追加部品 をクリックし、部品ウィンドウ" "を表示します" #: help/C/add-component.page:24(item/p) msgid "" "Click a component that you want to add, and change to add components mode" msgstr "追加したい部品をクリックし、部品追加モードにします" #: help/C/add-component.page:27(item/p) msgid "Move the cursor and decide the position, then click" msgstr "カーソルを移動して追加位置を決め、クリックします" #: help/C/add-component.page:30(item/p) msgid "You can click a few times to continue adding same components" msgstr "連続してクリックすることで、同じ部品を連続して追加できます" #: help/C/add-component.page:33(item/p) msgid "Right click to back to select components mode" msgstr "右クリックして部品選択モードに戻ります" #: help/C/add-component.page:36(section/p) msgid "There are two other options to show the components window:" msgstr "部品ウィンドウを表示するには、他に次の2つの方法があります:" #: help/C/add-component.page:39(item/p) help/C/add-net.page:42(item/p) msgid "Click <_:media-1/> on the toolbar" msgstr "ツールバーの <_:media-1/> をクリックする" #: help/C/add-component.page:42(item/p) msgid "Press CtrlA" msgstr "CtrlA を押す" #: help/C/add-component.page:48(section/title) msgid "Edit properties" msgstr "プロパティーの編集" #: help/C/add-component.page:49(section/p) msgid "" "Each components have properties, and you can adjust it to change behavior. " "To modify properties:" msgstr "" "それぞれの部品にはプロパティーが存在し、プロパティーの値を変更することで部品" "の挙動を変えられます。プロパティーを修正するには:" #: help/C/add-component.page:52(item/p) msgid "" "Right click a few times to change to select components mode, and do it one " "more time to show the property window" msgstr "" "数回右クリックして部品選択モードに変更し、更に右クリックしてプロパティーウィ" "ンドウを表示します" #: help/C/add-component.page:55(item/p) msgid "Click and select a component that you want to change properties" msgstr "プロパティーを編集したい部品をクリックして選択します" #: help/C/add-component.page:58(item/p) msgid "" "Change values on the property window, and click \"Apply\" to reflect your " "settings" msgstr "" "プロパティーウィンドウで値を変更後、「適用」ボタンを押して設定を反映します" #: help/C/add-component.page:61(section/p) msgid "" "There are two other options to show the property window. However, the above " "one may be the easiest way." msgstr "" "プロパティーウィンドウを表示する方法は他にも2つありますが、上述した方法が最も" "簡単でしょう。" #: help/C/add-component.page:64(item/p) msgid "Click EditProperty" msgstr "編集プロパティー をクリックする" #: help/C/add-component.page:67(item/p) msgid "Press CtrlP" msgstr "CtrlP を押す" #: help/C/add-net.page:8(info/desc) msgid "Click AddNet to add nets." msgstr "" "追加配線 をクリックして配線を追加しま" "す。" #: help/C/add-net.page:14(page/title) msgid "Add nets and connect components" msgstr "配線の追加と部品の接続" #: help/C/add-net.page:17(section/title) msgid "Add nets" msgstr "配線の追加" #: help/C/add-net.page:18(section/p) msgid "You can add vertical and horizontal nets on gLogic. To add nets:" msgstr "" "gLogic では、垂直方向、及び水平方向の配線を追加できます。配線を追加するには:" #: help/C/add-net.page:21(item/p) msgid "" "Click AddNet to change to net mode" msgstr "" "追加配線 をクリックし、配線モードにし" "ます" #: help/C/add-net.page:24(item/p) msgid "Click the starting point of a net" msgstr "配線の始点をクリックします" #: help/C/add-net.page:27(item/p) msgid "Click the ending point of a net" msgstr "配線の終点をクリックします" #: help/C/add-net.page:30(item/p) msgid "You can click more times to continue adding nets" msgstr "何度もクリックすることで、配線の追加を継続できます" #: help/C/add-net.page:33(item/p) msgid "Right click to stop adding nets" msgstr "右クリックして配線の追加を終了します" #: help/C/add-net.page:36(item/p) msgid "One more right click to back to select components mode" msgstr "更に右クリックして部品選択モードに戻ります" #: help/C/add-net.page:39(section/p) msgid "There are two other options to change to net mode:" msgstr "配線モードに切り替えるには、他に次の2つの方法があります:" #: help/C/add-net.page:45(item/p) msgid "Press CtrlE" msgstr "CtrlE を押す" #: help/C/add-net.page:51(section/title) msgid "Connect components" msgstr "部品の接続" #: help/C/add-net.page:52(section/p) msgid "" "On net mode, the cursor will be snapped to terminals of components and nets. " "To connect a net to a terminal, make a terminal and a net touch." msgstr "" "配線モードにおいて、カーソルは部品の端子や配線にスナップします。端子に配線す" "るには、端子と配線を接触させます。" #: help/C/add-net.page:53(note/p) msgid "" "If you put a net on another one, they will be unified. If you put a terminal " "on a net, it will be split at a terminal." msgstr "" "2つ以上の配線を重ねて配置すると、それらの配線は1つにまとめられます。配線の途" "中に端子を配置すると、配線は端子部分で分割されます。" #: help/C/add-net.page:57(section/title) msgid "To mass nets" msgstr "配線を密集させる場合" #: help/C/add-net.page:58(section/p) msgid "" "When you want to mass nets, snapping may annoy you to place nets. To disable " "snapping temporarily, press Ctrl while you add." msgstr "" "配線を密集して設置する場合、スナップが鬱陶しい場合があります。一時的にスナッ" "プ機能を無効化するには、配線モード中に Ctrl を押します。" #: help/C/basic-components.page:8(info/desc) msgid "NOT, AND, OR and other basic logic components" msgstr "NOT、AND、OR などの基本的な論理素子" #: help/C/basic-components.page:14(page/title) msgid "Basic logic components" msgstr "基本的な論理素子" #: help/C/basic-components.page:17(section/title) msgid "NOT" msgstr "NOT" #: help/C/basic-components.page:19(section/p) msgid "Output NOT of input." msgstr "入力の否定を出力します。" #: help/C/basic-components.page:22(item/title) #: help/C/basic-components.page:61(item/title) #: help/C/basic-components.page:102(item/title) #: help/C/basic-components.page:143(item/title) #: help/C/basic-components.page:184(item/title) #: help/C/basic-components.page:225(item/title) #: help/C/basic-components.page:266(item/title) #: help/C/basic-components.page:288(item/title) #: help/C/flipflop-components.page:25(item/title) #: help/C/flipflop-components.page:70(item/title) #: help/C/flipflop-components.page:116(item/title) #: help/C/flipflop-components.page:160(item/title) #: help/C/shiftregister-components.page:22(item/title) #: help/C/shiftregister-components.page:70(item/title) #: help/C/shiftregister-components.page:114(item/title) #: help/C/shiftregister-components.page:160(item/title) msgid "Truth table:" msgstr "真理値表:" #: help/C/basic-components.page:26(td/p) help/C/basic-components.page:65(td/p) #: help/C/basic-components.page:106(td/p) #: help/C/basic-components.page:147(td/p) #: help/C/basic-components.page:188(td/p) #: help/C/basic-components.page:229(td/p) #: help/C/basic-components.page:270(td/p) #: help/C/basic-components.page:292(td/p) #: help/C/flipflop-components.page:29(td/p) #: help/C/flipflop-components.page:74(td/p) #: help/C/flipflop-components.page:120(td/p) #: help/C/flipflop-components.page:164(td/p) #: help/C/shiftregister-components.page:26(td/p) #: help/C/shiftregister-components.page:74(td/p) #: help/C/shiftregister-components.page:118(td/p) #: help/C/shiftregister-components.page:164(td/p) msgid "Input" msgstr "入力" #: help/C/basic-components.page:26(td/p) help/C/basic-components.page:65(td/p) #: help/C/basic-components.page:106(td/p) #: help/C/basic-components.page:147(td/p) #: help/C/basic-components.page:188(td/p) #: help/C/basic-components.page:229(td/p) #: help/C/basic-components.page:270(td/p) #: help/C/basic-components.page:292(td/p) #: help/C/flipflop-components.page:29(td/p) #: help/C/flipflop-components.page:74(td/p) #: help/C/flipflop-components.page:120(td/p) #: help/C/flipflop-components.page:164(td/p) #: help/C/shiftregister-components.page:26(td/p) #: help/C/shiftregister-components.page:74(td/p) #: help/C/shiftregister-components.page:118(td/p) #: help/C/shiftregister-components.page:164(td/p) msgid "Output" msgstr "出力" #: help/C/basic-components.page:33(item/title) #: help/C/basic-components.page:74(item/title) #: help/C/basic-components.page:115(item/title) #: help/C/basic-components.page:156(item/title) #: help/C/basic-components.page:197(item/title) #: help/C/basic-components.page:238(item/title) #: help/C/basic-components.page:276(item/title) #: help/C/basic-components.page:298(item/title) #: help/C/flipflop-components.page:39(item/title) #: help/C/flipflop-components.page:84(item/title) #: help/C/flipflop-components.page:128(item/title) #: help/C/flipflop-components.page:171(item/title) #: help/C/other-components.page:22(item/title) #: help/C/other-components.page:39(item/title) #: help/C/other-components.page:68(item/title) #: help/C/other-components.page:85(item/title) #: help/C/shiftregister-components.page:34(item/title) #: help/C/shiftregister-components.page:82(item/title) #: help/C/shiftregister-components.page:128(item/title) #: help/C/shiftregister-components.page:175(item/title) #: help/C/viewer-components.page:22(item/title) #: help/C/viewer-components.page:34(item/title) msgid "Properties:" msgstr "プロパティー:" #: help/C/basic-components.page:36(td/p) help/C/basic-components.page:77(td/p) #: help/C/basic-components.page:118(td/p) #: help/C/basic-components.page:159(td/p) #: help/C/basic-components.page:200(td/p) #: help/C/basic-components.page:241(td/p) msgid "Input pins" msgstr "入力端子" #: help/C/basic-components.page:37(td/p) help/C/basic-components.page:78(td/p) #: help/C/basic-components.page:119(td/p) #: help/C/basic-components.page:160(td/p) #: help/C/basic-components.page:201(td/p) #: help/C/basic-components.page:242(td/p) msgid "A number of input pins. 2 or 3" msgstr "入力端子の数。2 または 3" #: help/C/basic-components.page:40(td/p) help/C/basic-components.page:81(td/p) #: help/C/basic-components.page:122(td/p) #: help/C/basic-components.page:163(td/p) #: help/C/basic-components.page:204(td/p) #: help/C/basic-components.page:245(td/p) #: help/C/flipflop-components.page:42(td/p) #: help/C/flipflop-components.page:91(td/p) #: help/C/flipflop-components.page:135(td/p) #: help/C/flipflop-components.page:178(td/p) #: help/C/shiftregister-components.page:45(td/p) #: help/C/shiftregister-components.page:93(td/p) #: help/C/shiftregister-components.page:139(td/p) #: help/C/shiftregister-components.page:186(td/p) msgid "Propagation delay" msgstr "伝播遅延時間" #: help/C/basic-components.page:43(td/p) help/C/basic-components.page:84(td/p) #: help/C/basic-components.page:125(td/p) #: help/C/basic-components.page:166(td/p) #: help/C/basic-components.page:207(td/p) #: help/C/basic-components.page:248(td/p) #: help/C/flipflop-components.page:45(td/p) #: help/C/flipflop-components.page:94(td/p) #: help/C/flipflop-components.page:138(td/p) #: help/C/flipflop-components.page:181(td/p) #: help/C/shiftregister-components.page:48(td/p) #: help/C/shiftregister-components.page:96(td/p) #: help/C/shiftregister-components.page:142(td/p) #: help/C/shiftregister-components.page:189(td/p) msgid "tPHL" msgstr "tPHL" #: help/C/basic-components.page:44(td/p) help/C/basic-components.page:85(td/p) #: help/C/basic-components.page:126(td/p) #: help/C/basic-components.page:167(td/p) #: help/C/basic-components.page:208(td/p) #: help/C/basic-components.page:249(td/p) #: help/C/flipflop-components.page:46(td/p) #: help/C/flipflop-components.page:95(td/p) #: help/C/flipflop-components.page:139(td/p) #: help/C/flipflop-components.page:182(td/p) #: help/C/shiftregister-components.page:49(td/p) #: help/C/shiftregister-components.page:97(td/p) #: help/C/shiftregister-components.page:143(td/p) #: help/C/shiftregister-components.page:190(td/p) msgid "Delays when output is changed from H level to L level" msgstr "出力がHレベルからLレベルに変化する時の遅延時間" #: help/C/basic-components.page:47(td/p) help/C/basic-components.page:88(td/p) #: help/C/basic-components.page:129(td/p) #: help/C/basic-components.page:170(td/p) #: help/C/basic-components.page:211(td/p) #: help/C/basic-components.page:252(td/p) #: help/C/flipflop-components.page:49(td/p) #: help/C/flipflop-components.page:98(td/p) #: help/C/flipflop-components.page:142(td/p) #: help/C/flipflop-components.page:185(td/p) #: help/C/shiftregister-components.page:52(td/p) #: help/C/shiftregister-components.page:100(td/p) #: help/C/shiftregister-components.page:146(td/p) #: help/C/shiftregister-components.page:193(td/p) msgid "tPLH" msgstr "tPLH" #: help/C/basic-components.page:48(td/p) help/C/basic-components.page:89(td/p) #: help/C/basic-components.page:130(td/p) #: help/C/basic-components.page:171(td/p) #: help/C/basic-components.page:212(td/p) #: help/C/basic-components.page:253(td/p) #: help/C/flipflop-components.page:50(td/p) #: help/C/flipflop-components.page:99(td/p) #: help/C/flipflop-components.page:143(td/p) #: help/C/flipflop-components.page:186(td/p) #: help/C/shiftregister-components.page:53(td/p) #: help/C/shiftregister-components.page:101(td/p) #: help/C/shiftregister-components.page:147(td/p) #: help/C/shiftregister-components.page:194(td/p) msgid "Delays when output is changed from L level to H level" msgstr "出力がLレベルからHレベルに変化する時の遅延時間" #: help/C/basic-components.page:56(section/title) msgid "AND" msgstr "AND" #: help/C/basic-components.page:58(section/p) msgid "Outputs AND of input." msgstr "入力の論理積を出力します。" #: help/C/basic-components.page:97(section/title) msgid "OR" msgstr "OR" #: help/C/basic-components.page:99(section/p) msgid "Outputs OR of input." msgstr "入力の論理和を出力します。" #: help/C/basic-components.page:138(section/title) msgid "XOR" msgstr "XOR" #: help/C/basic-components.page:140(section/p) msgid "Outputs exclusive OR of input." msgstr "入力の排他的論理和を出力します。" #: help/C/basic-components.page:179(section/title) msgid "NAND" msgstr "NAND" #: help/C/basic-components.page:181(section/p) msgid "Outputs NOT-AND of input." msgstr "入力の否定論理積を出力します。" #: help/C/basic-components.page:220(section/title) msgid "NOR" msgstr "NOR" #: help/C/basic-components.page:222(section/p) msgid "Outputs NOT-OR of input." msgstr "入力の否定論理和を出力します。" #: help/C/basic-components.page:261(section/title) msgid "Vdd" msgstr "Vdd" #: help/C/basic-components.page:263(section/p) msgid "Always outputs H level." msgstr "常時Hレベルを出力します" #: help/C/basic-components.page:277(item/p) #: help/C/basic-components.page:299(item/p) #: help/C/viewer-components.page:23(item/p) #: help/C/viewer-components.page:35(item/p) msgid "This component has no properties." msgstr "プロパティーはありません。" #: help/C/basic-components.page:283(section/title) msgid "GND" msgstr "GND" #: help/C/basic-components.page:285(section/p) msgid "Always outputs L level." msgstr "常時Lレベルを出力します。" #: help/C/edit.page:8(info/desc) msgid "You can move or delete components on the select components mode." msgstr "部品選択モードでは、部品の移動や削除ができます。" #: help/C/edit.page:14(page/title) msgid "Move and delete components" msgstr "部品の移動と削除" #: help/C/edit.page:16(section/title) msgid "Select components" msgstr "部品の選択" #: help/C/edit.page:17(section/p) msgid "" "When you launch gLogic, it will be first the select components mode. To " "change to this mode from the net mode or the add components mode, right-" "click a few times. There are two ways to select components:" msgstr "" "gLogic を起動すると、まず部品選択モードになります。配線追加モードまたは部品追" "加モードから部品選択モードに変更するには、数回右クリックします。部品を選択す" "る方法は2つあります:" #: help/C/edit.page:20(item/p) msgid "Move the cursor on a component and click it when the color is changed." msgstr "カーソルを部品の上に移動し、部品の色が変わったらクリックする" #: help/C/edit.page:23(item/p) msgid "" "Drag the cursor on the screen and select all components in the rectangle" msgstr "画面上でカーソルをドラッグさせ、短形範囲の部品すべてを選択する" #: help/C/edit.page:26(section/p) msgid "" "To add selected components, select it with pressing Ctrl. If you " "want to unselect a component, click it with pressing Ctrl." msgstr "" "選択部品を追加するには、Ctrl を押しながら部品を選択します。部品の" "選択を一つ解除したい場合は、Ctrl を押しながら部品をクリックしま" "す。" #: help/C/edit.page:27(section/p) msgid "To unselect all components, click the place outside components." msgstr "すべての部品の選択を解除するには、部品以外の場所をクリックします。" #: help/C/edit.page:30(section/title) msgid "Move components" msgstr "部品の移動" #: help/C/edit.page:31(section/p) msgid "To move components, put the cursor on a selected component and drag it." msgstr "" "部品を移動するには、選択された部品の上にカーソルを置いてドラッグします。" #: help/C/edit.page:34(section/title) msgid "Rotate and flip components" msgstr "部品の回転と反転" #: help/C/edit.page:35(section/p) msgid "There are 4 methods to transform components:" msgstr "以下の4つの部品変換方法があります。" #: help/C/edit.page:38(td/p) msgid "Menu" msgstr "メニュー" #: help/C/edit.page:39(td/p) msgid "Key" msgstr "キー" #: help/C/edit.page:40(td/p) msgid "Description" msgstr "説明" #: help/C/edit.page:43(td/p) msgid "Rotate left 90" msgstr "90度左回転" #: help/C/edit.page:45(td/p) msgid "Rotate components 90 degrees counterclockwise." msgstr "部品を反時計回りに90度回転します。" #: help/C/edit.page:48(td/p) msgid "Rotate right 90" msgstr "90度右回転" #: help/C/edit.page:50(td/p) msgid "Rotate components 90 degrees clockwise." msgstr "部品を時計回りに90度回転します。" #: help/C/edit.page:53(td/p) msgid "Flip horizontally" msgstr "水平方向の反転" #: help/C/edit.page:55(td/p) msgid "Flip components left to right." msgstr "部品を左右反転します。" #: help/C/edit.page:58(td/p) msgid "Flip vertically" msgstr "垂直方向の反転" #: help/C/edit.page:60(td/p) msgid "Flip components top to bottom." msgstr "部品を上下反転します。" #: help/C/edit.page:65(section/title) msgid "Delete components" msgstr "部品の削除" #: help/C/edit.page:66(section/p) msgid "" "Select components and press Delete or click EditDelete to delete components." msgstr "" "部品を選択して Delete を押すか、 編集削除" " をクリックすることで部品を削除できます。" #: help/C/flipflop-components.page:8(info/desc) msgid "RS-FF, D-FF and other basic flip-flop components" msgstr "RS-FFやD-FFなどの基本的なフリップフロップ素子" #: help/C/flipflop-components.page:14(page/title) msgid "Basic flip-flops" msgstr "基本的なフリップフロップ" #: help/C/flipflop-components.page:16(section/title) msgid "RS flip-flop" msgstr "RSフリップフロップ" #: help/C/flipflop-components.page:18(section/p) msgid "Store input using an RS flip-flop." msgstr "RSフリップフロップにより入力を記憶します。" #: help/C/flipflop-components.page:21(item/title) #: help/C/flipflop-components.page:66(item/title) #: help/C/flipflop-components.page:112(item/title) #: help/C/flipflop-components.page:156(item/title) #: help/C/shiftregister-components.page:66(item/title) msgid "Equivalent circuit:" msgstr "等価回路:" #: help/C/flipflop-components.page:56(note/p) msgid "" "Strictly, the behavior of RS flip-flops is not defined on R=S=1 and the " "situation when it's changed to R=S=0, but this component outputs Q=1 and " "steady." msgstr "" "RSフリップフロップでは本来R=S=1の時の動作、及びそこからR=S=0に切り替わった時" "の出力Qは定義されていませんが、この素子はQ=1で安定します。" #: help/C/flipflop-components.page:61(section/title) msgid "JK flip-flop" msgstr "JKフリップフロップ" #: help/C/flipflop-components.page:63(section/p) msgid "Store input using an edge triggered JK flip-flop." msgstr "エッジトリガー型JKフリップフロップにより入力を記憶します。" #: help/C/flipflop-components.page:87(td/p) #: help/C/flipflop-components.page:131(td/p) #: help/C/flipflop-components.page:174(td/p) #: help/C/shiftregister-components.page:41(td/p) #: help/C/shiftregister-components.page:89(td/p) #: help/C/shiftregister-components.page:135(td/p) #: help/C/shiftregister-components.page:182(td/p) msgid "Trigger type" msgstr "トリガータイプ" #: help/C/flipflop-components.page:88(td/p) #: help/C/flipflop-components.page:132(td/p) #: help/C/flipflop-components.page:175(td/p) #: help/C/shiftregister-components.page:42(td/p) #: help/C/shiftregister-components.page:90(td/p) #: help/C/shiftregister-components.page:136(td/p) #: help/C/shiftregister-components.page:183(td/p) msgid "Type of clock signals. Positive edge (↑) or Negative edge (↓)" msgstr "クロック信号の種類。立ち上がりエッジ(↑)または立ち下がりエッジ(↓)" #: help/C/flipflop-components.page:107(section/title) msgid "D flip-flop" msgstr "Dフリップフロップ" #: help/C/flipflop-components.page:109(section/p) msgid "Store input using a D flip-flop." msgstr "Dフリップフロップにより入力を記憶します。" #: help/C/flipflop-components.page:151(section/title) msgid "T flip-flop" msgstr "Tフリップフロップ" #: help/C/flipflop-components.page:153(section/p) msgid "Toggle output using a T flip-flop." msgstr "Tフリップフロップにより、出力を切り替えます。" #: help/C/index.page:7(info/desc) msgid "Help for gLogic" msgstr "gLogic のヘルプ" #: help/C/index.page:9(info/title) msgctxt "link" msgid "gLogic, Logic circuit simulator" msgstr "gLogic 論理回路シミュレーター" #: help/C/index.page:10(info/title) msgctxt "text" msgid "gLogic, Logic circuit simulator" msgstr "gLogic 論理回路シミュレーター" #: help/C/index.page:16(page/title) msgid "<_:media-1/> gLogic, Logic circuit simulator" msgstr "<_:media-1/> gLogic 論理回路シミュレーター" #: help/C/index.page:18(section/title) msgid "Edit circuit" msgstr "回路の編集" #: help/C/index.page:22(section/title) msgid "Simulate circuit" msgstr "回路のシミュレート" #: help/C/index.page:26(section/title) help/C/saveimage.page:13(page/title) msgid "Save as image" msgstr "画像として保存" #: help/C/index.page:30(section/title) msgid "Logic components" msgstr "論理素子" #: help/C/mil-iec.page:7(info/desc) msgid "" "You can change a type of symbols shown on the circuit from " "EditPreference." msgstr "" "編集設定 から回路図に表示する記号の種" "類を変更できます。" #: help/C/mil-iec.page:13(page/title) msgid "Change symbol type" msgstr "記号の種類の変更" #: help/C/mil-iec.page:15(section/title) #: help/C/simulate.page:49(section/title) msgid "Preference" msgstr "設定" #: help/C/mil-iec.page:16(section/p) msgid "" "To change a type of symbols shown on the circuit, change \"Symbol type\" in " "EditPreference to \"MIL/ANSI\" or " "\"IEC\". This change doesn't affect to behavior of the circuit." msgstr "" "回路図に表示する記号の種類を変更するには、編集設定 の「記号の種類」を「MIL/ANSI」または「IEC」に変更します。この変" "更は回路の動作には影響しません。" #: help/C/other-components.page:8(info/desc) msgid "Switch, probe and others" msgstr "スイッチ、プローブなど" #: help/C/other-components.page:14(page/title) msgid "Other components" msgstr "その他の素子" #: help/C/other-components.page:17(section/title) msgid "Switch" msgstr "スイッチ" #: help/C/other-components.page:19(section/p) msgid "Toggle output voltage level on click." msgstr "クリックにより出力電圧レベルを切り替えます。" #: help/C/other-components.page:25(td/p) help/C/other-components.page:54(td/p) msgid "Initial state" msgstr "初期状態" #: help/C/other-components.page:26(td/p) help/C/other-components.page:55(td/p) msgid "A voltage level on starting simulation" msgstr "シミュレート開始時の電圧レベル" #: help/C/other-components.page:34(section/title) msgid "Oscillator" msgstr "発振器" #: help/C/other-components.page:36(section/p) msgid "Toggle the output voltage level periodically." msgstr "出力する電圧レベルを周期的に切り替えます。" #: help/C/other-components.page:42(td/p) msgid "Period" msgstr "周期" #: help/C/other-components.page:43(td/p) msgid "Periods to toggle H level and L level." msgstr "HレベルとLレベルを入れ替える周期。" #: help/C/other-components.page:46(td/p) #: help/C/shiftregister-components.page:122(td/p) msgid "Shift" msgstr "シフト" #: help/C/other-components.page:47(td/p) msgid "A time to start oscillation" msgstr "発振を開始する時刻" #: help/C/other-components.page:50(td/p) msgid "Duration" msgstr "発振時間" #: help/C/other-components.page:51(td/p) msgid "A duration of oscillation time" msgstr "発振を継続する時間" #: help/C/other-components.page:63(section/title) msgid "Probe" msgstr "プローブ" #: help/C/other-components.page:65(section/p) msgid "Select a graph to show on the timing diagram." msgstr "タイミングチャートに表示するグラフを選択します。" #: help/C/other-components.page:71(td/p) msgid "Name" msgstr "名前" #: help/C/other-components.page:72(td/p) msgid "Probe's name. This name is used for a title of a graph." msgstr "プローブの名前。ここに設定した名前はグラフのタイトルとなります。" #: help/C/other-components.page:80(section/title) #: help/C/other-components.page:88(td/p) msgid "Text" msgstr "テキスト" #: help/C/other-components.page:82(section/p) msgid "View a text on the circuit diagram." msgstr "回路図中にテキストを表示します。" #: help/C/other-components.page:89(td/p) msgid "Text to view" msgstr "表示するテキスト" #: help/C/saveimage.page:7(info/desc) msgid "You can save created circuits and timing diagrams as image files." msgstr "作成した回路やタイミングチャートを画像ファイルに保存できます。" #: help/C/saveimage.page:16(section/title) msgid "Save circuit diagram" msgstr "回路図の保存" #: help/C/saveimage.page:17(section/p) msgid "" "To save the circuit diagram, click FileSave as " "image. If you operate it in the editing mode, nets are shown " "in one color. If you do it in the running mode, you can choose whether or " "not nets are colored." msgstr "" "回路図を保存するには、 ファイル画像として保存 をクリックします。編集画面でこの操作を行った場合、配線は一色で表示さ" "れます。回路の実行画面で保存操作を行った場合は、配線の着色の有無を選択できま" "す。" #: help/C/saveimage.page:21(section/title) msgid "Save timing diagram" msgstr "タイミングチャートの保存" #: help/C/saveimage.page:22(section/p) msgid "" "To save a timing diagram, Click Save diagram on the upper side of " "the timing diagram window." msgstr "" "タイミングチャートを保存するには、タイミングチャートウィンドウ上部の 図" "を保存 をクリックします。" #: help/C/saveimage.page:24(note/p) msgid "There are four formats to save: PNG, PDF, SVG and PS." msgstr "PNG、PDF、SVG、PS の4つのフォーマットで保存できます。" #: help/C/shiftregister-components.page:8(info/desc) msgid "Shift register components composed of flip-flops" msgstr "フリップフロップの組み合わせによるシフトレジスター素子" #: help/C/shiftregister-components.page:14(page/title) msgid "Shift registers" msgstr "シフトレジスター" #: help/C/shiftregister-components.page:17(section/title) msgid "SISO shift register" msgstr "SISOシフトレジスター" #: help/C/shiftregister-components.page:19(section/p) msgid "Serial input and output shift register based on a series of D flip-flop" msgstr "直列Dフリップフロップによるシリアル入出力シフトレジスターです。" #: help/C/shiftregister-components.page:31(item/p) msgid "m: A number of bits of a shift register" msgstr "m: シフトレジスターのビット数" #: help/C/shiftregister-components.page:37(td/p) #: help/C/shiftregister-components.page:85(td/p) #: help/C/shiftregister-components.page:131(td/p) #: help/C/shiftregister-components.page:178(td/p) msgid "Number of bits" msgstr "ビット数" #: help/C/shiftregister-components.page:38(td/p) #: help/C/shiftregister-components.page:86(td/p) #: help/C/shiftregister-components.page:132(td/p) #: help/C/shiftregister-components.page:179(td/p) msgid "A number of steps of D flip-flops contained in a shift register" msgstr "シフトレジスターに含まれるDフリップフロップの段数" #: help/C/shiftregister-components.page:61(section/title) msgid "SIPO shift register" msgstr "SIPOシフトレジスター" #: help/C/shiftregister-components.page:63(section/p) msgid "" "Serial input and paralell output shift register based on a series of D flip-" "flop" msgstr "" "直列Dフリップフロップによるシリアル入力パラレル出力シフトレジスターです。" #: help/C/shiftregister-components.page:109(section/title) msgid "PISO shift register" msgstr "PISOシフトレジスター" #: help/C/shiftregister-components.page:111(section/p) msgid "Paralell input and serial output shift register based on D flip-flop" msgstr "Dフリップフロップによるパラレル入力シリアル出力シフトレジスターです。" #: help/C/shiftregister-components.page:118(td/p) #: help/C/shiftregister-components.page:164(td/p) msgid "Mode" msgstr "モード" #: help/C/shiftregister-components.page:121(td/p) #: help/C/shiftregister-components.page:170(td/p) msgid "Write" msgstr "書き込み" #: help/C/shiftregister-components.page:124(item/p) #: help/C/shiftregister-components.page:172(item/p) msgid "p: A number of bits of a shift register" msgstr "p: シフトレジスターのビット数" #: help/C/shiftregister-components.page:125(item/p) msgid "" "Q{m}S are state variables in components, so they don't have output ports" msgstr "Q{m}S は素子内の状態変数であり、出力端子を持ちません" #: help/C/shiftregister-components.page:155(section/title) msgid "PIPO shift register" msgstr "PIPOシフトレジスター" #: help/C/shiftregister-components.page:157(section/p) msgid "Paralell input and output shift register based on D flip-flop" msgstr "Dフリップフロップによるパラレル入出力シフトレジスターです。" #: help/C/shiftregister-components.page:167(td/p) msgid "Hold" msgstr "保持" #: help/C/shiftregister-components.page:168(td/p) msgid "Shift left" msgstr "左シフト" #: help/C/shiftregister-components.page:169(td/p) msgid "Shift right" msgstr "右シフト" #: help/C/simulate.page:7(info/desc) msgid "" "Click SimulateRun to simulate a " "created circuit." msgstr "" "シミュレート実行 をクリックして作成し" "た回路をシミュレートします。" #: help/C/simulate.page:13(page/title) msgid "Basis of simulation" msgstr "シミュレートの基本" #: help/C/simulate.page:16(section/title) msgid "Run circuit" msgstr "回路の実行" #: help/C/simulate.page:17(section/p) msgid "" "To start the simulation of a created circuit, click SimulateRun or press F5." msgstr "" "作成した回路のシミュレートを開始するには、 シミュレート実行 をクリックするか、F5 を押します。" #: help/C/simulate.page:18(section/p) msgid "" "Before you simulate the circuit, you must care about the following points." msgstr "回路をシミュレートする前に、以下の点に注意しなければなりません。" #: help/C/simulate.page:21(item/p) msgid "" "The circuit won't oscillate at infinite frequency (Propagation delays are " "set properly on an oscillating circuit)" msgstr "" "回路が周波数無限大で振動しないこと (振動する回路で伝播遅延時間などが適切に設" "定されていること)" #: help/C/simulate.page:24(item/p) msgid "Input terminals of components are not open circuit" msgstr "素子の入力端子が開放されていないこと" #: help/C/simulate.page:27(item/p) msgid "Output terminals of components are not short circuit" msgstr "素子の出力端子が短絡されていないこと" #: help/C/simulate.page:33(section/title) msgid "Pause circuit" msgstr "回路の一時停止" #: help/C/simulate.page:34(section/p) msgid "" "When you want to toggle two or more switches at the same time, you can use " "pause mode. To pause the simulation, click SimulatePause or press F6 to toggle to pause mode." msgstr "" "2つ以上のスイッチを同時に切り替えたい時は、一時停止モードが使えます。シミュ" "レーションを一時停止するには、シミュレート一時停止をクリックするか、F6 を押して一時停止モードに切り替え" "ます。" #: help/C/simulate.page:35(section/p) msgid "" "On pause mode, the circuit doesn't work when switches are clicked. You can " "toggle two or more switches on this mode. To restart the simulation, click " "the menu or press F6 to toggle the mode." msgstr "" "一時停止モードでは、スイッチが切り替えられた時に回路は動作しません。このモー" "ドの時に2つ以上のスイッチを切り替えることができます。シミュレーションを再開す" "るには、メニューをクリックするか F6 を押してモードを切り替えます。" #: help/C/simulate.page:39(section/title) msgid "Run convergent circuit" msgstr "収束する回路の実行" #: help/C/simulate.page:40(section/p) msgid "" "If the circuit doesn't oscillate and it converge, you can click switch " "components to show its result immediately." msgstr "" "回路が振動せずに収束する場合、スイッチ素子をクリックすることで、結果を直ちに" "見ることができます。" #: help/C/simulate.page:44(section/title) msgid "Run oscillating circuit" msgstr "振動する回路の実行" #: help/C/simulate.page:45(section/p) msgid "" "If the circuit oscillate, you can run it only if propagation delays are set " "properly. In this case, you can know the behavior of the circuit on the " "timing diagram window. Please refer about the timing " "diagram window." msgstr "" "回路が振動する場合、伝播遅延時間が適切に設定されている場合に限り実行できま" "す。この場合の回路の挙動はタイミングチャートウィンドウから把握できます。タイ" "ミングチャートウィンドウについては を参照してくださ" "い。" #: help/C/simulate.page:50(section/p) msgid "" "You can change settings for simulation from EditPreference." msgstr "" "編集設定 からシミュレート時の設定を変" "更できます。" #: help/C/simulate.page:53(item/title) msgid "Max calc iters" msgstr "最大計算反復回数" #: help/C/simulate.page:54(item/p) msgid "" "Maximum number of iterations of calculations in the system. When the counter " "exceed this value, the simulation will be stopped." msgstr "" "システム内での計算の反復回数の上限値です。反復回数がこの値を超えると、シミュ" "レートを停止します。" #: help/C/simulate.page:57(item/title) msgid "Max calc duration" msgstr "最大計算時間" #: help/C/simulate.page:58(item/p) msgid "" "If accumulated time containing propagation delays exceed this value, " "simulations will be stopped." msgstr "" "伝播遅延時間などの累積時間がこの値を超えると、シミュレートを停止します。" #: help/C/timing.page:8(info/desc) msgid "" "Click RunTiming diagram in the " "running mode to show the timing diagram." msgstr "" "実行モードで 実行タイミングチャート を" "クリックすると、タイミングチャートを表示できます。" #: help/C/timing.page:14(page/title) msgid "Timing diagram" msgstr "タイミングチャート" #: help/C/timing.page:17(section/title) msgid "Put probes" msgstr "プローブの設置" #: help/C/timing.page:18(section/p) msgid "" "The timing diagram shows voltage levels of probes. To add probes on the " "circuit, choose <_:media-1/> on the components window." msgstr "" "タイミングチャートはプローブの電圧レベルを表示します。回路にプローブを追加す" "るには、部品ウィンドウで <_:media-1/> を選択します。" #: help/C/timing.page:19(section/p) msgid "" "You can change \"Name\" properties of each probes to change probe's name. " "This name is shown as graphs' names on the timing diagram." msgstr "" "それぞれのプローブの「名前」プロパティーを変更することで、プローブの名前を変" "更できます。この名前はタイミングチャートのグラフ名として表示されます。" #: help/C/timing.page:23(section/title) msgid "Show timing diagram" msgstr "タイミングチャートの表示" #: help/C/timing.page:24(section/p) msgid "" "To show the timing diagram, click RunTiming diagram or press CtrlT on the " "running mode." msgstr "" "タイミングチャートを表示するには、実行モード中に 実行" "タイミングチャート をクリックするか、CtrlT を押します。" #: help/C/timing.page:28(section/title) msgid "Toggle switches at a specified time" msgstr "指定時刻でのスイッチの切り替え" #: help/C/timing.page:29(section/p) msgid "" "The current time of the circuit is shown as a red line on the timing " "diagram. On the other hand, when you move the mouse cursor on the timing " "diagram, a blue line is shown. To change the current time of the circuit, " "click the specific position or input \"Cursor position\" on the upper side " "of the window manually." msgstr "" "回路の現在の時刻は、タイミングチャート上の赤線で表示されます。一方、タイミン" "グチャート上をマウスカーソルが移動すると、青線が表示されます。回路の現在の時" "刻を変更するには、タイミングチャート上の特定の位置をクリックするか、ウィンド" "ウ上部の「カーソル位置」に手動で入力します。" #: help/C/timing.page:30(section/p) msgid "" "If you click switch components to toggle them, the behavior when you toggled " "at the specified time will be shown." msgstr "" "回路のスイッチ素子をクリックしてスイッチを切り替えると、指定時刻でスイッチを" "切り替えた時の挙動が表示されます。" #: help/C/timing.page:34(section/title) msgid "Adjust timing diagram" msgstr "タイミングチャートの調整" #: help/C/timing.page:35(section/p) msgid "" "You can adjust a position and a scale using buttons on the top of the window." msgstr "" "タイミングチャートの表示位置や倍率は、ウィンドウ上部のボタンで調節できます。" #: help/C/timing.page:37(note/p) msgid "The maximum width of the timing diagram is 5000 pixels." msgstr "タイミングチャートの横幅の上限は 5000 ピクセルです。" #: help/C/viewer-components.page:8(info/desc) msgid "LED and seven-segment display" msgstr "LEDと7セグメントディスプレイ" #: help/C/viewer-components.page:14(page/title) msgid "State viewer components" msgstr "状態表示素子" #: help/C/viewer-components.page:17(section/title) msgid "LED" msgstr "LED" #: help/C/viewer-components.page:19(section/p) msgid "View a voltage level of a net" msgstr "配線の電圧レベルを表示します" #: help/C/viewer-components.page:29(section/title) msgid "Seven-segment display" msgstr "7セグメントディスプレイ" #: help/C/viewer-components.page:31(section/p) msgid "View 4 bit input as a hex" msgstr "4ビットの入力を16進数で表示します。" glogic-2.6/help/ja/add-net.page0000664000175000017500000000473412044454511013254 00000000000000 追加配線 をクリックして配線を追加します。 配線の追加と部品の接続
配線の追加

gLogic では、垂直方向、及び水平方向の配線を追加できます。配線を追加するには:

追加配線 をクリックし、配線モードにします

配線の始点をクリックします

配線の終点をクリックします

何度もクリックすることで、配線の追加を継続できます

右クリックして配線の追加を終了します

更に右クリックして部品選択モードに戻ります

配線モードに切り替えるには、他に次の2つの方法があります:

ツールバーの Net button をクリックする

CtrlE を押す

部品の接続

配線モードにおいて、カーソルは部品の端子や配線にスナップします。端子に配線するには、端子と配線を接触させます。

2つ以上の配線を重ねて配置すると、それらの配線は1つにまとめられます。配線の途中に端子を配置すると、配線は端子部分で分割されます。

配線を密集させる場合

配線を密集して設置する場合、スナップが鬱陶しい場合があります。一時的にスナップ機能を無効化するには、配線モード中に Ctrl を押します。

glogic-2.6/help/ja/ja.stamp0000664000175000017500000000000012044454512012521 00000000000000glogic-2.6/help/ja/edit.page0000664000175000017500000000554112044454512012663 00000000000000 部品選択モードでは、部品の移動や削除ができます。 部品の移動と削除
部品の選択

gLogic を起動すると、まず部品選択モードになります。配線追加モードまたは部品追加モードから部品選択モードに変更するには、数回右クリックします。部品を選択する方法は2つあります:

カーソルを部品の上に移動し、部品の色が変わったらクリックする

画面上でカーソルをドラッグさせ、短形範囲の部品すべてを選択する

選択部品を追加するには、Ctrl を押しながら部品を選択します。部品の選択を一つ解除したい場合は、Ctrl を押しながら部品をクリックします。

すべての部品の選択を解除するには、部品以外の場所をクリックします。

部品の移動

部品を移動するには、選択された部品の上にカーソルを置いてドラッグします。

部品の回転と反転

以下の4つの部品変換方法があります。

メニュー

キー

説明

90度左回転

L

部品を反時計回りに90度回転します。

90度右回転

R

部品を時計回りに90度回転します。

水平方向の反転

H

部品を左右反転します。

垂直方向の反転

V

部品を上下反転します。

部品の削除

部品を選択して Delete を押すか、 編集削除 をクリックすることで部品を削除できます。

glogic-2.6/help/ja/add-component.page0000664000175000017500000000541412044454511014464 00000000000000 追加部品 をクリックして追加する部品を選択します。 部品の追加とプロパティーの編集
部品の追加

部品を追加するには:

追加部品 をクリックし、部品ウィンドウを表示します

追加したい部品をクリックし、部品追加モードにします

カーソルを移動して追加位置を決め、クリックします

連続してクリックすることで、同じ部品を連続して追加できます

右クリックして部品選択モードに戻ります

部品ウィンドウを表示するには、他に次の2つの方法があります:

ツールバーの Component button をクリックする

CtrlA を押す

プロパティーの編集

それぞれの部品にはプロパティーが存在し、プロパティーの値を変更することで部品の挙動を変えられます。プロパティーを修正するには:

数回右クリックして部品選択モードに変更し、更に右クリックしてプロパティーウィンドウを表示します

プロパティーを編集したい部品をクリックして選択します

プロパティーウィンドウで値を変更後、「適用」ボタンを押して設定を反映します

プロパティーウィンドウを表示する方法は他にも2つありますが、上述した方法が最も簡単でしょう。

編集プロパティー をクリックする

CtrlP を押す

glogic-2.6/help/ja/shiftregister-components.page0000664000175000017500000002375412044454512017011 00000000000000 フリップフロップの組み合わせによるシフトレジスター素子 シフトレジスター
SISOシフトレジスター

SISO shift register

直列Dフリップフロップによるシリアル入出力シフトレジスターです。

真理値表:

入力

出力

D

CK

Q

~Q

X

↑(↓)

D(n-m)

~D(n-m)

m: シフトレジスターのビット数

プロパティー:

ビット数

シフトレジスターに含まれるDフリップフロップの段数

トリガータイプ

クロック信号の種類。立ち上がりエッジ(↑)または立ち下がりエッジ(↓)

伝播遅延時間

tPHL

出力がHレベルからLレベルに変化する時の遅延時間

tPLH

出力がLレベルからHレベルに変化する時の遅延時間

SIPOシフトレジスター

SIPO shift register

直列Dフリップフロップによるシリアル入力パラレル出力シフトレジスターです。

等価回路:

SIPO shift register

真理値表:

入力

出力

RST

D

CK

Q0

Q{m}

L

X

↑(↓)

D(n-1)

Q{m-1}(n-1)

H

X

L

L

プロパティー:

ビット数

シフトレジスターに含まれるDフリップフロップの段数

トリガータイプ

クロック信号の種類。立ち上がりエッジ(↑)または立ち下がりエッジ(↓)

伝播遅延時間

tPHL

出力がHレベルからLレベルに変化する時の遅延時間

tPLH

出力がLレベルからHレベルに変化する時の遅延時間

PISOシフトレジスター

PISO shift register

Dフリップフロップによるパラレル入力シリアル出力シフトレジスターです。

真理値表:

モード

入力

出力

W/S

D{m}

CK

Q0S

Q{m}S

Q

~Q

書き込み

L

X

↑(↓)

D0(n-1)

D{m}(n-1)

Q{p-1}S

~Q{p-1}S

シフト

H

Q0S(n-1)

Q{m-1}S(n-1)

p: シフトレジスターのビット数

Q{m}S は素子内の状態変数であり、出力端子を持ちません

プロパティー:

ビット数

シフトレジスターに含まれるDフリップフロップの段数

トリガータイプ

クロック信号の種類。立ち上がりエッジ(↑)または立ち下がりエッジ(↓)

伝播遅延時間

tPHL

出力がHレベルからLレベルに変化する時の遅延時間

tPLH

出力がLレベルからHレベルに変化する時の遅延時間

PIPOシフトレジスター

PIPO shift register

Dフリップフロップによるパラレル入出力シフトレジスターです。

真理値表:

モード

入力

出力

S0

S1

SR

D{m}

SL

CK

Q0

Q{m}

Q{p}

保持

L

L

X

X

X

↑(↓)

Q0(n-1)

Q{m}(n-1)

Q{p}(n-1)

左シフト

L

H

Q1(n-1)

Q{m+1}(n-1)

SL(n-1)

右シフト

H

L

SR(n-1)

Q{m-1}(n-1)

Q{p-1}(n-1)

書き込み

H

H

D0(n-1)

D{m}(n-1)

D{p}(n-1)

p: シフトレジスターのビット数

プロパティー:

ビット数

シフトレジスターに含まれるDフリップフロップの段数

トリガータイプ

クロック信号の種類。立ち上がりエッジ(↑)または立ち下がりエッジ(↓)

伝播遅延時間

tPHL

出力がHレベルからLレベルに変化する時の遅延時間

tPLH

出力がLレベルからHレベルに変化する時の遅延時間

glogic-2.6/help/ja/credit.xml0000664000175000017500000000025712044454511013072 00000000000000 Koichi Akabe vbkaisetsu@gmail.com glogic-2.6/help/ja/legal.xml0000664000175000017500000000050312044454512012677 00000000000000

This work is licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License.

glogic-2.6/help/ja/viewer-components.page0000664000175000017500000000242612044454512015421 00000000000000 LEDと7セグメントディスプレイ 状態表示素子
LED

LED

配線の電圧レベルを表示します

プロパティー:

プロパティーはありません。

7セグメントディスプレイ

Seven-segment display

4ビットの入力を16進数で表示します。

プロパティー:

プロパティーはありません。

glogic-2.6/help/C/0000775000175000017500000000000012044454516010747 500000000000000glogic-2.6/help/C/saveimage.page0000644000175000017500000000215412044335273013464 00000000000000 You can save created circuits and timing diagrams as image files. Save as image
Save circuit diagram

To save the circuit diagram, click FileSave as image. If you operate it in the editing mode, nets are shown in one color. If you do it in the running mode, you can choose whether or not nets are colored.

Save timing diagram

To save a timing diagram, Click Save diagram on the upper side of the timing diagram window.

There are four formats to save: PNG, PDF, SVG and PS.

glogic-2.6/help/C/timing.page0000644000175000017500000000401012044336164013003 00000000000000 Click RunTiming diagram in the running mode to show the timing diagram. Timing diagram
Put probes

The timing diagram shows voltage levels of probes. To add probes on the circuit, choose Probe on the components window.

You can change "Name" properties of each probes to change probe's name. This name is shown as graphs' names on the timing diagram.

Show timing diagram

To show the timing diagram, click RunTiming diagram or press CtrlT on the running mode.

Toggle switches at a specified time

The current time of the circuit is shown as a red line on the timing diagram. On the other hand, when you move the mouse cursor on the timing diagram, a blue line is shown. To change the current time of the circuit, click the specific position or input "Cursor position" on the upper side of the window manually.

If you click switch components to toggle them, the behavior when you toggled at the specified time will be shown.

Adjust timing diagram

You can adjust a position and a scale using buttons on the top of the window.

The maximum width of the timing diagram is 5000 pixels.

glogic-2.6/help/C/basic-components.page0000644000175000017500000002475512036151700014772 00000000000000 NOT, AND, OR and other basic logic components Basic logic components
NOT

NOT

Output NOT of input.

Truth table:

Input

Output

H

L

L

H

Properties:

Input pins

A number of input pins. 2 or 3

Propagation delay

tPHL

Delays when output is changed from H level to L level

tPLH

Delays when output is changed from L level to H level

AND

AND

Outputs AND of input.

Truth table:

Input

Output

L

L

L

L

H

L

H

L

L

H

H

H

Properties:

Input pins

A number of input pins. 2 or 3

Propagation delay

tPHL

Delays when output is changed from H level to L level

tPLH

Delays when output is changed from L level to H level

OR

OR

Outputs OR of input.

Truth table:

Input

Output

L

L

L

L

H

H

H

L

H

H

H

H

Properties:

Input pins

A number of input pins. 2 or 3

Propagation delay

tPHL

Delays when output is changed from H level to L level

tPLH

Delays when output is changed from L level to H level

XOR

XOR

Outputs exclusive OR of input.

Truth table:

Input

Output

L

L

L

L

H

H

H

L

H

H

H

L

Properties:

Input pins

A number of input pins. 2 or 3

Propagation delay

tPHL

Delays when output is changed from H level to L level

tPLH

Delays when output is changed from L level to H level

NAND

NAND

Outputs NOT-AND of input.

Truth table:

Input

Output

L

L

H

L

H

H

H

L

H

H

H

L

Properties:

Input pins

A number of input pins. 2 or 3

Propagation delay

tPHL

Delays when output is changed from H level to L level

tPLH

Delays when output is changed from L level to H level

NOR

NOR

Outputs NOT-OR of input.

Truth table:

Input

Output

L

L

H

L

H

L

H

L

L

H

H

L

Properties:

Input pins

A number of input pins. 2 or 3

Propagation delay

tPHL

Delays when output is changed from H level to L level

tPLH

Delays when output is changed from L level to H level

Vdd

Vdd

Always outputs H level.

Truth table:

Input

Output

H

Properties:

This component has no properties.

GND

GND

Always outputs L level.

Truth table:

Input

Output

L

Properties:

This component has no properties.

glogic-2.6/help/C/simulate.page0000644000175000017500000000531712044336744013356 00000000000000 Click SimulateRun to simulate a created circuit. Basis of simulation
Run circuit

To start the simulation of a created circuit, click SimulateRun or press F5.

Before you simulate the circuit, you must care about the following points.

The circuit won't oscillate at infinite frequency (Propagation delays are set properly on an oscillating circuit)

Input terminals of components are not open circuit

Output terminals of components are not short circuit

Pause circuit

When you want to toggle two or more switches at the same time, you can use pause mode. To pause the simulation, click SimulatePause or press F6 to toggle to pause mode.

On pause mode, the circuit doesn't work when switches are clicked. You can toggle two or more switches on this mode. To restart the simulation, click the menu or press F6 to toggle the mode.

Run convergent circuit

If the circuit doesn't oscillate and it converge, you can click switch components to show its result immediately.

Run oscillating circuit

If the circuit oscillate, you can run it only if propagation delays are set properly. In this case, you can know the behavior of the circuit on the timing diagram window. Please refer about the timing diagram window.

Preference

You can change settings for simulation from EditPreference.

Max calc iters

Maximum number of iterations of calculations in the system. When the counter exceed this value, the simulation will be stopped.

Max calc duration

If accumulated time containing propagation delays exceed this value, simulations will be stopped.

glogic-2.6/help/C/figures/0000775000175000017500000000000012044454516012413 500000000000000glogic-2.6/help/C/figures/components/0000775000175000017500000000000012044454516014600 500000000000000glogic-2.6/help/C/figures/components/counter.png0000644000175000017500000000270412036154267016707 00000000000000PNG  IHDRz\bKGDyIDATx]C?6R*h"I#Bw&"hj Hdy!^x!? MES=6x!}F sb93;ܳ3Or_={g~93󽳠((jj]S;4:eBG  *tg | ˹ %{j0 n1ovggoRa% pQ^ |lǁ+u/@X Qh3y/@X 佔cȳOOA]:n0a< f'W R_k9%S5؞W?&K-hC Oȓgu/@x m y=!ndsZPrKp %~x"~ .!OJ  *t$БBG  *t$БPc5 pgZvx%.Aۍ=lfsWmdr&gl K;7 ohGz3 2A.QI{()_z.Q<61"z2Pz2'3E:THP#A:THP;@SohVx6!-CȦu/@X U #;jy/@X U-^x:~Jg,݇~Rnj4LFk,gT9g tc~4M0Zv&д),bW+c[e<7,bR2 7Tk19 Jb Gmxv˜L c2%ɔ0&S˜L c2%ɔ)?_J!2v:{+g ׬JD_35m8בw;'?pT̿6E^+"QV!UAU/̿Fmprڔ̱3'2L@̿1dʖs }&  h '4IENDB`glogic-2.6/help/C/figures/components/osc.png0000644000175000017500000000041212036154673016007 00000000000000PNG  IHDRH4) ~bKGDIDATh 0Xs{RXn`x).Eښ$#LbL4{dhWZyO8;Wh=*b@@@@@@@`@v>r&+6鷤l;?A)       )_V+ W՗EIt9T=IENDB`glogic-2.6/help/C/figures/components/led.png0000644000175000017500000000100012036154625015756 00000000000000PNG  IHDRH4) ~bKGDIDATh=kAT ^ID?D_R'XDt~cHT\Z 6d{wy`f{rf ˞lTgr[. A BP %A BP %A jt ]_bZ7Lr[7"Nh^|ŵ) -aw T) ȼ\P:Ac.38N-<,733 z 43S/8QXkL{m'ؗt~Tw8YXf̡ү1_o0TAq0{O:J3vD3IoIz5|МqqNh)cn'jKNNXsͯv}e T7  %A BP %A BP`ZCnAQCgJiIENDB`glogic-2.6/help/C/figures/components/text.png0000644000175000017500000000051412036155014016200 00000000000000PNG  IHDR,mbKGDIDATXԱ+Ea.]eel6O?lFd112Z;\, oKt)=O}C"H$2*؇ i! <}<= S,#Zv/&&68n0ڣ41iA=\f '8|wibw߷5YAw^?1k8Y3>*Bľdgu&0tsy:fxxċ:ԫ8xZ&D"O n x |f*2 4EHs% ,lh@O- 4Kcm`~a}}Bޑ.i&gE +\…-|VY__s[2_b,(㲀uSOq߁k`XƁqx,?`;wdOL*zUjSsq@=1N4'ƓF4ZTK"ߴS+hjIENDB`glogic-2.6/help/C/figures/components/adder.png0000644000175000017500000000145712036154310016300 00000000000000PNG  IHDRfHy$bKGDIDATx=kAo4QDD%Q,-PUE^MTQ!ļ@CĽv~8vf@DDD2䩟kESV&_`Q ( N$=x\wvbb0Up.3p9mSbV8LNwa'`v޵π2`Ofw<+-6Q-O 8Vڗ(`=¹\.7>SAcqcC H͗c HiT0/iw"wyRFH;* (c1J`R0F)Q ( ,wƏKŲ~cpI47Uy-LiΖ6g  Y2iSv]TV=-zZ( 1Z0Zk=#1c1J`R0F)Q (c`-A8?C ?_fHK`+0老,1㮻p,V0x9/E ^{+KG p1\173LkGkXQܥwS/5iWSFqYOc3NySfq|Tp 7[Z=O *TI=d/})m f#KS0F)Q ƨa}5LDDDDR`mKIENDB`glogic-2.6/help/C/figures/components/sipo.png0000644000175000017500000000355612036535557016215 00000000000000PNG  IHDRzpdbKGD#IDATx[Ue jO8f3,KCA$2!%(Azz^HTvQ8Ѝzjԇ2;==zwggnk 0 0qJA )JB0),.=EUdt"|GD;lf|1lzZ9w?||v;53մálx 3c}Y13,']45g)TP~3sմá*`+FYF/!oo fiC5i`clA
%bB7$hl ,sk:;u<lQM+LNomL G[껈(ziߐoL`_L`BW"&tE0+ ]L`B7G0 rf-2?x@:p.^6zde``LYr(*ls<\_|SJ%;6%;@>=2es?c|JF|D'G43Wɸ  hˁʳfK0'sɆ!ӑ]1ei ϡ ψ_O0 \G1wϡ<頋QX??|JÄN(4'4 cYWzH4PZس뎳).>rN`9c개>rӥ9&臑7 bg 5  K>qd̀!ڋLRl e pYoaIN5mb7| <ܪ#SI,.FבɈsaV^f{|q;(6g, A!S]\jƔ:MY[:4D+ BO~B6 ؁Ԁ&`{AYF;zݫvox yA$cfAY:}?4a:uCAA01S1FƥX;3r%.YNw-mm:|߉q-6MQE[@?/pQxQ Wøx_B>xނw߫Ilh9ވYf:O#i}f^YnAQT3U4`NKWqukǀ.Ʃ!?y7{B<']e|Z#q :}ekŀnCJ}W=o:uؑ)fn@M /!t!ЅBB]!t!ЅBB]!t!Lgէj>#J$Cg twi#mgn Mv qskvmGKK5 qZktU9mʆΛ~F{r3ֵ'yn`~ogU㫻Kxؒ!nn^xm]c KK'n|+)2t؉;/37>ٌo%W'f܀21U0cЅBB]!t!ЅBB]z26%Zj]Çs2 #9-^rtgx-G9c2I:c^[܏n؀Op f %ijXϛs='Zu9KB&D%6@Q D(z;.xD"(O~YIENDB`glogic-2.6/help/C/figures/components/jkff.png0000644000175000017500000000163612036154171016145 00000000000000PNG  IHDRpH.qbKGDSIDATxOkAU ZփA/*B"<Ig8LZ4 ,-ZԄܗ$H@ϑ#=Gz 9.F:1S{*pCӹӘ6lO3 ]H;@pF0;c[h"o`Es p>{Et4 h3>})uSL^%(*`/M#f^a;kC-pe q3 -[>o[9 ؎pq0c,7^,7Vg)A :' hV } Ĉ֐#=Gz 9s$$`/K6y91lsb,f 0P뀋:'ƂnLk0%k:'ωIۜV;eE RH$&cنs^tNL 91s$L]jB!S,3IENDB`glogic-2.6/help/C/figures/components/piso.png0000644000175000017500000000406112042754766016207 00000000000000PNG  IHDRz+mbKGDIDATx[SNMMKPQHJuMPu)/rxD'҄%'RMqқK hmTߙttfk=Kvrf[33!BQ8HQQT Q.$'}.R&x  ltjҌAG 9oÁ\X3i9FԿ,}&[2#s9x)G%ZZ  T$t:vYL>emYu뮷l'poU0؝#v.4؀`vh{65Hhuƕ}X]ÀB[uϩ9֔%ts;>&j9'54!"=AB{ $'HhOОPeOQvC|ѯ~ļ?>3=vXTFhp^1 | 7G $t17) yo XhR#§X;nǟDn#?FGL8ܩ ̝ \<+t`W1G J(_i HM ف^c? p)08ZX)gPmf]_abg_~fed]hb̻uڿғDz%}?w8,'>CB{ $'HhOО =AB{B; LyM\Zg`aqM. 8 . _P7pTnr1S` CqP>jM1ko+#31AsMӔݴg,q8֜NjIh}&~9qn)ua {:yontH:0j܎=Cor:J!=AB{ $'HhOО = ܇eD(`-m҇Pg qx]r p]Bs^ִ\PVBg#s^i)3W/qkZ*yZH<MkH3L[$Pg,(3X F6 PGgl ~{ n3ОP`LT $'HhOО =AB{ E 0:^fDENe@"}{'²taHN,LtVrsL 췚]Sb \TOC BD2N1Py7y(-:,ۭX MyƦc.̄2?P/Jp>6gh]t@'cWN+Mjq"q 񷕩ЁXsQXMG,)4sܭ- ]afb}p;isǰ9E%n9&t(%Er(G*"=AB{B1B!B ?jUs IENDB`glogic-2.6/help/C/figures/components/nand.png0000644000175000017500000000142212036154105016133 00000000000000PNG  IHDRp4R)1bKGDIDATxۋNQ`LsaL.č"ɍà)INq!$+C)(ܐr0nJX3ֶjk=Z{Q( B!-]sEx[xIS2nlQ9Hڲ" q wAuO,Io˸i$Ko bed-I}-$5r1& ݱDNBbml!01=@%}Ÿ>iҋͱ&Wa.YGTr6`Sl1Qߒm, /jx*WWGQ yV!:n#WQY|`vC؅T›c+!7Z?F͕Tu0p F؆͓S-u0p> }]#Lɩ:8F oG#S{k`pv5ؾ ԈNa۲/SׅQhv7[TƙJv~?),u:V*.& ?>aSr7 /1kZh"bglY Sfa}l!=B2T?sLy%=u$CNNMl-$%r1paGl!WVD֒$)PH!5۱w"~ܥbPMv>1b}b BP(  appxx5IENDB`glogic-2.6/help/C/figures/components/7seg.png0000644000175000017500000000210412036154600016056 00000000000000PNG  IHDRf\>bKGDIDATx흻kA *"(1 h9RQ|4vT؊"""hbH%˹w;sf`!{7nvwEQEQVOq= _Q14b1 [#>*)b*,]*5E'`Y` Ny\N*xǴZؽɇ˼9`Cnw#no,Y;dYYMt<{u߁ "P-b61 Ң~pHA?OFBkof3j,9D[tZNZ}/ w߳W)L#########)bZMD>;AH6_ wOR+7Y&_; f(1"b&&N,dm1m3ROp-cș^`ZuVLyt'81c:0 ,^HYhwοY`O[L;BJSi@EbYZ-S iCG#5LaN}ŝ.Y 'WqG]qbt%N YʂGi#]-~Vn cnOSw(E1oU1d3%ɘ@R_OO/ǐe3,YZ0^)((=BJ5IENDB`glogic-2.6/help/C/figures/components/probe.png0000644000175000017500000000161212036154764016336 00000000000000PNG  IHDRa jbKGD?IDAThME_4*ɚG\5+(jlC$!hE=?y ~/*(zF/~!z IL^vw{fwfwC3]^uz^D"H$Nq6`5gLCfr#{p>~,m\3.pb 7β]' i^̚[znIƥ8f~]~M,S}+v{0Т~m]?5iYk-h!{wW_쪚4{-mϼTlXe>Xf+ }T*.SM8"Xp], kuJ O~i7w2ܗ=?(0.ɞ_"?:߁1E89ÕUcU|=/ DPE~M8W(Z2ێ+lrʫJ_SrL L;SY_T G\=댩rGb`zu;Dt'`g t˱]%r<)pq3dքmQf'"UyGq{ f%"~ùas -ny!ͳ9{l1.pnp7 x<~+֮MZGsN]0:Q?GDHwgʃ"NN1њnƜ{GnvQ.j NyA%zPB\%X>b,¥eĕJtû83|,: .4NM<5j0}x}n.1~GH.t~p^qlSp#֬ncTMTvwz}X9'j{-[:gJl94d6Xj|E Zoொ!T|uXqEB-Y2[SSc"H `%A8"w<(B?N܍#> Tl"h/qSjw-wz^ZeElyjܼs!^2^12ɗ5}O˸7iPL_7VL(58-R:rHC6** 6JՀQ^86 wgΓS^D}mW(>gf}}8yZ{  !gOy~۾0nm+QB֜: q+p5|?0x7bX- \ko8-ڪPAܲ,L{ Kx +[?'ދ?r%b<-SLd\lP ^n#LfړU޿ꆱ9z1 gesj-">f*[X*W|7̉%\q5lqF+(rV𥴐jǨw4֢6PjBXsB֜愀5'9!`駀bY(BluDZ-2֞Et-I'*Ⳗ vj=3ቑl Qwx5{R|ȱpt3 BQ"},(ǔtRp A,^00|y9wϜEQEW: ͗d;~_į/'~8S88UW؍l'O6fL;q,㘏{EÌK~oL*k]xC؃1)kdr ۢ;œW1 7,Ț0b.;Y6m_"Ka k+]9t(K|/:dcx"Kiʑ܇*sT xUYV4]T0*FDWr?u_^īO¶+~ɺe؀opWSw!'vr&>S7(frY}#e7r oR7]\fޮ~ MT`b *lv(0s+~F6,Qa:e9"M) Mݕ,D!qm:-,JbKGDwIDATXKQ񏆂TÈڹt.tS)RhΕnDq \i!DB-7. b|38_ν9s/Apé^@m2,B B B B Kq^ el/D~`xak ¼B B 7%K-N"ZV0TB< ƺŕQ=/|3bwxAJ#mb /;\ Dx[8_\ZAC}qlV7g=k,j)|ɐi|(]j= m fp$6B7Lݲy 9xIENDB`glogic-2.6/help/C/figures/components/sw.png0000644000175000017500000000045412036154562015657 00000000000000PNG  IHDRH4) ~bKGDIDATh[ 1V\;Kh,QԜ} @\A"@ @ $<<3"zz tE%PD X $TތJm;+NvB'@+\:/H @ z5ghXc NqMbOpYuA @ m}'SBC経IENDB`glogic-2.6/help/C/figures/components/pipo.png0000644000175000017500000000503612036535670016201 00000000000000PNG  IHDRzSO7zbKGD IDATxMU6m)`(55HBBP"ļ0.\K7FM#@@[( t T7Xhy';3gޙK&ә9sg̜=B!Do$QDqH* Iv^6 $EB;AB;aB pE>r1স鏓.27o:~7p6]5ـMBg ط#oڥ֚dB_*Pl> <˹e`nj廡+:[NkBn}RnW' ^WO[2u!/k'{e0jtku$ y nzn"{ ujHh'Hh'Hh'Hh'Hh'Hh'Hh'Hh'Hh' I諁g3>{Ow%Nq.%`q}bKFB' k/έC]"Krî%6?H;g݅/bm,{bӻ;׳dpop}:r.tlfs9}: ]a`/vn :Әr{v.a(:<|{> yD\$$$$$$$$$$tVKҦ6 IsvϟوC"g,v %֤ŎٚR{ lPlM X@ƃ=_bHy/U(uHh'Hh'Hh'Hh'Hh'Hh'Hh'Hh'Hh' I&X)clz0ό gcyAB |3&Xqw' 3x1wc3[rcqc"Khg,c#WqDB+Ƹk/E 򌉸Hh'Hh'Hh'Hh'Hh'Hh'Hh'Hh'Hh' I謻ylJI57vnVkObmO57n(m<ھ \[3![8[O57Y̿̄w Ղ -FbTh3==(NJzwB\/S -bx[O\ C˷.*t)K8 ŮM_C5#q1~swbS8WIa5ż* ݺE\$$$$$$$$$R }p: Smω/f:cV1O f71X;<2>Bckz;k0b\ x,&fBgo3 ́أ8pCp0z3B76K\]#τ =!g:bvľ"{F! s tl*tv%~<}߅S^YVULǰbl1Zg8 3 珓]vn^^'zc$u.x 6Ѷ)EEB.P  턔1=B!#{IENDB`glogic-2.6/help/C/figures/tff-equiv.png0000644000175000017500000000217112036202226014734 00000000000000PNG  IHDR>,' bKGD.IDATxMTbEVaS]RvQV ]- Zq!A߁ UQA(ޢ6+P{ hqqn0w$4'sr2"L8'L&/H$I$IJj(|eؽ)J+K+ ;+eJ2R !+eJ2RH? , ;UڑW@R !+eW_c YdO@+1+Ǹ x8<aܶNo7ũ\.u:spKOGG*Gj5ͺRmO`_epf^۬K-Aaܶ.{*{opue+^ nhy~VT:u\]r!9Eo>`:_w5̟bEvյJ$p$¸m6;WB^Sf]jb%>8a̮^~^Wjepk[K%&<ETB9PMnkcp[TK%Շ]2ϳ \)CWʐ2dp \)CWʐ2&G7S3 xxe5c}'j'ATwI( ҟ]bLՙ9]4uqnrvs8|;c7#>gI xikEQBb>zim?+V9n:9C8j5d273ڪvFe}fYJ޶0K҈<1iiE9HRk|ǔL&o/LiZ^}ۣ\.7wwwP(ᎏIӴ/CЍ@*qΧeQRٶM`.$ !Ioa>.:s8Y!\:D"0pzz EQ`vnoqEh4HQd+f2Ch!pѨtBST*Vr< vUnL؇t:}}\R@ p2+׫^7,o!LӔwyyYw7e'o[D`hIENDB`glogic-2.6/help/C/figures/glogic-logo.png0000644000175000017500000000336112035721222015233 00000000000000PNG  IHDR00WbKGD pHYs B(xtIME $:X~IDATh՚oHk?WgulVu´\wPbCz Q,0XzB6vn0Iuse7UQPk33O}ofGѱ;8O<|s=sŰJ0jXT躨k` "a`AfkaaqzzoPhb~~/?P322ۿ piXiYEy%"SSS555ǁb@ ׯ_/ a2;;=x`#P \1y>@rdCCC߿MXnFʶmؽ{7555c4ӺKKKww\@@_Z>::Dϝ;' 211!n[^z%wޕ/ʮ]DnGED_|-EEE$P(m~ VV`0|QN\>|/^( uuu7ڸqcNs#!5l2lQ&ΝzAsrruNƴlfd7B#fx7nX[CBlrIzzzքˏ@ϦXa-Ay\vMV~5g6LH?EQhmm377}}}a ő$ؼ9!!f<~oߞ}U)#)A4Mʕ+9s|H%z^$//ǏstȖ!(uQ(ulMh Q4=) "Eh&`1L$I0Ev={rw||<N/}_c[|(z lc67 \zʴ KNݻ_RRM<(Sskgف⑑Z9`)29:::zСYYYLx,'z%IENDB`glogic-2.6/help/C/figures/sipo-equiv.png0000644000175000017500000000545512036252672015151 00000000000000PNG  IHDR,kTbKGD IDATx[U/ "%j$Ć`iiRMN rQ!bL}7 ICHT˃&$r+x|X{d:gϾ3f?ɄΞ93߬agπ$I$I$I$I$I$I$I$I$-ǁW.D 9`[Wz`]lXn'dQjPnon \[kevw?8> ?Ww %gM x 88poXno?SL嶏о+O4\$%[a;Tɲ>X{z~l>2R2rs 1YO ԥ*rZd7%v^;\hqoOn&!`Un|5̻ffyoԮay8֊&8y~|ϴ:@_aaaaD9 LƧze> 4`_4ppTo|^3ia)N%`}Ψh 1B´k {aNkO]gŰWJܿo.yqff3G~Gẕ?6P['x h.[M5iG0ðxtxo/;I5wp=(y[Y`-*7»'6\['x FB,V=y &ƨo+KY}/p,'\r'˒eyP'l^"ۙ5ML'0,7A}5mP;8g-'|teSY;f}}X^)L[[! ڧ,H2KD嘶 X-MxsK<$I$I$I$I$I2vZ Ђ̴]0vFodni2L\>KH$E$II=;,$)zvX$IRHa$Iѳ"IgE$E$II=;,$)zvX$IRHa$Iѳ"IgE$E$ImQsmЂ.&sKi,vX3IfN<&sKid~%$IgE$E$Iް\oxl"eb-?E&sK> \.otTqqU~*ɪ^53-cs"ނxBSeC4rKZ s swIm:b*7xd^O0kn0KAqnԀprCˬz66UIm:,JT: Ȇ԰ա}_"7\ΣumVImwۑqtxBzfzChug{0wmn3̭6j%p5:pI{$k Wn/wKM34[M>z7Z-'U5Ķ6^) + dni27)];0g ӕvd-M斦IMӵs'|te{sKiRrSLځٕv+ەUW+1ICI=;,$)zvX$IRHa$Iѳ"IgE$E$I 8m PV R.E3zU9`dni27es6S,J“?~mae} )43 dޮdni27)فy0Cx/XN`Cn;:V-ֿxdޮ4DsKܤbm.L.i+[$I$I$I$I$I$I$I$I$I$I$I$I:IENDB`glogic-2.6/help/C/figures/dff-equiv.png0000644000175000017500000001242712036201654014725 00000000000000PNG  IHDRgLbKGDIDATxmWuoL&j"51B E4j.U B35JTe@!zF #TE)&Z741U}1N眽묽s}?ss=j$IZ ' 5_?g7M$IZ ^|:|^$)hg_օH Ϸ(D]4H\xuB$I- Q O~\ֺI9x$ Ik[@$mgg-̌΢|օj>@ySކu%IC^TBԅ$3ہsY\$IA-. .oWȼS&IPAc)GGG_>"_$IJ&Ӡ)۔g)~vK #[M.$)lQ.]:c+'5H$2hKM{3=rm\$IRYePiRdrj&1HTAcK*g$s0hE2 {$ 1hh5Hf&څhR>}xD;^֋_$i"_j]|x x;^֋_$s/D5n'\|w1|<~;(9/z}5L.Z-KM.NerhXCG3Vя_j\Z\$It!:+5я_jU"IL A_z0h5H:Bp9Cھ'.^_ V\:&I0dg^۸/z}5L.5NujrP B ;)hD?~arjkbrѰV5HJA3q/z}5L.Z-z}CL.Z/ZM.ss YױEEEoEEER0. u!K0h 1h5H Ar?ֺ0h0h,5H Ahg'k9J!&&&I9H\-~"' 1h8EdERCI5h 1h0h5HjdIߧ7OY>z}\4,z}5L.Z-rm\$5rl=9o{䑑EuW_nsW۷P:arjkbrc79sEWբ7"ios 9-6&!&I;}Ø+\0h 1Hڡ\9HNqWբW:o~ |2TR=ls y<&O\^j\47'?7u=ls 9E!&0h-~1F(69r܌Eӊ^֋^_  \xMa胆'z3+EEînL;V,x胆'z+6&չRG-GeZzXAC֕E^_ 6sfS*=$WACY֕EDEy\u!'WACוE!&I;)^r}DouerѴ7"i\9E4tÏuZrlSrQ=?\$5ϩoSbo9Mݷ?oWL.p )oYE2+F\99H [Vl"!|NU/Ӻ2Hje}˲L.p )oYE+@\99H [V")|NU/ں2H e}kL.JH8Lft3puV)A4!a}lH$)'II$ )IQ$%I4$IFq$I($IAR$Ilu+Zܺ-S1dSf}w7(,M A?I' 8ki$5F%g\23g5h=˾9HJArٳ_ҸUw}Ӭ8H!$q8h;iV$=$r+(o8My77Yq\/jItY'7P+!}& ӾAooM 9,bIt#MV|ߣ/w;h;iV$DK>.[r 6|'7v}Ӭ8H֋|]t)p?w;h;iV$7%$]v'[j\ l77Y]{L$DΡ=Y'?d篏8ZKXIMܨ|].,|FVqs4176N>.{ {$k9HȖ<I[F5NOm??pa"?irnTN>.{GM{wT2ɾ?-zX'Mʍj'):r;(__A8iPdܟ׋2Qbꟗg^ۺJɩJZ{xn"JX' 9^V Qg4j$[%$/H|9H!}pqor| dK>.Z7:y,6 9^VʳW5cSeH>.rkN~8H!L.օ y'Ecُ2$O~u!#9H5$,]eXoM/C1q$g'k9aOUZ&p qn@$ɒ|J>rC Y'ZIt{SKA'狖~1F(0q$'_O:H֋|]2y,8[࿁WQieOr> :Hn&JItYUX_ R^ϯsMR6^%2ZI>=8'eﲖc7T:?< p!}CZ^nTْOԷVQb$D Dzckg+TP^eL>Q<i|]cS x2S۷t/Du&oN>.{䱩\IYѶ׺B4,sx:$Ǧvfs:k|.^˞|2<7L><6gQ.$3<.^Sɜx2$5yLM-NR>JWʛM{O沞wSK>.{MSSO/^$w'ecjj x"O]s3w*O2_ 全䓇Ar'{m5yL!Ԟ@\n3<7J> kMS@/Y7 ՙzL>Y-cMScOm=ύx&&)@S\`w 6 mfnyn$3dL͜<6K/>| ;NT'И pL67<7|ZfOR^_K-,/> pgMghq p,ƙzqL>Y/z{I//Zg& 1۪ÎڶN IXax涞ArO֋ߞf)/Krm詬}6a涞ArO֋^fAֿG p q-;h;vu|V洞y0dX)ylv~Fyz3ƟnyY )|zmgR7㒑'uZ9%΍K~&K_/o,5]mQ9Mb / 6<7-߬{'RCS>}Dʿ]7gPtl{3SoCe&,hjgmCAI;5wMm2H|"i玻At&,hgmCAI͌ JSs=k"&Hjj "s=k &H v\\p\z6$M>W &H .^pY:x\ϒ$W=p=KCg(׶X\ϒ0]x[l\ϒ$ب'gI$I$I$I$I$I$I$I$I$I$I$I$I$I ?馓EZIENDB`glogic-2.6/help/C/figures/jkff-equiv.png0000644000175000017500000001634012036176770015116 00000000000000PNG  IHDRLrMBbKGDIDATxU0ٕ 0Y7þ0BbG&j8D$bվ2 ]B$q LF aEgp]u0g_ܮMԭI*Cѕ{s@$I$I$I$I*: V+[!IXBi$ubsZ IR,$U`A$ $IXP%I*IRTI*JTTNNP:j$iDjVu/8 (6I0NI*z)[Y |x 8KZh?-Yuګo"?Z1T(No8I}ӂNx`@$u#O 2ւ pr5Z" Z1TπwDRzlR%Z*7-5^*Y$AGF(:jiה/vsT愺x8\%-OʞP_:͇ԳhMeOcC<vRo"7%=Vg)*'|r^]zt;}>\D_oJr.STo4ؿ-I>e>\dYoJR(? h׽:U.zS=$QOLx>ʕGY6vRf֛! g.U*zS`=$y_( 8\7CBKَ | gtZ{\%-_zH'ԃ_'sy(^W |U "n$_h\ok?^Rs}5?j+/C7E(-T(K*iԲ_ܱl=]oCCiprd~'(1E|ԹJ}a-5LqZ~\8&\Yr|">W*0Ì>W*0}ԹJ}a-5Lq1}<=uRzXoK聺r3n}״1u*iB|x- c$kB}rcocǴz?-he}A#BGV.x/#^ٹJJ(~0 AUDZ(c3-;W0~ZEUeJ[@c+Rh| |{0~ZEUeIW?YNU=|QUj7imcY1KUOe ʭ1Dz,c֝|QUj/4 <\Kl'|TUOe r>MݝsspۅLsU/E4px[*v80_@j/Ȭ ~|SAй*)E sUSlHOU ͗kP77[.)QjN՞mR;F%-9$TI*JTU ,$U`A$ $IXP%IamZ IcS]I$IXP%I*IRTI*JTU ,$U`A$;%)5F|sx@kAHXj'F/$ $IXP%I*IRTI*JTU ,$U`$A͟NNP:j$)QZŷ\n~ \ nND_bHsŷ p-iDۋ6~|}EUÍcJS<4 (z|7e3O//Mx`@62~|}EojȔLiP6: xW@e?eHsǷK_viPr3p?o:~j|JYD_r; >~se4kǁہ뀋EIsȼ/4! +"iׁ4|-lj6*ʾQ}"ǗVmCҜ/Yʡʼn+){fk/z|;a}>$͡~p=\(Di['{5Eo"j'ڲ̇R(? h׽t>~VmCߧ|9okQ >R齣_6 l!izX?Pq J}ǷHj8arpC7Csȱm'J'ڲ·Z]Υl ~3ZNXeeB|L>z?Vmc.@ )c b׆UwDj|xrxu>~㛥u'ڲYˀP~C"%J;5%6ڿЂa>|{JӆD';֟>A=!Zvª-|CƱh j +©7,b'b/߬Zvª-|\|x{l#, 5ÂD qvj2ozf[b6$Xdon'z|CU[-p ŢmdI<W?9=!wYOڳLj;ܧb=!zq9S;ZxK/||rb /z|CD'ԯozY** *\Fkp@?~{bP׵v xUԦ%{A=HX8&_ vS?͎BʔP:)/z|CJiqf߇z7=:>eLHZP_@@6>~"C' +)k﷭1"[A |rmcL,Y:a\P 51Pn m&Af ˂&L^PRc5f;o͒UMP驠:B%NJ{{)v m=deAU&|QP[=NOǁہ뀋+oߢ՞UsF:aYPՄ 5/G KNXT5aB%z̘/;aYPՄ 5/0[deAU&|XLUMPqb^KNXT5aB%z/t² j>_, `|UMPqb^K,j„K2_ ˂:C俚2;c;/(pX|iuCS;$Q9$TI*JTU ,$U`A$ $IXP%Iamny1t~&ƶ7Ξ^!_I*JTU 7+pÆmʕG*usozf[b^j=dJ8rw[Wz/x'OS/[Zt?Y=dJ8 '+Nc }Mf7\E9~_޳dUvGN:Dos)񂁯_LuqOOW~ II 1zpx_2-_xzHd,tZP=Nrĺ~4Ɩxe,tZ\Ż}OW/: z睺8E gƘxe,tZ>P>0g!} ?ǭƜx0:=!|Jӆ'D]$ l V-٘/#C'V7 +©79,b'ϲ#Ceg%e|%~'V7;b㬤LXz tZ,ߠUCeg%e|dJf1m3*8+Uw XeS'ΌvkzdJضaŭ{5u%UÎe'=\F {u ;q%UÎe'=R>86ΒAN:/z|߻Eq =Zv҉>~xZrʾ#hI'Eo79ӷ5eYd}"ʭ1DgIK}GкN^7ǀkskv2"t҉>~-K9}rKӝss޻ۅV]QS2ad=Zw-|@)9T XGMm6NPjsugڲ)W}OW/:(JH eO֝yj>PCqf߇z7%ťa)egz(Ҵ$=??I)6Q}a)egڲ +څg)+=|G SuzHS[xAh#%CS[}]u#%CS[1Qk2#%Cc* <\:Hx=u:[oeu)<2ip@uב:Cԙ'|\5}qҴlH!z̓i>Peu ֑:Cԙ'| ցHȲԙ[g"m%:R'^oy"k(܇ )H˞xu6{w[c_uȜx=vi9{)盏PnAxrzwФɼ_bg3O4px+-DvdM<;HĴjgI˸_Sc/v4KsA3!2X y$ eVP#iĘ y$5{A3yEۯ) y$-u?g;-yJ}x8$)DL:IsZ IR,$U`A$ $IXP%I*IRTI*JT5l%IYk$I$I$I$I$I$/8M"~IENDB`glogic-2.6/help/C/figures/add-component.png0000644000175000017500000000047512035721222015564 00000000000000PNG  IHDRw=gAMA a pHYs B(xtIME 7#IDATH1 0;:Kz!"fW g-أwC˴Y]^8< oM8kU:y76ӈ;5j3ZSة:A6~M5*i/[8vPށW%QG>{Cb ޯea ~ :Z|@_Q BE]s̄Ǝc؆q#Fmħ]8:Uǧ񿪸K կc؄ǺbB5?R~_ j*pɆ5QT9zߪXa| /4ٰ]%H]G՛ڮܯrnVÅ|oxtZ꛷3y&׫=gځ?৸Xb|-r/ MD8]]i5ru݅wtQ,𮮃8* ש&oߓS_?s;WYt"Ԑc5G6I~gϺK3gXIH KEMEY$m,j/|j%icQzi'Iԋ$<3߽x`-x`UoQCV?~#0x55v\qϼ֩NSX̩4Ԓ-guRz@}XUTݩ1'>M'B~\+xiq,OU}Sj,>= UI;+f2iciffx11Iڈ$i#hL61Iڈ$i#h̴U4=u[;ѹ4#hL61Iڈ$i#hL61Iڈ$i#hL61Iڈ$i#hL61Iڈ$i#h̴5nɒ3}rИ"I67$i#hL61Iڈ$i#hL61urǞƣxO ?Cx ><F[uvTv\J:<ap*98 [p.ݏ;q>2P?S9[6w~cG_p|cZ9_g&`jJ߅3vZ9 YxnA\׭jtPߩAWEحξת7ִt|cD-5*i/[ٸ-Qk}!^Q KvPWUŰAønܠƈb^xlMqm{Nm/:lxqD4a?uQ5Œ\˙?wIoU0KGK՚U+fh=$^z?Ʈcʴ{|=[w[5aT5G"{9aNi?gq[Ɇ{?{TKe"/Ʒ=&&u7WמzU8qzjkQ^?]MӺcR;7 _U1WM8N`~F5/!|ڈcd^;6[v^onQu?~#-L fq=.=[q9MΩ424guRz`}XUTݩ>XUIn]+xi<֊zbSj,>=UI3_ޘPIENDB`glogic-2.6/help/C/figures/glogic-trail.png0000644000175000017500000000066612035721222015413 00000000000000PNG  IHDRabKGD pHYs B(xtIME   CIDAT8œJ`GO/H˗ "X:E>ɡSCK(t 2DR[jt{߽heY-0>t]_!<4| $8,+ r]8L&4|~<Zl۾lۯ$ITyT*iAR0URT7r]7BNy^4&FR'ҺXVA7h4ve),l5f+o8mz=q|e+v5U)sphv4jJe;]ܔJiK!R]~ao>81jIENDB`glogic-2.6/help/C/index.page0000644000175000017500000000222212036127420012620 00000000000000 Help for gLogic <media type="image" src="figures/glogic-trail.png"/> gLogic, Logic circuit simulator gLogic, Logic circuit simulator <media type="image" src="figures/glogic-logo.png" its:translate="no">gLogic logo</media> gLogic, Logic circuit simulator
Edit circuit
Simulate circuit
Save as image
Logic components
glogic-2.6/help/C/flipflop-components.page0000644000175000017500000001774212036202337015525 00000000000000 RS-FF, D-FF and other basic flip-flop components Basic flip-flops
RS flip-flop

RS flip-flop

Store input using an RS flip-flop.

Equivalent circuit:

RS flip-flop

Truth table:

Input

Output

S

R

Q

~Q

L

L

Q(n-1)

~Q(n-1)

H

L

H

L

L

H

L

H

H

H

L

L

Properties:

Propagation delay

tPHL

Delays when output is changed from H level to L level

tPLH

Delays when output is changed from L level to H level

Strictly, the behavior of RS flip-flops is not defined on R=S=1 and the situation when it's changed to R=S=0, but this component outputs Q=1 and steady.

JK flip-flop

JK flip-flop

Store input using an edge triggered JK flip-flop.

Equivalent circuit:

JK flip-flop

Truth table:

Input

Output

J

K

CK

Q

~Q

L

L

↑(↓)

Q(n-1)

~Q(n-1)

H

L

H

L

L

H

L

H

H

H

~Q(n-1)

Q(n-1)

Properties:

Trigger type

Type of clock signals. Positive edge (↑) or Negative edge (↓)

Propagation delay

tPHL

Delays when output is changed from H level to L level

tPLH

Delays when output is changed from L level to H level

D flip-flop

D flip-flop

Store input using a D flip-flop.

Equivalent circuit:

D flip-flop

Truth table:

Input

Output

D

CK

Q

~Q

H

↑(↓)

H

L

L

L

H

Properties:

Trigger type

Type of clock signals. Positive edge (↑) or Negative edge (↓)

Propagation delay

tPHL

Delays when output is changed from H level to L level

tPLH

Delays when output is changed from L level to H level

T flip-flop

T flip-flop

Toggle output using a T flip-flop.

Equivalent circuit:

T flip-flop

Truth table:

Input

Output

CK

Q

~Q

↑(↓)

~Q(n-1)

Q(n-1)

Properties:

Trigger type

Type of clock signals. Positive edge (↑) or Negative edge (↓)

Propagation delay

tPHL

Delays when output is changed from H level to L level

tPLH

Delays when output is changed from L level to H level

glogic-2.6/help/C/other-components.page0000644000175000017500000000507612036202417015027 00000000000000 Switch, probe and others Other components
Switch

Switch

Toggle output voltage level on click.

Properties:

Initial state

A voltage level on starting simulation

Oscillator

Oscillator

Toggle the output voltage level periodically.

Properties:

Period

Periods to toggle H level and L level.

Shift

A time to start oscillation

Duration

A duration of oscillation time

Initial state

A voltage level on starting simulation

Probe

Probe

Select a graph to show on the timing diagram.

Properties:

Name

Probe's name. This name is used for a title of a graph.

Text

Text

View a text on the circuit diagram.

Properties:

Text

Text to view

glogic-2.6/help/C/mil-iec.page0000644000175000017500000000153012044350533013033 00000000000000 You can change a type of symbols shown on the circuit from EditPreference. Change symbol type
Preference

To change a type of symbols shown on the circuit, change "Symbol type" in EditPreference to "MIL/ANSI" or "IEC". This change doesn't affect to behavior of the circuit.

glogic-2.6/help/C/add-net.page0000644000175000017500000000405312044334770013040 00000000000000 Click AddNet to add nets. Add nets and connect components
Add nets

You can add vertical and horizontal nets on gLogic. To add nets:

Click AddNet to change to net mode

Click the starting point of a net

Click the ending point of a net

You can click more times to continue adding nets

Right click to stop adding nets

One more right click to back to select components mode

There are two other options to change to net mode:

Click Net button on the toolbar

Press CtrlE

Connect components

On net mode, the cursor will be snapped to terminals of components and nets. To connect a net to a terminal, make a terminal and a net touch.

If you put a net on another one, they will be unified. If you put a terminal on a net, it will be split at a terminal.

To mass nets

When you want to mass nets, snapping may annoy you to place nets. To disable snapping temporarily, press Ctrl while you add.

glogic-2.6/help/C/edit.page0000644000175000017500000000504012044331213012433 00000000000000 You can move or delete components on the select components mode. Move and delete components
Select components

When you launch gLogic, it will be first the select components mode. To change to this mode from the net mode or the add components mode, right-click a few times. There are two ways to select components:

Move the cursor on a component and click it when the color is changed.

Drag the cursor on the screen and select all components in the rectangle

To add selected components, select it with pressing Ctrl. If you want to unselect a component, click it with pressing Ctrl.

To unselect all components, click the place outside components.

Move components

To move components, put the cursor on a selected component and drag it.

Rotate and flip components

There are 4 methods to transform components:

Menu

Key

Description

Rotate left 90

L

Rotate components 90 degrees counterclockwise.

Rotate right 90

R

Rotate components 90 degrees clockwise.

Flip horizontally

H

Flip components left to right.

Flip vertically

V

Flip components top to bottom.

Delete components

Select components and press Delete or click EditDelete to delete components.

glogic-2.6/help/C/add-component.page0000644000175000017500000000454312044333565014261 00000000000000 Click AddComponents to choose components you want to add. Add components and edit properties
Add components

To add components:

Click AddComponents to show Components window

Click a component that you want to add, and change to add components mode

Move the cursor and decide the position, then click

You can click a few times to continue adding same components

Right click to back to select components mode

There are two other options to show the components window:

Click Component button on the toolbar

Press CtrlA

Edit properties

Each components have properties, and you can adjust it to change behavior. To modify properties:

Right click a few times to change to select components mode, and do it one more time to show the property window

Click and select a component that you want to change properties

Change values on the property window, and click "Apply" to reflect your settings

There are two other options to show the property window. However, the above one may be the easiest way.

Click EditProperty

Press CtrlP

glogic-2.6/help/C/shiftregister-components.page0000644000175000017500000002263312036253644016576 00000000000000 Shift register components composed of flip-flops Shift registers
SISO shift register

SISO shift register

Serial input and output shift register based on a series of D flip-flop

Truth table:

Input

Output

D

CK

Q

~Q

X

↑(↓)

D(n-m)

~D(n-m)

m: A number of bits of a shift register

Properties:

Number of bits

A number of steps of D flip-flops contained in a shift register

Trigger type

Type of clock signals. Positive edge (↑) or Negative edge (↓)

Propagation delay

tPHL

Delays when output is changed from H level to L level

tPLH

Delays when output is changed from L level to H level

SIPO shift register

SIPO shift register

Serial input and paralell output shift register based on a series of D flip-flop

Equivalent circuit:

SIPO shift register

Truth table:

Input

Output

RST

D

CK

Q0

Q{m}

L

X

↑(↓)

D(n-1)

Q{m-1}(n-1)

H

X

L

L

Properties:

Number of bits

A number of steps of D flip-flops contained in a shift register

Trigger type

Type of clock signals. Positive edge (↑) or Negative edge (↓)

Propagation delay

tPHL

Delays when output is changed from H level to L level

tPLH

Delays when output is changed from L level to H level

PISO shift register

PISO shift register

Paralell input and serial output shift register based on D flip-flop

Truth table:

Mode

Input

Output

W/S

D{m}

CK

Q0S

Q{m}S

Q

~Q

Write

L

X

↑(↓)

D0(n-1)

D{m}(n-1)

Q{p-1}S

~Q{p-1}S

Shift

H

Q0S(n-1)

Q{m-1}S(n-1)

p: A number of bits of a shift register

Q{m}S are state variables in components, so they don't have output ports

Properties:

Number of bits

A number of steps of D flip-flops contained in a shift register

Trigger type

Type of clock signals. Positive edge (↑) or Negative edge (↓)

Propagation delay

tPHL

Delays when output is changed from H level to L level

tPLH

Delays when output is changed from L level to H level

PIPO shift register

PIPO shift register

Paralell input and output shift register based on D flip-flop

Truth table:

Mode

Input

Output

S0

S1

SR

D{m}

SL

CK

Q0

Q{m}

Q{p}

Hold

L

L

X

X

X

↑(↓)

Q0(n-1)

Q{m}(n-1)

Q{p}(n-1)

Shift left

L

H

Q1(n-1)

Q{m+1}(n-1)

SL(n-1)

Shift right

H

L

SR(n-1)

Q{m-1}(n-1)

Q{p-1}(n-1)

Write

H

H

D0(n-1)

D{m}(n-1)

D{p}(n-1)

p: A number of bits of a shift register

Properties:

Number of bits

A number of steps of D flip-flops contained in a shift register

Trigger type

Type of clock signals. Positive edge (↑) or Negative edge (↓)

Propagation delay

tPHL

Delays when output is changed from H level to L level

tPLH

Delays when output is changed from L level to H level

glogic-2.6/help/C/credit.xml0000644000175000017500000000025712035721222012654 00000000000000 Koichi Akabe vbkaisetsu@gmail.com glogic-2.6/help/C/legal.xml0000644000175000017500000000050312035721222012460 00000000000000

This work is licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License.

glogic-2.6/help/C/viewer-components.page0000644000175000017500000000227612036202473015210 00000000000000 LED and seven-segment display State viewer components
LED

LED

View a voltage level of a net

Properties:

This component has no properties.

Seven-segment display

Seven-segment display

View 4 bit input as a hex

Properties:

This component has no properties.

glogic-2.6/help/Makefile.am0000644000175000017500000000253512040151112012522 00000000000000@YELP_HELP_RULES@ HELP_ID = glogic HELP_LINGUAS = ja HELP_FILES = \ add-component.page \ add-net.page \ basic-components.page \ credit.xml \ flipflop-components.page \ index.page \ legal.xml \ mil-iec.page \ edit.page \ other-components.page \ saveimage.page \ shiftregister-components.page \ simulate.page \ timing.page \ viewer-components.page HELP_MEDIA = \ figures/add-component.png \ figures/add-net.png \ figures/glogic-logo.png \ figures/glogic-trail.png \ figures/probe-btn.png \ figures/rsff-equiv.png \ figures/jkff-equiv.png \ figures/dff-equiv.png \ figures/tff-equiv.png \ figures/sipo-equiv.png \ figures/components/7seg.png \ figures/components/adder.png \ figures/components/and.png \ figures/components/counter.png \ figures/components/dff.png \ figures/components/gnd.png \ figures/components/jkff.png \ figures/components/led.png \ figures/components/nand.png \ figures/components/nor.png \ figures/components/not.png \ figures/components/or.png \ figures/components/osc.png \ figures/components/pipo.png \ figures/components/piso.png \ figures/components/probe.png \ figures/components/rsff.png \ figures/components/sipo.png \ figures/components/siso.png \ figures/components/sw.png \ figures/components/text.png \ figures/components/tff.png \ figures/components/vdd.png \ figures/components/xor.png glogic-2.6/help/Makefile.in0000644000175000017500000002746612044406014012555 00000000000000# Makefile.in generated by automake 1.11.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : subdir = help DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/as-ac-expand.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BZRREV = @BZRREV@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIR = @DATADIR@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ HELP_DIR = @HELP_DIR@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ ITSTOOL = @ITSTOOL@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_VERSION = @PYTHON_VERSION@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XMLLINT = @XMLLINT@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ intltool__v_merge_options_ = @intltool__v_merge_options_@ intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ HELP_ID = glogic HELP_LINGUAS = ja HELP_FILES = \ add-component.page \ add-net.page \ basic-components.page \ credit.xml \ flipflop-components.page \ index.page \ legal.xml \ mil-iec.page \ edit.page \ other-components.page \ saveimage.page \ shiftregister-components.page \ simulate.page \ timing.page \ viewer-components.page HELP_MEDIA = \ figures/add-component.png \ figures/add-net.png \ figures/glogic-logo.png \ figures/glogic-trail.png \ figures/probe-btn.png \ figures/rsff-equiv.png \ figures/jkff-equiv.png \ figures/dff-equiv.png \ figures/tff-equiv.png \ figures/sipo-equiv.png \ figures/components/7seg.png \ figures/components/adder.png \ figures/components/and.png \ figures/components/counter.png \ figures/components/dff.png \ figures/components/gnd.png \ figures/components/jkff.png \ figures/components/led.png \ figures/components/nand.png \ figures/components/nor.png \ figures/components/not.png \ figures/components/or.png \ figures/components/osc.png \ figures/components/pipo.png \ figures/components/piso.png \ figures/components/probe.png \ figures/components/rsff.png \ figures/components/sipo.png \ figures/components/siso.png \ figures/components/sw.png \ figures/components/text.png \ figures/components/tff.png \ figures/components/vdd.png \ figures/components/xor.png all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu help/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu help/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic distclean \ distclean-generic distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic pdf pdf-am ps ps-am uninstall uninstall-am @YELP_HELP_RULES@ # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: glogic-2.6/aclocal.m40000644000175000017500000022604712044406013011413 00000000000000# generated automatically by aclocal 1.11.6 -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, # 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, # Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],, [m4_warning([this file was generated for autoconf 2.69. You have another version of autoconf. It may work, but is not guaranteed to. If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically `autoreconf'.])]) # Copyright (C) 1995-2002 Free Software Foundation, Inc. # Copyright (C) 2001-2003,2004 Red Hat, Inc. # # This file is free software, distributed under the terms of the GNU # General Public License. As a special exception to the GNU General # Public License, this file may be distributed as part of a program # that contains a configuration script generated by Autoconf, under # the same distribution terms as the rest of that program. # # This file can be copied and used freely without restrictions. It can # be used in projects which are not available under the GNU Public License # but which still want to provide support for the GNU gettext functionality. # # Macro to add for using GNU gettext. # Ulrich Drepper , 1995, 1996 # # Modified to never use included libintl. # Owen Taylor , 12/15/1998 # # Major rework to remove unused code # Owen Taylor , 12/11/2002 # # Added better handling of ALL_LINGUAS from GNU gettext version # written by Bruno Haible, Owen Taylor 5/30/3002 # # Modified to require ngettext # Matthias Clasen 08/06/2004 # # We need this here as well, since someone might use autoconf-2.5x # to configure GLib then an older version to configure a package # using AM_GLIB_GNU_GETTEXT AC_PREREQ(2.53) dnl dnl We go to great lengths to make sure that aclocal won't dnl try to pull in the installed version of these macros dnl when running aclocal in the glib directory. dnl m4_copy([AC_DEFUN],[glib_DEFUN]) m4_copy([AC_REQUIRE],[glib_REQUIRE]) dnl dnl At the end, if we're not within glib, we'll define the public dnl definitions in terms of our private definitions. dnl # GLIB_LC_MESSAGES #-------------------- glib_DEFUN([GLIB_LC_MESSAGES], [AC_CHECK_HEADERS([locale.h]) if test $ac_cv_header_locale_h = yes; then AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES, [AC_TRY_LINK([#include ], [return LC_MESSAGES], am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)]) if test $am_cv_val_LC_MESSAGES = yes; then AC_DEFINE(HAVE_LC_MESSAGES, 1, [Define if your file defines LC_MESSAGES.]) fi fi]) # GLIB_PATH_PROG_WITH_TEST #---------------------------- dnl GLIB_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR, dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]]) glib_DEFUN([GLIB_PATH_PROG_WITH_TEST], [# Extract the first word of "$2", so it can be a program name with args. set dummy $2; ac_word=[$]2 AC_MSG_CHECKING([for $ac_word]) AC_CACHE_VAL(ac_cv_path_$1, [case "[$]$1" in /*) ac_cv_path_$1="[$]$1" # Let the user override the test with a path. ;; *) IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" for ac_dir in ifelse([$5], , $PATH, [$5]); do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then if [$3]; then ac_cv_path_$1="$ac_dir/$ac_word" break fi fi done IFS="$ac_save_ifs" dnl If no 4th arg is given, leave the cache variable unset, dnl so AC_PATH_PROGS will keep looking. ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4" ])dnl ;; esac])dnl $1="$ac_cv_path_$1" if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then AC_MSG_RESULT([$]$1) else AC_MSG_RESULT(no) fi AC_SUBST($1)dnl ]) # GLIB_WITH_NLS #----------------- glib_DEFUN([GLIB_WITH_NLS], dnl NLS is obligatory [USE_NLS=yes AC_SUBST(USE_NLS) gt_cv_have_gettext=no CATOBJEXT=NONE XGETTEXT=: INTLLIBS= AC_CHECK_HEADER(libintl.h, [gt_cv_func_dgettext_libintl="no" libintl_extra_libs="" # # First check in libc # AC_CACHE_CHECK([for ngettext in libc], gt_cv_func_ngettext_libc, [AC_TRY_LINK([ #include ], [return !ngettext ("","", 1)], gt_cv_func_ngettext_libc=yes, gt_cv_func_ngettext_libc=no) ]) if test "$gt_cv_func_ngettext_libc" = "yes" ; then AC_CACHE_CHECK([for dgettext in libc], gt_cv_func_dgettext_libc, [AC_TRY_LINK([ #include ], [return !dgettext ("","")], gt_cv_func_dgettext_libc=yes, gt_cv_func_dgettext_libc=no) ]) fi if test "$gt_cv_func_ngettext_libc" = "yes" ; then AC_CHECK_FUNCS(bind_textdomain_codeset) fi # # If we don't have everything we want, check in libintl # if test "$gt_cv_func_dgettext_libc" != "yes" \ || test "$gt_cv_func_ngettext_libc" != "yes" \ || test "$ac_cv_func_bind_textdomain_codeset" != "yes" ; then AC_CHECK_LIB(intl, bindtextdomain, [AC_CHECK_LIB(intl, ngettext, [AC_CHECK_LIB(intl, dgettext, gt_cv_func_dgettext_libintl=yes)])]) if test "$gt_cv_func_dgettext_libintl" != "yes" ; then AC_MSG_CHECKING([if -liconv is needed to use gettext]) AC_MSG_RESULT([]) AC_CHECK_LIB(intl, ngettext, [AC_CHECK_LIB(intl, dcgettext, [gt_cv_func_dgettext_libintl=yes libintl_extra_libs=-liconv], :,-liconv)], :,-liconv) fi # # If we found libintl, then check in it for bind_textdomain_codeset(); # we'll prefer libc if neither have bind_textdomain_codeset(), # and both have dgettext and ngettext # if test "$gt_cv_func_dgettext_libintl" = "yes" ; then glib_save_LIBS="$LIBS" LIBS="$LIBS -lintl $libintl_extra_libs" unset ac_cv_func_bind_textdomain_codeset AC_CHECK_FUNCS(bind_textdomain_codeset) LIBS="$glib_save_LIBS" if test "$ac_cv_func_bind_textdomain_codeset" = "yes" ; then gt_cv_func_dgettext_libc=no else if test "$gt_cv_func_dgettext_libc" = "yes" \ && test "$gt_cv_func_ngettext_libc" = "yes"; then gt_cv_func_dgettext_libintl=no fi fi fi fi if test "$gt_cv_func_dgettext_libc" = "yes" \ || test "$gt_cv_func_dgettext_libintl" = "yes"; then gt_cv_have_gettext=yes fi if test "$gt_cv_func_dgettext_libintl" = "yes"; then INTLLIBS="-lintl $libintl_extra_libs" fi if test "$gt_cv_have_gettext" = "yes"; then AC_DEFINE(HAVE_GETTEXT,1, [Define if the GNU gettext() function is already present or preinstalled.]) GLIB_PATH_PROG_WITH_TEST(MSGFMT, msgfmt, [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)dnl if test "$MSGFMT" != "no"; then glib_save_LIBS="$LIBS" LIBS="$LIBS $INTLLIBS" AC_CHECK_FUNCS(dcgettext) MSGFMT_OPTS= AC_MSG_CHECKING([if msgfmt accepts -c]) GLIB_RUN_PROG([$MSGFMT -c -o /dev/null],[ msgid "" msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Project-Id-Version: test 1.0\n" "PO-Revision-Date: 2007-02-15 12:01+0100\n" "Last-Translator: test \n" "Language-Team: C \n" "MIME-Version: 1.0\n" "Content-Transfer-Encoding: 8bit\n" ], [MSGFMT_OPTS=-c; AC_MSG_RESULT([yes])], [AC_MSG_RESULT([no])]) AC_SUBST(MSGFMT_OPTS) AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) GLIB_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :) AC_TRY_LINK(, [extern int _nl_msg_cat_cntr; return _nl_msg_cat_cntr], [CATOBJEXT=.gmo DATADIRNAME=share], [case $host in *-*-solaris*) dnl On Solaris, if bind_textdomain_codeset is in libc, dnl GNU format message catalog is always supported, dnl since both are added to the libc all together. dnl Hence, we'd like to go with DATADIRNAME=share and dnl and CATOBJEXT=.gmo in this case. AC_CHECK_FUNC(bind_textdomain_codeset, [CATOBJEXT=.gmo DATADIRNAME=share], [CATOBJEXT=.mo DATADIRNAME=lib]) ;; *-*-openbsd*) CATOBJEXT=.mo DATADIRNAME=share ;; *) CATOBJEXT=.mo DATADIRNAME=lib ;; esac]) LIBS="$glib_save_LIBS" INSTOBJEXT=.mo else gt_cv_have_gettext=no fi fi ]) if test "$gt_cv_have_gettext" = "yes" ; then AC_DEFINE(ENABLE_NLS, 1, [always defined to indicate that i18n is enabled]) fi dnl Test whether we really found GNU xgettext. if test "$XGETTEXT" != ":"; then dnl If it is not GNU xgettext we define it as : so that the dnl Makefiles still can work. if $XGETTEXT --omit-header /dev/null 2> /dev/null; then : ; else AC_MSG_RESULT( [found xgettext program is not GNU xgettext; ignore it]) XGETTEXT=":" fi fi # We need to process the po/ directory. POSUB=po AC_OUTPUT_COMMANDS( [case "$CONFIG_FILES" in *po/Makefile.in*) sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile esac]) dnl These rules are solely for the distribution goal. While doing this dnl we only have to keep exactly one list of the available catalogs dnl in configure.ac. for lang in $ALL_LINGUAS; do GMOFILES="$GMOFILES $lang.gmo" POFILES="$POFILES $lang.po" done dnl Make all variables we use known to autoconf. AC_SUBST(CATALOGS) AC_SUBST(CATOBJEXT) AC_SUBST(DATADIRNAME) AC_SUBST(GMOFILES) AC_SUBST(INSTOBJEXT) AC_SUBST(INTLLIBS) AC_SUBST(PO_IN_DATADIR_TRUE) AC_SUBST(PO_IN_DATADIR_FALSE) AC_SUBST(POFILES) AC_SUBST(POSUB) ]) # AM_GLIB_GNU_GETTEXT # ------------------- # Do checks necessary for use of gettext. If a suitable implementation # of gettext is found in either in libintl or in the C library, # it will set INTLLIBS to the libraries needed for use of gettext # and AC_DEFINE() HAVE_GETTEXT and ENABLE_NLS. (The shell variable # gt_cv_have_gettext will be set to "yes".) It will also call AC_SUBST() # on various variables needed by the Makefile.in.in installed by # glib-gettextize. dnl glib_DEFUN([GLIB_GNU_GETTEXT], [AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_HEADER_STDC])dnl GLIB_LC_MESSAGES GLIB_WITH_NLS if test "$gt_cv_have_gettext" = "yes"; then if test "x$ALL_LINGUAS" = "x"; then LINGUAS= else AC_MSG_CHECKING(for catalogs to be installed) NEW_LINGUAS= for presentlang in $ALL_LINGUAS; do useit=no if test "%UNSET%" != "${LINGUAS-%UNSET%}"; then desiredlanguages="$LINGUAS" else desiredlanguages="$ALL_LINGUAS" fi for desiredlang in $desiredlanguages; do # Use the presentlang catalog if desiredlang is # a. equal to presentlang, or # b. a variant of presentlang (because in this case, # presentlang can be used as a fallback for messages # which are not translated in the desiredlang catalog). case "$desiredlang" in "$presentlang"*) useit=yes;; esac done if test $useit = yes; then NEW_LINGUAS="$NEW_LINGUAS $presentlang" fi done LINGUAS=$NEW_LINGUAS AC_MSG_RESULT($LINGUAS) fi dnl Construct list of names of catalog files to be constructed. if test -n "$LINGUAS"; then for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done fi fi dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly dnl find the mkinstalldirs script in another subdir but ($top_srcdir). dnl Try to locate is. MKINSTALLDIRS= if test -n "$ac_aux_dir"; then MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" fi if test -z "$MKINSTALLDIRS"; then MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs" fi AC_SUBST(MKINSTALLDIRS) dnl Generate list of files to be processed by xgettext which will dnl be included in po/Makefile. test -d po || mkdir po if test "x$srcdir" != "x."; then if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then posrcprefix="$srcdir/" else posrcprefix="../$srcdir/" fi else posrcprefix="../" fi rm -f po/POTFILES sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \ < $srcdir/po/POTFILES.in > po/POTFILES ]) # AM_GLIB_DEFINE_LOCALEDIR(VARIABLE) # ------------------------------- # Define VARIABLE to the location where catalog files will # be installed by po/Makefile. glib_DEFUN([GLIB_DEFINE_LOCALEDIR], [glib_REQUIRE([GLIB_GNU_GETTEXT])dnl glib_save_prefix="$prefix" glib_save_exec_prefix="$exec_prefix" glib_save_datarootdir="$datarootdir" test "x$prefix" = xNONE && prefix=$ac_default_prefix test "x$exec_prefix" = xNONE && exec_prefix=$prefix datarootdir=`eval echo "${datarootdir}"` if test "x$CATOBJEXT" = "x.mo" ; then localedir=`eval echo "${libdir}/locale"` else localedir=`eval echo "${datadir}/locale"` fi prefix="$glib_save_prefix" exec_prefix="$glib_save_exec_prefix" datarootdir="$glib_save_datarootdir" AC_DEFINE_UNQUOTED($1, "$localedir", [Define the location where the catalogs will be installed]) ]) dnl dnl Now the definitions that aclocal will find dnl ifdef(glib_configure_ac,[],[ AC_DEFUN([AM_GLIB_GNU_GETTEXT],[GLIB_GNU_GETTEXT($@)]) AC_DEFUN([AM_GLIB_DEFINE_LOCALEDIR],[GLIB_DEFINE_LOCALEDIR($@)]) ])dnl # GLIB_RUN_PROG(PROGRAM, TEST-FILE, [ACTION-IF-PASS], [ACTION-IF-FAIL]) # # Create a temporary file with TEST-FILE as its contents and pass the # file name to PROGRAM. Perform ACTION-IF-PASS if PROGRAM exits with # 0 and perform ACTION-IF-FAIL for any other exit status. AC_DEFUN([GLIB_RUN_PROG], [cat >conftest.foo <<_ACEOF $2 _ACEOF if AC_RUN_LOG([$1 conftest.foo]); then m4_ifval([$3], [$3], [:]) m4_ifvaln([$4], [else $4])dnl echo "$as_me: failed input was:" >&AS_MESSAGE_LOG_FD sed 's/^/| /' conftest.foo >&AS_MESSAGE_LOG_FD fi]) dnl IT_PROG_INTLTOOL([MINIMUM-VERSION], [no-xml]) # serial 42 IT_PROG_INTLTOOL AC_DEFUN([IT_PROG_INTLTOOL], [ AC_PREREQ([2.50])dnl AC_REQUIRE([AM_NLS])dnl case "$am__api_version" in 1.[01234]) AC_MSG_ERROR([Automake 1.5 or newer is required to use intltool]) ;; *) ;; esac INTLTOOL_REQUIRED_VERSION_AS_INT=`echo $1 | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` INTLTOOL_APPLIED_VERSION=`intltool-update --version | head -1 | cut -d" " -f3` INTLTOOL_APPLIED_VERSION_AS_INT=`echo $INTLTOOL_APPLIED_VERSION | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` if test -n "$1"; then AC_MSG_CHECKING([for intltool >= $1]) AC_MSG_RESULT([$INTLTOOL_APPLIED_VERSION found]) test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge "$INTLTOOL_REQUIRED_VERSION_AS_INT" || AC_MSG_ERROR([Your intltool is too old. You need intltool $1 or later.]) fi AC_PATH_PROG(INTLTOOL_UPDATE, [intltool-update]) AC_PATH_PROG(INTLTOOL_MERGE, [intltool-merge]) AC_PATH_PROG(INTLTOOL_EXTRACT, [intltool-extract]) if test -z "$INTLTOOL_UPDATE" -o -z "$INTLTOOL_MERGE" -o -z "$INTLTOOL_EXTRACT"; then AC_MSG_ERROR([The intltool scripts were not found. Please install intltool.]) fi if test -z "$AM_DEFAULT_VERBOSITY"; then AM_DEFAULT_VERBOSITY=1 fi AC_SUBST([AM_DEFAULT_VERBOSITY]) INTLTOOL_V_MERGE='$(INTLTOOL__v_MERGE_$(V))' INTLTOOL__v_MERGE_='$(INTLTOOL__v_MERGE_$(AM_DEFAULT_VERBOSITY))' INTLTOOL__v_MERGE_0='@echo " ITMRG " [$]@;' AC_SUBST(INTLTOOL_V_MERGE) AC_SUBST(INTLTOOL__v_MERGE_) AC_SUBST(INTLTOOL__v_MERGE_0) INTLTOOL_V_MERGE_OPTIONS='$(intltool__v_merge_options_$(V))' intltool__v_merge_options_='$(intltool__v_merge_options_$(AM_DEFAULT_VERBOSITY))' intltool__v_merge_options_0='-q' AC_SUBST(INTLTOOL_V_MERGE_OPTIONS) AC_SUBST(intltool__v_merge_options_) AC_SUBST(intltool__v_merge_options_0) INTLTOOL_DESKTOP_RULE='%.desktop: %.desktop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_DIRECTORY_RULE='%.directory: %.directory.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_KEYS_RULE='%.keys: %.keys.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -k -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_PROP_RULE='%.prop: %.prop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_OAF_RULE='%.oaf: %.oaf.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -o -p $(top_srcdir)/po $< [$]@' INTLTOOL_PONG_RULE='%.pong: %.pong.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_SERVER_RULE='%.server: %.server.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -o -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_SHEET_RULE='%.sheet: %.sheet.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_SOUNDLIST_RULE='%.soundlist: %.soundlist.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_UI_RULE='%.ui: %.ui.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_XML_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' if test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge 5000; then INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u --no-translations $< [$]@' else INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; $(INTLTOOL_V_MERGE)_it_tmp_dir=tmp.intltool.[$][$]RANDOM && mkdir [$][$]_it_tmp_dir && LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u [$][$]_it_tmp_dir $< [$]@ && rmdir [$][$]_it_tmp_dir' fi INTLTOOL_XAM_RULE='%.xam: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_KBD_RULE='%.kbd: %.kbd.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -m -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_CAVES_RULE='%.caves: %.caves.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_SCHEMAS_RULE='%.schemas: %.schemas.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -s -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_THEME_RULE='%.theme: %.theme.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_SERVICE_RULE='%.service: %.service.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_POLICY_RULE='%.policy: %.policy.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' _IT_SUBST(INTLTOOL_DESKTOP_RULE) _IT_SUBST(INTLTOOL_DIRECTORY_RULE) _IT_SUBST(INTLTOOL_KEYS_RULE) _IT_SUBST(INTLTOOL_PROP_RULE) _IT_SUBST(INTLTOOL_OAF_RULE) _IT_SUBST(INTLTOOL_PONG_RULE) _IT_SUBST(INTLTOOL_SERVER_RULE) _IT_SUBST(INTLTOOL_SHEET_RULE) _IT_SUBST(INTLTOOL_SOUNDLIST_RULE) _IT_SUBST(INTLTOOL_UI_RULE) _IT_SUBST(INTLTOOL_XAM_RULE) _IT_SUBST(INTLTOOL_KBD_RULE) _IT_SUBST(INTLTOOL_XML_RULE) _IT_SUBST(INTLTOOL_XML_NOMERGE_RULE) _IT_SUBST(INTLTOOL_CAVES_RULE) _IT_SUBST(INTLTOOL_SCHEMAS_RULE) _IT_SUBST(INTLTOOL_THEME_RULE) _IT_SUBST(INTLTOOL_SERVICE_RULE) _IT_SUBST(INTLTOOL_POLICY_RULE) # Check the gettext tools to make sure they are GNU AC_PATH_PROG(XGETTEXT, xgettext) AC_PATH_PROG(MSGMERGE, msgmerge) AC_PATH_PROG(MSGFMT, msgfmt) AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) if test -z "$XGETTEXT" -o -z "$MSGMERGE" -o -z "$MSGFMT"; then AC_MSG_ERROR([GNU gettext tools not found; required for intltool]) fi xgversion="`$XGETTEXT --version|grep '(GNU ' 2> /dev/null`" mmversion="`$MSGMERGE --version|grep '(GNU ' 2> /dev/null`" mfversion="`$MSGFMT --version|grep '(GNU ' 2> /dev/null`" if test -z "$xgversion" -o -z "$mmversion" -o -z "$mfversion"; then AC_MSG_ERROR([GNU gettext tools not found; required for intltool]) fi AC_PATH_PROG(INTLTOOL_PERL, perl) if test -z "$INTLTOOL_PERL"; then AC_MSG_ERROR([perl not found]) fi AC_MSG_CHECKING([for perl >= 5.8.1]) $INTLTOOL_PERL -e "use 5.8.1;" > /dev/null 2>&1 if test $? -ne 0; then AC_MSG_ERROR([perl 5.8.1 is required for intltool]) else IT_PERL_VERSION=`$INTLTOOL_PERL -e "printf '%vd', $^V"` AC_MSG_RESULT([$IT_PERL_VERSION]) fi if test "x$2" != "xno-xml"; then AC_MSG_CHECKING([for XML::Parser]) if `$INTLTOOL_PERL -e "require XML::Parser" 2>/dev/null`; then AC_MSG_RESULT([ok]) else AC_MSG_ERROR([XML::Parser perl module is required for intltool]) fi fi # Substitute ALL_LINGUAS so we can use it in po/Makefile AC_SUBST(ALL_LINGUAS) # Set DATADIRNAME correctly if it is not set yet # (copied from glib-gettext.m4) if test -z "$DATADIRNAME"; then AC_LINK_IFELSE( [AC_LANG_PROGRAM([[]], [[extern int _nl_msg_cat_cntr; return _nl_msg_cat_cntr]])], [DATADIRNAME=share], [case $host in *-*-solaris*) dnl On Solaris, if bind_textdomain_codeset is in libc, dnl GNU format message catalog is always supported, dnl since both are added to the libc all together. dnl Hence, we'd like to go with DATADIRNAME=share dnl in this case. AC_CHECK_FUNC(bind_textdomain_codeset, [DATADIRNAME=share], [DATADIRNAME=lib]) ;; *) [DATADIRNAME=lib] ;; esac]) fi AC_SUBST(DATADIRNAME) IT_PO_SUBDIR([po]) ]) # IT_PO_SUBDIR(DIRNAME) # --------------------- # All po subdirs have to be declared with this macro; the subdir "po" is # declared by IT_PROG_INTLTOOL. # AC_DEFUN([IT_PO_SUBDIR], [AC_PREREQ([2.53])dnl We use ac_top_srcdir inside AC_CONFIG_COMMANDS. dnl dnl The following CONFIG_COMMANDS should be executed at the very end dnl of config.status. AC_CONFIG_COMMANDS_PRE([ AC_CONFIG_COMMANDS([$1/stamp-it], [ if [ ! grep "^# INTLTOOL_MAKEFILE$" "$1/Makefile.in" > /dev/null ]; then AC_MSG_ERROR([$1/Makefile.in.in was not created by intltoolize.]) fi rm -f "$1/stamp-it" "$1/stamp-it.tmp" "$1/POTFILES" "$1/Makefile.tmp" >"$1/stamp-it.tmp" [sed '/^#/d s/^[[].*] *// /^[ ]*$/d '"s|^| $ac_top_srcdir/|" \ "$srcdir/$1/POTFILES.in" | sed '$!s/$/ \\/' >"$1/POTFILES" ] [sed '/^POTFILES =/,/[^\\]$/ { /^POTFILES =/!d r $1/POTFILES } ' "$1/Makefile.in" >"$1/Makefile"] rm -f "$1/Makefile.tmp" mv "$1/stamp-it.tmp" "$1/stamp-it" ]) ])dnl ]) # _IT_SUBST(VARIABLE) # ------------------- # Abstract macro to do either _AM_SUBST_NOTMAKE or AC_SUBST # AC_DEFUN([_IT_SUBST], [ AC_SUBST([$1]) m4_ifdef([_AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE([$1])]) ] ) # deprecated macros AU_ALIAS([AC_PROG_INTLTOOL], [IT_PROG_INTLTOOL]) # A hint is needed for aclocal from Automake <= 1.9.4: # AC_DEFUN([AC_PROG_INTLTOOL], ...) # nls.m4 serial 5 (gettext-0.18) dnl Copyright (C) 1995-2003, 2005-2006, 2008-2010 Free Software Foundation, dnl Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl dnl This file can can be used in projects which are not available under dnl the GNU General Public License or the GNU Library General Public dnl License but which still want to provide support for the GNU gettext dnl functionality. dnl Please note that the actual code of the GNU gettext library is covered dnl by the GNU Library General Public License, and the rest of the GNU dnl gettext package package is covered by the GNU General Public License. dnl They are *not* in the public domain. dnl Authors: dnl Ulrich Drepper , 1995-2000. dnl Bruno Haible , 2000-2003. AC_PREREQ([2.50]) AC_DEFUN([AM_NLS], [ AC_MSG_CHECKING([whether NLS is requested]) dnl Default is enabled NLS AC_ARG_ENABLE([nls], [ --disable-nls do not use Native Language Support], USE_NLS=$enableval, USE_NLS=yes) AC_MSG_RESULT([$USE_NLS]) AC_SUBST([USE_NLS]) ]) AC_DEFUN([YELP_HELP_INIT], [ AC_REQUIRE([AC_PROG_LN_S]) m4_pattern_allow([AM_V_at]) m4_pattern_allow([AM_V_GEN]) m4_pattern_allow([AM_DEFAULT_VERBOSITY]) AC_ARG_WITH([help-dir], AC_HELP_STRING([--with-help-dir=DIR], [path where help files are installed]),, [with_help_dir='${datadir}/help']) HELP_DIR="$with_help_dir" AC_SUBST(HELP_DIR) AC_ARG_VAR([ITSTOOL], [Path to the `itstool` command]) AC_CHECK_PROG([ITSTOOL], [itstool], [itstool]) if test x"$ITSTOOL" = x; then AC_MSG_ERROR([itstool not found]) fi AC_ARG_VAR([XMLLINT], [Path to the `xmllint` command]) AC_CHECK_PROG([XMLLINT], [xmllint], [xmllint]) if test x"$XMLLINT" = x; then AC_MSG_ERROR([xmllint not found]) fi YELP_HELP_RULES=' HELP_ID ?= HELP_POT ?= HELP_FILES ?= HELP_EXTRA ?= HELP_MEDIA ?= HELP_LINGUAS ?= _HELP_LINGUAS = $(if $(filter environment,$(origin LINGUAS)),$(filter $(LINGUAS),$(HELP_LINGUAS)),$(HELP_LINGUAS)) _HELP_POTFILE = $(if $(HELP_POT),$(HELP_POT),$(if $(HELP_ID),$(HELP_ID).pot)) _HELP_POFILES = $(if $(HELP_ID),$(foreach lc,$(_HELP_LINGUAS),$(lc)/$(lc).po)) _HELP_MOFILES = $(patsubst %.po,%.mo,$(_HELP_POFILES)) _HELP_C_FILES = $(foreach f,$(HELP_FILES),C/$(f)) _HELP_C_EXTRA = $(foreach f,$(HELP_EXTRA),C/$(f)) _HELP_C_MEDIA = $(foreach f,$(HELP_MEDIA),C/$(f)) _HELP_LC_FILES = $(foreach lc,$(_HELP_LINGUAS),$(foreach f,$(HELP_FILES),$(lc)/$(f))) _HELP_LC_STAMPS = $(foreach lc,$(_HELP_LINGUAS),$(lc)/$(lc).stamp) _HELP_DEFAULT_V = $(if $(AM_DEFAULT_VERBOSITY),$(AM_DEFAULT_VERBOSITY),1) _HELP_V = $(if $(V),$(V),$(_HELP_DEFAULT_V)) _HELP_LC_VERBOSE = $(_HELP_LC_VERBOSE_$(_HELP_V)) _HELP_LC_VERBOSE_ = $(_HELP_LC_VERBOSE_$(_HELP_DEFAULT_V)) _HELP_LC_VERBOSE_0 = @echo " GEN "$(dir [$]@); all: $(_HELP_C_FILES) $(_HELP_C_EXTRA) $(_HELP_C_MEDIA) $(_HELP_LC_FILES) $(_HELP_POFILES) .PHONY: pot pot: $(_HELP_POTFILE) $(_HELP_POTFILE): $(_HELP_C_FILES) $(_HELP_C_EXTRA) $(_HELP_C_MEDIA) $(AM_V_GEN)$(ITSTOOL) -o "[$]@" $(_HELP_C_FILES) .PHONY: repo repo: $(_HELP_POTFILE) $(AM_V_at)for po in $(_HELP_POFILES); do \ if test "x[$](_HELP_V)" = "x0"; then echo " GEN $${po}"; fi; \ msgmerge -q -o "$${po}" "$${po}" "$(_HELP_POTFILE)"; \ done $(_HELP_POFILES): $(AM_V_at)if ! test -d "$(dir [$]@)"; then mkdir "$(dir [$]@)"; fi $(AM_V_at)if test ! -f "[$]@" -a -f "$(srcdir)/[$]@"; then cp "$(srcdir)/[$]@" "[$]@"; fi $(AM_V_GEN)if ! test -f "[$]@"; then \ (cd "$(dir [$]@)" && \ $(ITSTOOL) -o "$(notdir [$]@).tmp" $(_HELP_C_FILES) && \ mv "$(notdir [$]@).tmp" "$(notdir [$]@)"); \ else \ (cd "$(dir [$]@)" && \ $(ITSTOOL) -o "$(notdir [$]@).tmp" $(_HELP_C_FILES) && \ msgmerge -o "$(notdir [$]@)" "$(notdir [$]@)" "$(notdir [$]@).tmp" && \ rm "$(notdir [$]@).tmp"); \ fi $(_HELP_MOFILES): %.mo: %.po $(AM_V_at)if ! test -d "$(dir [$]@)"; then mkdir "$(dir [$]@)"; fi $(AM_V_GEN)msgfmt -o "[$]@" "$<" $(_HELP_LC_FILES): $(_HELP_LINGUAS) $(_HELP_LINGUAS): $(_HELP_LC_STAMPS) $(_HELP_LC_STAMPS): %.stamp: %.mo $(_HELP_LC_STAMPS): $(_HELP_C_FILES) $(_HELP_C_EXTRA) $(AM_V_at)if ! test -d "$(dir [$]@)"; then mkdir "$(dir [$]@)"; fi $(_HELP_LC_VERBOSE)if test -d "C"; then d="../"; else d="$(abs_srcdir)/"; fi; \ mo="$(dir [$]@)$(patsubst %/$(notdir [$]@),%,[$]@).mo"; \ if test -f "$${mo}"; then mo="../$${mo}"; else mo="$(abs_srcdir)/$${mo}"; fi; \ (cd "$(dir [$]@)" && $(ITSTOOL) -m "$${mo}" $(foreach f,$(_HELP_C_FILES),$${d}/$(f))) && \ touch "[$]@" .PHONY: clean-help mostlyclean-am: $(if $(HELP_ID),clean-help) clean-help: rm -f $(_HELP_LC_FILES) $(_HELP_LC_STAMPS) $(_HELP_MOFILES) EXTRA_DIST ?= EXTRA_DIST += $(_HELP_C_EXTRA) $(_HELP_C_MEDIA) EXTRA_DIST += $(foreach lc,$(HELP_LINGUAS),$(lc)/$(lc).stamp) EXTRA_DIST += $(foreach lc,$(HELP_LINGUAS),$(lc)/$(lc).po) EXTRA_DIST += $(foreach f,$(HELP_MEDIA),$(foreach lc,$(HELP_LINGUAS),$(wildcard $(lc)/$(f)))) distdir: distdir-help-files distdir-help-files: @for lc in C $(HELP_LINGUAS); do \ $(MKDIR_P) "$(distdir)/$$lc"; \ for file in $(HELP_FILES); do \ if test -f "$$lc/$$file"; then d=./; else d=$(srcdir)/; fi; \ cp -p "$$d$$lc/$$file" "$(distdir)/$$lc/" || exit 1; \ done; \ done; \ .PHONY: check-help check: check-help check-help: for lc in C $(_HELP_LINGUAS); do \ if test -d "$$lc"; \ then d=; \ xmlpath="$$lc"; \ else \ d="$(srcdir)/"; \ xmlpath="$$lc:$(srcdir)/$$lc"; \ fi; \ for page in $(HELP_FILES); do \ echo "$(XMLLINT) --noout --noent --path $$xmlpath --xinclude $$d$$lc/$$page"; \ $(XMLLINT) --noout --noent --path "$$xmlpath" --xinclude "$$d$$lc/$$page"; \ done; \ done .PHONY: install-help install-data-am: $(if $(HELP_ID),install-help) install-help: @for lc in C $(_HELP_LINGUAS); do \ $(mkinstalldirs) "$(DESTDIR)$(HELP_DIR)/$$lc/$(HELP_ID)" || exit 1; \ done @for lc in C $(_HELP_LINGUAS); do for f in $(HELP_FILES); do \ if test -f "$$lc/$$f"; then d=; else d="$(srcdir)/"; fi; \ helpdir="$(DESTDIR)$(HELP_DIR)/$$lc/$(HELP_ID)/"; \ if ! test -d "$$helpdir"; then $(mkinstalldirs) "$$helpdir"; fi; \ echo "$(INSTALL_DATA) $$d$$lc/$$f $$helpdir`basename $$f`"; \ $(INSTALL_DATA) "$$d$$lc/$$f" "$$helpdir`basename $$f`" || exit 1; \ done; done @for f in $(_HELP_C_EXTRA); do \ lc=`dirname "$$f"`; lc=`basename "$$lc"`; \ if test -f "$$f"; then d=; else d="$(srcdir)/"; fi; \ helpdir="$(DESTDIR)$(HELP_DIR)/$$lc/$(HELP_ID)/"; \ if ! test -d "$$helpdir"; then $(mkinstalldirs) "$$helpdir"; fi; \ echo "$(INSTALL_DATA) $$d$$f $$helpdir`basename $$f`"; \ $(INSTALL_DATA) "$$d$$f" "$$helpdir`basename $$f`" || exit 1; \ done @for f in $(HELP_MEDIA); do \ for lc in C $(_HELP_LINGUAS); do \ if test -f "$$lc$$f"; then d=; else d="$(srcdir)/"; fi; \ helpdir="$(DESTDIR)$(HELP_DIR)/$$lc/$(HELP_ID)/"; \ mdir=`dirname "$$f"`; \ if test "x$mdir" = "x."; then mdir=""; fi; \ if ! test -d "$$helpdir$$mdir"; then $(mkinstalldirs) "$$helpdir$$mdir"; fi; \ if test -f "$$d$$lc/$$f"; then \ echo "$(INSTALL_DATA) $$d$$lc/$$f $$helpdir$$f"; \ $(INSTALL_DATA) "$$d$$lc/$$f" "$$helpdir$$f" || exit 1; \ elif test "x$$lc" != "xC"; then \ echo "$(LN_S) -f $(HELP_DIR)/C/$(HELP_ID)/$$f $$helpdir$$f"; \ $(LN_S) -f "$(HELP_DIR)/C/$(HELP_ID)/$$f" "$$helpdir$$f" || exit 1; \ fi; \ done; \ done .PHONY: uninstall-help uninstall-am: $(if $(HELP_ID),uninstall-help) uninstall-help: for lc in C $(_HELP_LINGUAS); do for f in $(HELP_FILES); do \ helpdir="$(DESTDIR)$(HELP_DIR)/$$lc/$(HELP_ID)/"; \ echo "rm -f $$helpdir`basename $$f`"; \ rm -f "$$helpdir`basename $$f`"; \ done; done @for f in $(_HELP_C_EXTRA); do \ lc=`dirname "$$f"`; lc=`basename "$$lc"`; \ helpdir="$(DESTDIR)$(HELP_DIR)/$$lc/$(HELP_ID)/"; \ echo "rm -f $$helpdir`basename $$f`"; \ rm -f "$$helpdir`basename $$f`"; \ done @for f in $(HELP_MEDIA); do \ for lc in C $(_HELP_LINGUAS); do \ helpdir="$(DESTDIR)$(HELP_DIR)/$$lc/$(HELP_ID)/"; \ echo "rm -f $$helpdir$$f"; \ rm -f "$$helpdir$$f"; \ done; \ done; ' AC_SUBST([YELP_HELP_RULES]) m4_ifdef([_AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE([YELP_HELP_RULES])]) ]) # Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008, 2011 Free Software # Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 1 # AM_AUTOMAKE_VERSION(VERSION) # ---------------------------- # Automake X.Y traces this macro to ensure aclocal.m4 has been # generated from the m4 files accompanying Automake X.Y. # (This private macro should not be called outside this file.) AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version='1.11' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. m4_if([$1], [1.11.6], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) # _AM_AUTOCONF_VERSION(VERSION) # ----------------------------- # aclocal traces this macro to find the Autoconf version. # This is a private macro too. Using m4_define simplifies # the logic in aclocal, which can simply ignore this definition. m4_define([_AM_AUTOCONF_VERSION], []) # AM_SET_CURRENT_AUTOMAKE_VERSION # ------------------------------- # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], [AM_AUTOMAKE_VERSION([1.11.6])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) # AM_AUX_DIR_EXPAND -*- Autoconf -*- # Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 1 # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets # $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to # `$srcdir', `$srcdir/..', or `$srcdir/../..'. # # Of course, Automake must honor this variable whenever it calls a # tool from the auxiliary directory. The problem is that $srcdir (and # therefore $ac_aux_dir as well) can be either absolute or relative, # depending on how configure is run. This is pretty annoying, since # it makes $ac_aux_dir quite unusable in subdirectories: in the top # source directory, any form will work fine, but in subdirectories a # relative path needs to be adjusted first. # # $ac_aux_dir/missing # fails when called from a subdirectory if $ac_aux_dir is relative # $top_srcdir/$ac_aux_dir/missing # fails if $ac_aux_dir is absolute, # fails when called from a subdirectory in a VPATH build with # a relative $ac_aux_dir # # The reason of the latter failure is that $top_srcdir and $ac_aux_dir # are both prefixed by $srcdir. In an in-source build this is usually # harmless because $srcdir is `.', but things will broke when you # start a VPATH build or use an absolute $srcdir. # # So we could use something similar to $top_srcdir/$ac_aux_dir/missing, # iff we strip the leading $srcdir from $ac_aux_dir. That would be: # am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` # and then we would define $MISSING as # MISSING="\${SHELL} $am_aux_dir/missing" # This will work as long as MISSING is not called from configure, because # unfortunately $(top_srcdir) has no meaning in configure. # However there are other variables, like CC, which are often used in # configure, and could therefore not use this "fixed" $ac_aux_dir. # # Another solution, used here, is to always expand $ac_aux_dir to an # absolute PATH. The drawback is that using absolute paths prevent a # configured tree to be moved without reconfiguration. AC_DEFUN([AM_AUX_DIR_EXPAND], [dnl Rely on autoconf to set up CDPATH properly. AC_PREREQ([2.50])dnl # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` ]) # AM_CONDITIONAL -*- Autoconf -*- # Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 9 # AM_CONDITIONAL(NAME, SHELL-CONDITION) # ------------------------------------- # Define a conditional. AC_DEFUN([AM_CONDITIONAL], [AC_PREREQ(2.52)dnl ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl AC_SUBST([$1_TRUE])dnl AC_SUBST([$1_FALSE])dnl _AM_SUBST_NOTMAKE([$1_TRUE])dnl _AM_SUBST_NOTMAKE([$1_FALSE])dnl m4_define([_AM_COND_VALUE_$1], [$2])dnl if $2; then $1_TRUE= $1_FALSE='#' else $1_TRUE='#' $1_FALSE= fi AC_CONFIG_COMMANDS_PRE( [if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then AC_MSG_ERROR([[conditional "$1" was never defined. Usually this means the macro was only invoked conditionally.]]) fi])]) # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009, # 2010, 2011 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 12 # There are a few dirty hacks below to avoid letting `AC_PROG_CC' be # written in clear, in which case automake, when reading aclocal.m4, # will think it sees a *use*, and therefore will trigger all it's # C support machinery. Also note that it means that autoscan, seeing # CC etc. in the Makefile, will ask for an AC_PROG_CC use... # _AM_DEPENDENCIES(NAME) # ---------------------- # See how the compiler implements dependency checking. # NAME is "CC", "CXX", "GCJ", or "OBJC". # We try a few techniques and use that to set a single cache variable. # # We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was # modified to invoke _AM_DEPENDENCIES(CC); we would have a circular # dependency, and given that the user is not expected to run this macro, # just rely on AC_PROG_CC. AC_DEFUN([_AM_DEPENDENCIES], [AC_REQUIRE([AM_SET_DEPDIR])dnl AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl AC_REQUIRE([AM_MAKE_INCLUDE])dnl AC_REQUIRE([AM_DEP_TRACK])dnl ifelse([$1], CC, [depcc="$CC" am_compiler_list=], [$1], CXX, [depcc="$CXX" am_compiler_list=], [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'], [$1], UPC, [depcc="$UPC" am_compiler_list=], [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'], [depcc="$$1" am_compiler_list=]) AC_CACHE_CHECK([dependency style of $depcc], [am_cv_$1_dependencies_compiler_type], [if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_$1_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` fi am__universal=false m4_case([$1], [CC], [case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac], [CXX], [case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac]) for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvc7 | msvc7msys | msvisualcpp | msvcmsys) # This compiler won't grok `-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_$1_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_$1_dependencies_compiler_type=none fi ]) AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) AM_CONDITIONAL([am__fastdep$1], [ test "x$enable_dependency_tracking" != xno \ && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) ]) # AM_SET_DEPDIR # ------------- # Choose a directory name for dependency files. # This macro is AC_REQUIREd in _AM_DEPENDENCIES AC_DEFUN([AM_SET_DEPDIR], [AC_REQUIRE([AM_SET_LEADING_DOT])dnl AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl ]) # AM_DEP_TRACK # ------------ AC_DEFUN([AM_DEP_TRACK], [AC_ARG_ENABLE(dependency-tracking, [ --disable-dependency-tracking speeds up one-time build --enable-dependency-tracking do not reject slow dependency extractors]) if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' am__nodep='_no' fi AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) AC_SUBST([AMDEPBACKSLASH])dnl _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl AC_SUBST([am__nodep])dnl _AM_SUBST_NOTMAKE([am__nodep])dnl ]) # Generate code to set up dependency tracking. -*- Autoconf -*- # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. #serial 5 # _AM_OUTPUT_DEPENDENCY_COMMANDS # ------------------------------ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], [{ # Autoconf 2.62 quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. case $CONFIG_FILES in *\'*) eval set x "$CONFIG_FILES" ;; *) set x $CONFIG_FILES ;; esac shift for mf do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named `Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # Grep'ing the whole file is not good either: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then dirpart=`AS_DIRNAME("$mf")` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running `make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # When using ansi2knr, U may be empty or an underscore; expand it U=`sed -n 's/^U = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`AS_DIRNAME(["$file"])` AS_MKDIR_P([$dirpart/$fdir]) # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done } ])# _AM_OUTPUT_DEPENDENCY_COMMANDS # AM_OUTPUT_DEPENDENCY_COMMANDS # ----------------------------- # This macro should only be invoked once -- use via AC_REQUIRE. # # This code is only required when automatic dependency tracking # is enabled. FIXME. This creates each `.P' file that we will # need in order to bootstrap the dependency handling code. AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], [AC_CONFIG_COMMANDS([depfiles], [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) ]) # Do all the work for Automake. -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, # 2005, 2006, 2008, 2009 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 16 # This macro actually does too much. Some checks are only needed if # your package does certain things. But this isn't really a big deal. # AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) # AM_INIT_AUTOMAKE([OPTIONS]) # ----------------------------------------------- # The call with PACKAGE and VERSION arguments is the old style # call (pre autoconf-2.50), which is being phased out. PACKAGE # and VERSION should now be passed to AC_INIT and removed from # the call to AM_INIT_AUTOMAKE. # We support both call styles for the transition. After # the next Automake release, Autoconf can make the AC_INIT # arguments mandatory, and then we can depend on a new Autoconf # release and drop the old call support. AC_DEFUN([AM_INIT_AUTOMAKE], [AC_PREREQ([2.62])dnl dnl Autoconf wants to disallow AM_ names. We explicitly allow dnl the ones we care about. m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl AC_REQUIRE([AC_PROG_INSTALL])dnl if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl # test to see if srcdir already configured if test -f $srcdir/config.status; then AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi AC_SUBST([CYGPATH_W]) # Define the identity of the package. dnl Distinguish between old-style and new-style calls. m4_ifval([$2], [m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl AC_SUBST([PACKAGE], [$1])dnl AC_SUBST([VERSION], [$2])], [_AM_SET_OPTIONS([$1])dnl dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,, [m4_fatal([AC_INIT should be called with package and version arguments])])dnl AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl _AM_IF_OPTION([no-define],, [AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl # Some tools Automake needs. AC_REQUIRE([AM_SANITY_CHECK])dnl AC_REQUIRE([AC_ARG_PROGRAM])dnl AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}) AM_MISSING_PROG(AUTOCONF, autoconf) AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}) AM_MISSING_PROG(AUTOHEADER, autoheader) AM_MISSING_PROG(MAKEINFO, makeinfo) AC_REQUIRE([AM_PROG_INSTALL_SH])dnl AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl AC_REQUIRE([AM_PROG_MKDIR_P])dnl # We need awk for the "check" target. The system "awk" is bad on # some platforms. AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([AC_PROG_MAKE_SET])dnl AC_REQUIRE([AM_SET_LEADING_DOT])dnl _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], [_AM_PROG_TAR([v7])])]) _AM_IF_OPTION([no-dependencies],, [AC_PROVIDE_IFELSE([AC_PROG_CC], [_AM_DEPENDENCIES(CC)], [define([AC_PROG_CC], defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl AC_PROVIDE_IFELSE([AC_PROG_CXX], [_AM_DEPENDENCIES(CXX)], [define([AC_PROG_CXX], defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl AC_PROVIDE_IFELSE([AC_PROG_OBJC], [_AM_DEPENDENCIES(OBJC)], [define([AC_PROG_OBJC], defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl ]) _AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl dnl The `parallel-tests' driver may need to know about EXEEXT, so add the dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This macro dnl is hooked onto _AC_COMPILER_EXEEXT early, see below. AC_CONFIG_COMMANDS_PRE(dnl [m4_provide_if([_AM_COMPILER_EXEEXT], [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl ]) dnl Hook into `_AC_COMPILER_EXEEXT' early to learn its expansion. Do not dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further dnl mangled by Autoconf and run in a shell conditional statement. m4_define([_AC_COMPILER_EXEEXT], m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) # When config.status generates a header, we must update the stamp-h file. # This file resides in the same directory as the config header # that is generated. The stamp files are numbered to have different names. # Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the # loop where config.status creates the headers, so we can generate # our stamp files there. AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], [# Compute $1's index in $config_headers. _am_arg=$1 _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $_am_arg | $_am_arg:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) # Copyright (C) 2001, 2003, 2005, 2008, 2011 Free Software Foundation, # Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 1 # AM_PROG_INSTALL_SH # ------------------ # Define $install_sh. AC_DEFUN([AM_PROG_INSTALL_SH], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl if test x"${install_sh}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; *) install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi AC_SUBST(install_sh)]) # Copyright (C) 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 2 # Check whether the underlying file-system supports filenames # with a leading dot. For instance MS-DOS doesn't. AC_DEFUN([AM_SET_LEADING_DOT], [rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null AC_SUBST([am__leading_dot])]) # Check to see how 'make' treats includes. -*- Autoconf -*- # Copyright (C) 2001, 2002, 2003, 2005, 2009 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 4 # AM_MAKE_INCLUDE() # ----------------- # Check to see how make treats includes. AC_DEFUN([AM_MAKE_INCLUDE], [am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo this is the am__doit target .PHONY: am__doit END # If we don't find an include directive, just comment out the code. AC_MSG_CHECKING([for style of include used by $am_make]) am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # Ignore all kinds of additional output from `make'. case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=include am__quote= _am_result=GNU ;; esac # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=.include am__quote="\"" _am_result=BSD ;; esac fi AC_SUBST([am__include]) AC_SUBST([am__quote]) AC_MSG_RESULT([$_am_result]) rm -f confinc confmf ]) # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- # Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 6 # AM_MISSING_PROG(NAME, PROGRAM) # ------------------------------ AC_DEFUN([AM_MISSING_PROG], [AC_REQUIRE([AM_MISSING_HAS_RUN]) $1=${$1-"${am_missing_run}$2"} AC_SUBST($1)]) # AM_MISSING_HAS_RUN # ------------------ # Define MISSING if not defined so far and test if it supports --run. # If it does, set am_missing_run to use it, otherwise, to nothing. AC_DEFUN([AM_MISSING_HAS_RUN], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([missing])dnl if test x"${MISSING+set}" != xset; then case $am_aux_dir in *\ * | *\ *) MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; *) MISSING="\${SHELL} $am_aux_dir/missing" ;; esac fi # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= AC_MSG_WARN([`missing' script is too old or missing]) fi ]) # Copyright (C) 2003, 2004, 2005, 2006, 2011 Free Software Foundation, # Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 1 # AM_PROG_MKDIR_P # --------------- # Check for `mkdir -p'. AC_DEFUN([AM_PROG_MKDIR_P], [AC_PREREQ([2.60])dnl AC_REQUIRE([AC_PROG_MKDIR_P])dnl dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P, dnl while keeping a definition of mkdir_p for backward compatibility. dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile. dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of dnl Makefile.ins that do not define MKDIR_P, so we do our own dnl adjustment using top_builddir (which is defined more often than dnl MKDIR_P). AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl case $mkdir_p in [[\\/$]]* | ?:[[\\/]]*) ;; */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; esac ]) # Helper functions for option handling. -*- Autoconf -*- # Copyright (C) 2001, 2002, 2003, 2005, 2008, 2010 Free Software # Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 5 # _AM_MANGLE_OPTION(NAME) # ----------------------- AC_DEFUN([_AM_MANGLE_OPTION], [[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) # _AM_SET_OPTION(NAME) # -------------------- # Set option NAME. Presently that only means defining a flag for this option. AC_DEFUN([_AM_SET_OPTION], [m4_define(_AM_MANGLE_OPTION([$1]), 1)]) # _AM_SET_OPTIONS(OPTIONS) # ------------------------ # OPTIONS is a space-separated list of Automake options. AC_DEFUN([_AM_SET_OPTIONS], [m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) # _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) # ------------------------------------------- # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008, 2009, # 2011 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 2 # AM_PATH_PYTHON([MINIMUM-VERSION], [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) # --------------------------------------------------------------------------- # Adds support for distributing Python modules and packages. To # install modules, copy them to $(pythondir), using the python_PYTHON # automake variable. To install a package with the same name as the # automake package, install to $(pkgpythondir), or use the # pkgpython_PYTHON automake variable. # # The variables $(pyexecdir) and $(pkgpyexecdir) are provided as # locations to install python extension modules (shared libraries). # Another macro is required to find the appropriate flags to compile # extension modules. # # If your package is configured with a different prefix to python, # users will have to add the install directory to the PYTHONPATH # environment variable, or create a .pth file (see the python # documentation for details). # # If the MINIMUM-VERSION argument is passed, AM_PATH_PYTHON will # cause an error if the version of python installed on the system # doesn't meet the requirement. MINIMUM-VERSION should consist of # numbers and dots only. AC_DEFUN([AM_PATH_PYTHON], [ dnl Find a Python interpreter. Python versions prior to 2.0 are not dnl supported. (2.0 was released on October 16, 2000). m4_define_default([_AM_PYTHON_INTERPRETER_LIST], [python python2 python3 python3.2 python3.1 python3.0 python2.7 dnl python2.6 python2.5 python2.4 python2.3 python2.2 python2.1 python2.0]) AC_ARG_VAR([PYTHON], [the Python interpreter]) m4_if([$1],[],[ dnl No version check is needed. # Find any Python interpreter. if test -z "$PYTHON"; then AC_PATH_PROGS([PYTHON], _AM_PYTHON_INTERPRETER_LIST, :) fi am_display_PYTHON=python ], [ dnl A version check is needed. if test -n "$PYTHON"; then # If the user set $PYTHON, use it and don't search something else. AC_MSG_CHECKING([whether $PYTHON version >= $1]) AM_PYTHON_CHECK_VERSION([$PYTHON], [$1], [AC_MSG_RESULT(yes)], [AC_MSG_ERROR(too old)]) am_display_PYTHON=$PYTHON else # Otherwise, try each interpreter until we find one that satisfies # VERSION. AC_CACHE_CHECK([for a Python interpreter with version >= $1], [am_cv_pathless_PYTHON],[ for am_cv_pathless_PYTHON in _AM_PYTHON_INTERPRETER_LIST none; do test "$am_cv_pathless_PYTHON" = none && break AM_PYTHON_CHECK_VERSION([$am_cv_pathless_PYTHON], [$1], [break]) done]) # Set $PYTHON to the absolute path of $am_cv_pathless_PYTHON. if test "$am_cv_pathless_PYTHON" = none; then PYTHON=: else AC_PATH_PROG([PYTHON], [$am_cv_pathless_PYTHON]) fi am_display_PYTHON=$am_cv_pathless_PYTHON fi ]) if test "$PYTHON" = :; then dnl Run any user-specified action, or abort. m4_default([$3], [AC_MSG_ERROR([no suitable Python interpreter found])]) else dnl Query Python for its version number. Getting [:3] seems to be dnl the best way to do this; it's what "site.py" does in the standard dnl library. AC_CACHE_CHECK([for $am_display_PYTHON version], [am_cv_python_version], [am_cv_python_version=`$PYTHON -c "import sys; sys.stdout.write(sys.version[[:3]])"`]) AC_SUBST([PYTHON_VERSION], [$am_cv_python_version]) dnl Use the values of $prefix and $exec_prefix for the corresponding dnl values of PYTHON_PREFIX and PYTHON_EXEC_PREFIX. These are made dnl distinct variables so they can be overridden if need be. However, dnl general consensus is that you shouldn't need this ability. AC_SUBST([PYTHON_PREFIX], ['${prefix}']) AC_SUBST([PYTHON_EXEC_PREFIX], ['${exec_prefix}']) dnl At times (like when building shared libraries) you may want dnl to know which OS platform Python thinks this is. AC_CACHE_CHECK([for $am_display_PYTHON platform], [am_cv_python_platform], [am_cv_python_platform=`$PYTHON -c "import sys; sys.stdout.write(sys.platform)"`]) AC_SUBST([PYTHON_PLATFORM], [$am_cv_python_platform]) dnl Set up 4 directories: dnl pythondir -- where to install python scripts. This is the dnl site-packages directory, not the python standard library dnl directory like in previous automake betas. This behavior dnl is more consistent with lispdir.m4 for example. dnl Query distutils for this directory. AC_CACHE_CHECK([for $am_display_PYTHON script directory], [am_cv_python_pythondir], [if test "x$prefix" = xNONE then am_py_prefix=$ac_default_prefix else am_py_prefix=$prefix fi am_cv_python_pythondir=`$PYTHON -c "import sys; from distutils import sysconfig; sys.stdout.write(sysconfig.get_python_lib(0,0,prefix='$am_py_prefix'))" 2>/dev/null` case $am_cv_python_pythondir in $am_py_prefix*) am__strip_prefix=`echo "$am_py_prefix" | sed 's|.|.|g'` am_cv_python_pythondir=`echo "$am_cv_python_pythondir" | sed "s,^$am__strip_prefix,$PYTHON_PREFIX,"` ;; *) case $am_py_prefix in /usr|/System*) ;; *) am_cv_python_pythondir=$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages ;; esac ;; esac ]) AC_SUBST([pythondir], [$am_cv_python_pythondir]) dnl pkgpythondir -- $PACKAGE directory under pythondir. Was dnl PYTHON_SITE_PACKAGE in previous betas, but this naming is dnl more consistent with the rest of automake. AC_SUBST([pkgpythondir], [\${pythondir}/$PACKAGE]) dnl pyexecdir -- directory for installing python extension modules dnl (shared libraries) dnl Query distutils for this directory. AC_CACHE_CHECK([for $am_display_PYTHON extension module directory], [am_cv_python_pyexecdir], [if test "x$exec_prefix" = xNONE then am_py_exec_prefix=$am_py_prefix else am_py_exec_prefix=$exec_prefix fi am_cv_python_pyexecdir=`$PYTHON -c "import sys; from distutils import sysconfig; sys.stdout.write(sysconfig.get_python_lib(1,0,prefix='$am_py_exec_prefix'))" 2>/dev/null` case $am_cv_python_pyexecdir in $am_py_exec_prefix*) am__strip_prefix=`echo "$am_py_exec_prefix" | sed 's|.|.|g'` am_cv_python_pyexecdir=`echo "$am_cv_python_pyexecdir" | sed "s,^$am__strip_prefix,$PYTHON_EXEC_PREFIX,"` ;; *) case $am_py_exec_prefix in /usr|/System*) ;; *) am_cv_python_pyexecdir=$PYTHON_EXEC_PREFIX/lib/python$PYTHON_VERSION/site-packages ;; esac ;; esac ]) AC_SUBST([pyexecdir], [$am_cv_python_pyexecdir]) dnl pkgpyexecdir -- $(pyexecdir)/$(PACKAGE) AC_SUBST([pkgpyexecdir], [\${pyexecdir}/$PACKAGE]) dnl Run any user-specified action. $2 fi ]) # AM_PYTHON_CHECK_VERSION(PROG, VERSION, [ACTION-IF-TRUE], [ACTION-IF-FALSE]) # --------------------------------------------------------------------------- # Run ACTION-IF-TRUE if the Python interpreter PROG has version >= VERSION. # Run ACTION-IF-FALSE otherwise. # This test uses sys.hexversion instead of the string equivalent (first # word of sys.version), in order to cope with versions such as 2.2c1. # This supports Python 2.0 or higher. (2.0 was released on October 16, 2000). AC_DEFUN([AM_PYTHON_CHECK_VERSION], [prog="import sys # split strings by '.' and convert to numeric. Append some zeros # because we need at least 4 digits for the hex conversion. # map returns an iterator in Python 3.0 and a list in 2.x minver = list(map(int, '$2'.split('.'))) + [[0, 0, 0]] minverhex = 0 # xrange is not present in Python 3.0 and range returns an iterator for i in list(range(0, 4)): minverhex = (minverhex << 8) + minver[[i]] sys.exit(sys.hexversion < minverhex)" AS_IF([AM_RUN_LOG([$1 -c "$prog"])], [$3], [$4])]) # Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 1 # AM_RUN_LOG(COMMAND) # ------------------- # Run COMMAND, save the exit status in ac_status, and log it. # (This has been adapted from Autoconf's _AC_RUN_LOG macro.) AC_DEFUN([AM_RUN_LOG], [{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD (exit $ac_status); }]) # Check to make sure that the build environment is sane. -*- Autoconf -*- # Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 5 # AM_SANITY_CHECK # --------------- AC_DEFUN([AM_SANITY_CHECK], [AC_MSG_CHECKING([whether build environment is sane]) # Just in case sleep 1 echo timestamp > conftest.file # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[[\\\"\#\$\&\'\`$am_lf]]*) AC_MSG_ERROR([unsafe absolute working directory name]);; esac case $srcdir in *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);; esac # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` if test "$[*]" = "X"; then # -L didn't work. set X `ls -t "$srcdir/configure" conftest.file` fi rm -f conftest.file if test "$[*]" != "X $srcdir/configure conftest.file" \ && test "$[*]" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken alias in your environment]) fi test "$[2]" = conftest.file ) then # Ok. : else AC_MSG_ERROR([newly created file is older than distributed files! Check your system clock]) fi AC_MSG_RESULT(yes)]) # Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 1 # AM_PROG_INSTALL_STRIP # --------------------- # One issue with vendor `install' (even GNU) is that you can't # specify the program used to strip binaries. This is especially # annoying in cross-compiling environments, where the build's strip # is unlikely to handle the host's binaries. # Fortunately install-sh will honor a STRIPPROG variable, so we # always use install-sh in `make install-strip', and initialize # STRIPPROG with the value of the STRIP variable (set by the user). AC_DEFUN([AM_PROG_INSTALL_STRIP], [AC_REQUIRE([AM_PROG_INSTALL_SH])dnl # Installed binaries are usually stripped using `strip' when the user # run `make install-strip'. However `strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the `STRIP' environment variable to overrule this program. dnl Don't test for $cross_compiling = yes, because it might be `maybe'. if test "$cross_compiling" != no; then AC_CHECK_TOOL([STRIP], [strip], :) fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) # Copyright (C) 2006, 2008, 2010 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 3 # _AM_SUBST_NOTMAKE(VARIABLE) # --------------------------- # Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. # This macro is traced by Automake. AC_DEFUN([_AM_SUBST_NOTMAKE]) # AM_SUBST_NOTMAKE(VARIABLE) # -------------------------- # Public sister of _AM_SUBST_NOTMAKE. AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) # Check how to create a tarball. -*- Autoconf -*- # Copyright (C) 2004, 2005, 2012 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 2 # _AM_PROG_TAR(FORMAT) # -------------------- # Check how to create a tarball in format FORMAT. # FORMAT should be one of `v7', `ustar', or `pax'. # # Substitute a variable $(am__tar) that is a command # writing to stdout a FORMAT-tarball containing the directory # $tardir. # tardir=directory && $(am__tar) > result.tar # # Substitute a variable $(am__untar) that extract such # a tarball read from stdin. # $(am__untar) < result.tar AC_DEFUN([_AM_PROG_TAR], [# Always define AMTAR for backward compatibility. Yes, it's still used # in the wild :-( We should find a proper way to deprecate it ... AC_SUBST([AMTAR], ['$${TAR-tar}']) m4_if([$1], [v7], [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'], [m4_case([$1], [ustar],, [pax],, [m4_fatal([Unknown tar format])]) AC_MSG_CHECKING([how to create a $1 tar archive]) # Loop over all known methods to create a tar archive until one works. _am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' _am_tools=${am_cv_prog_tar_$1-$_am_tools} # Do not fold the above two line into one, because Tru64 sh and # Solaris sh will not grok spaces in the rhs of `-'. for _am_tool in $_am_tools do case $_am_tool in gnutar) for _am_tar in tar gnutar gtar; do AM_RUN_LOG([$_am_tar --version]) && break done am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' am__untar="$_am_tar -xf -" ;; plaintar) # Must skip GNU tar: if it does not support --format= it doesn't create # ustar tarball either. (tar --version) >/dev/null 2>&1 && continue am__tar='tar chf - "$$tardir"' am__tar_='tar chf - "$tardir"' am__untar='tar xf -' ;; pax) am__tar='pax -L -x $1 -w "$$tardir"' am__tar_='pax -L -x $1 -w "$tardir"' am__untar='pax -r' ;; cpio) am__tar='find "$$tardir" -print | cpio -o -H $1 -L' am__tar_='find "$tardir" -print | cpio -o -H $1 -L' am__untar='cpio -i -H $1 -d' ;; none) am__tar=false am__tar_=false am__untar=false ;; esac # If the value was cached, stop now. We just wanted to have am__tar # and am__untar set. test -n "${am_cv_prog_tar_$1}" && break # tar/untar a dummy directory, and stop if the command works rm -rf conftest.dir mkdir conftest.dir echo GrepMe > conftest.dir/file AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) rm -rf conftest.dir if test -s conftest.tar; then AM_RUN_LOG([$am__untar /dev/null 2>&1 && break fi done rm -rf conftest.dir AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) AC_MSG_RESULT([$am_cv_prog_tar_$1])]) AC_SUBST([am__tar]) AC_SUBST([am__untar]) ]) # _AM_PROG_TAR m4_include([m4/as-ac-expand.m4]) glogic-2.6/ChangeLog0000664000175000017500000002162212044454516011332 00000000000000# Generated by Makefile. Do not edit. 2012-11-01 Koichi Akabe release version 2.6 2012-11-01 Koichi Akabe update help and translation template 2012-10-31 Koichi Akabe add bzr revno to the about dialog 2012-10-31 Koichi Akabe update translation template 2012-10-31 Koichi Akabe apply matrix to picked components rename: "swap" to "flip" 2012-10-30 Koichi Akabe add version information to glc format 2012-10-28 Koichi Akabe fix matrix calcuration 2012-10-28 Koichi Akabe update image exporter to support matrix 2012-10-28 Koichi Akabe update NEWS and help 2012-10-27 Koichi Akabe update translation template 2012-10-27 Koichi Akabe support rotation and mirroring 2012-10-27 Koichi Akabe support middle button drag support Python 2.6 or later 2012-10-26 Koichi Akabe add a new script to Makefile.am 2012-10-19 Koichi Akabe update translation template update NEWS 2012-10-19 Koichi Akabe support copy and paste 2012-10-17 Koichi Akabe initialize output of flip-flops fix bugs on drawing functions split components_to_string and string_to_components from save/open functions 2012-10-14 Koichi Akabe add component names to shift registers update Makefile.in 2012-10-13 Koichi Akabe add equivalent circuit of SIPO shift register for documentation fix documentation to replace probe button's image update NEWS and TODO 2012-10-13 Koichi Akabe add new image files to a makefile 2012-10-13 Koichi Akabe update translation templates 2012-10-13 Koichi Akabe update help files 2012-10-13 Koichi Akabe support triple input for basic components 2012-10-12 Koichi Akabe add a documentation update NEWS 2012-10-12 Koichi Akabe add help for the pause mode 2012-10-12 Koichi Akabe add English documentation for C locale 2012-10-08 Koichi Akabe add help contents (Japanese) 2012-10-10 Koichi Akabe add a pause button to keep the state when components are clicked 2012-10-08 Koichi Akabe add SR and SL ports to PIPO shift register 2012-10-06 Koichi Akabe update translation template update NEWS 2012-10-06 Koichi Akabe add new components: SIPO, PISO, PIPO shift registers 2012-10-05 Koichi Akabe add a new component: Adder 2012-10-04 Koichi Akabe add a new component: SISO shift register 2012-10-04 Koichi Akabe rename "Counter" to "Mod-N counter" add "Number of bits" property to Mod-N counter to change the number of output ports 2012-10-03 Koichi Akabe split drawComponent functions for animation remove DummyComponent 2012-10-03 Koichi Akabe use signals instead of "parent" in some classes 2012-10-03 Koichi Akabe release version 2.5.1 change the name from "timing chart" to "timing diagram" 2012-10-02 Koichi Akabe release version 2.5 update Japanese translation 2012-10-01 Koichi Akabe update translation template remove unnecessary button 2012-10-01 Koichi Akabe add a cursor position spin to the top of the timing chart window 2012-09-30 Koichi Akabe fix behavior of unit combo boxes on the timing chat window 2012-09-30 Koichi Akabe fix bihavior of the cursor on the timing chart update NEWS 2012-09-30 Koichi Akabe add cursor to timing chart to toggle switches at specified time add initial state property for oscillator and switch update translation template update examples for new property 2012-09-28 Koichi Akabe move essential attributes to BaseComponent 2012-09-27 Koichi Akabe update NEWS 2012-09-27 Koichi Akabe prohibit moving components to out of range get cursor position on button press 2012-09-25 Koichi Akabe fix to break analysis when output port is short circuit 2012-08-13 Koichi Akabe fix incomplete change 2012-08-13 Koichi Akabe update NEWS 2012-08-13 Koichi Akabe force direction of nets started at a pin of a component 2012-07-04 Koichi Akabe disable highlight while components are picked 2012-07-03 Koichi Akabe add max calc iters and max calc duration preferences 2012-06-18 Koichi Akabe fix behaviour on drawing area bump to 2.3 2012-06-18 Koichi Akabe fix behaviour of oscillator fix property window of oscillator 2012-06-17 Koichi Akabe add duration property for oscillator update example logic circuit update translation 2012-06-17 Koichi Akabe code cleanup remove unused variable fix behaviour on activate property 2012-06-17 Koichi Akabe fix bihavior on ctrl key is pressed 2012-06-17 Koichi Akabe code cleanup 2012-06-14 Koichi Akabe fix font name fix drawing chart 2012-06-11 Koichi Akabe change default font to FreeMono 12pt 2012-05-27 Koichi Akabe fix drawing on AND and NAND components 2012-05-24 Koichi Akabe update NEWS and INSTALL bump to 2.2 2012-05-24 Koichi Akabe fix behaviour on toggle net button update translation 2012-05-16 Koichi Akabe fix OR symbol on running mode fix translation 2012-05-16 Koichi Akabe add preference for symbols (MIL/ANSI, IEC) 2012-05-12 Koichi Akabe fix to apply color settings to nets on components 2012-05-12 Koichi Akabe add Preferences window 2012-05-12 Koichi Akabe add Preferences.py to Makefile.am 2012-05-12 Koichi Akabe add POTFILES.skip 2012-05-10 Koichi Akabe manage fonts and colors in Preference class (for Preferences window) add value checking for Probe component 2012-05-10 Koichi Akabe replace install instruction with the default one remove non-required files 2012-05-08 Koichi Akabe update TODO bump to 2.1 2012-05-08 Koichi Akabe change to use variables to get cursor positions add dist-hook to create ChangeLog automatically 2012-05-05 Koichi Akabe fix behavior on schematics area 2012-05-04 Koichi Akabe add tooltips for component window add components' names on property window 2012-05-03 Koichi Akabe show dialog when timing chart will be too wide 2012-05-03 Koichi Akabe add "Save chart" button for timing chart update text layout on components 2012-05-03 Koichi Akabe add "Save as image" menu for schematics 2012-05-02 Koichi Akabe add new example: ocillators.glc add property's names on glc file to identify each properties (therefore it can't read old files) 2012-05-02 Koichi Akabe fix drawing graduation with wrong space change a message from "high frequency" to "infinite frequency" 2012-05-01 Koichi Akabe fix a bug on loading and saving files change to depend on Python3 on autotools update translation 2012-04-30 Koichi Akabe fix minor bugs 2012-04-30 Koichi Akabe add graduation for timing chart 2012-04-30 Koichi Akabe add options to scale, to set drawing range and to redraw chart remove translation for units fix minor bugs cleanup codes 2012-04-27 Koichi Akabe manage delays in seconds and changed unit from "ns" to "µs" remove excutable bit update auto tools 2012-04-27 Koichi Akabe fix OR, XOR, NOR components on draw terminals use activate signal to apply properties change website's locations 2012-04-26 Koichi Akabe initial commit (ported from wxlogic) glogic-2.6/COPYING0000644000175000017500000010451412031005333010574 00000000000000 GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The GNU General Public License is a free, copyleft license for software and other kinds of works. The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users. We, the Free Software Foundation, use the GNU General Public License for most of our software; it applies also to any other work released this way by its authors. You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things. To protect your rights, we need to prevent others from denying you these rights or asking you to surrender the rights. Therefore, you have certain responsibilities if you distribute copies of the software, or if you modify it: responsibilities to respect the freedom of others. For example, if you distribute copies of such a program, whether gratis or for a fee, you must pass on to the recipients the same freedoms that you received. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. Developers that use the GNU GPL protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License giving you legal permission to copy, distribute and/or modify it. For the developers' and authors' protection, the GPL clearly explains that there is no warranty for this free software. For both users' and authors' sake, the GPL requires that modified versions be marked as changed, so that their problems will not be attributed erroneously to authors of previous versions. Some devices are designed to deny users access to install or run modified versions of the software inside them, although the manufacturer can do so. This is fundamentally incompatible with the aim of protecting users' freedom to change the software. The systematic pattern of such abuse occurs in the area of products for individuals to use, which is precisely where it is most unacceptable. Therefore, we have designed this version of the GPL to prohibit the practice for those products. If such problems arise substantially in other domains, we stand ready to extend this provision to those domains in future versions of the GPL, as needed to protect the freedom of users. Finally, every program is threatened constantly by software patents. States should not allow patents to restrict development and use of software on general-purpose computers, but in those that do, we wish to avoid the special danger that patents applied to a free program could make it effectively proprietary. To prevent this, the GPL assures that patents cannot be used to render the program non-free. The precise terms and conditions for copying, distribution and modification follow. TERMS AND CONDITIONS 0. Definitions. "This License" refers to version 3 of the GNU General Public License. "Copyright" also means copyright-like laws that apply to other kinds of works, such as semiconductor masks. "The Program" refers to any copyrightable work licensed under this License. Each licensee is addressed as "you". "Licensees" and "recipients" may be individuals or organizations. To "modify" a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a "modified version" of the earlier work or a work "based on" the earlier work. A "covered work" means either the unmodified Program or a work based on the Program. To "propagate" a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well. To "convey" a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying. An interactive user interface displays "Appropriate Legal Notices" to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion. 1. Source Code. The "source code" for a work means the preferred form of the work for making modifications to it. "Object code" means any non-source form of a work. A "Standard Interface" means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language. The "System Libraries" of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A "Major Component", in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it. The "Corresponding Source" for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work. The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source. The Corresponding Source for a work in source code form is that same work. 2. Basic Permissions. All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law. You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you. Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary. 3. Protecting Users' Legal Rights From Anti-Circumvention Law. No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures. When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures. 4. Conveying Verbatim Copies. You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program. You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee. 5. Conveying Modified Source Versions. You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions: a) The work must carry prominent notices stating that you modified it, and giving a relevant date. b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to "keep intact all notices". c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it. d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so. A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an "aggregate" if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate. 6. Conveying Non-Source Forms. You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways: a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange. b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge. c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b. d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements. e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d. A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work. A "User Product" is either (1) a "consumer product", which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, "normally used" refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product. "Installation Information" for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made. If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM). The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network. Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying. 7. Additional Terms. "Additional permissions" are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions. When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission. Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms: a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or d) Limiting the use for publicity purposes of names of licensors or authors of the material; or e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors. All other non-permissive additional terms are considered "further restrictions" within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying. If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms. Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way. 8. Termination. You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11). However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation. Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice. Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10. 9. Acceptance Not Required for Having Copies. You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so. 10. Automatic Licensing of Downstream Recipients. Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License. An "entity transaction" is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts. You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it. 11. Patents. A "contributor" is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's "contributor version". A contributor's "essential patent claims" are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, "control" includes the right to grant patent sublicenses in a manner consistent with the requirements of this License. Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version. In the following three paragraphs, a "patent license" is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To "grant" such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party. If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients. "Knowingly relying" means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid. If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it. A patent license is "discriminatory" if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007. Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law. 12. No Surrender of Others' Freedom. If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program. 13. Use with the GNU Affero General Public License. Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU Affero General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the special requirements of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such. 14. Revised Versions of this License. The Free Software Foundation may publish revised and/or new versions of the GNU General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU General Public License, you may choose any version ever published by the Free Software Foundation. If the Program specifies that a proxy can decide which future versions of the GNU General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program. Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version. 15. Disclaimer of Warranty. THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. Limitation of Liability. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 17. Interpretation of Sections 15 and 16. If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . Also add information on how to contact you by electronic and paper mail. If the program does terminal interaction, make it output a short notice like this when it starts in an interactive mode: Copyright (C) This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, your program's commands might be different; for a GUI interface, you would use an "about box". You should also get your employer (if you work as a programmer) or school, if any, to sign a "copyright disclaimer" for the program, if necessary. For more information on this, and how to apply and follow the GNU GPL, see . The GNU General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. But first, please read . glogic-2.6/missing0000755000175000017500000002415212034477762011165 00000000000000#! /bin/sh # Common stub for a few missing GNU programs while installing. scriptversion=2012-01-06.13; # UTC # Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006, # 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. # Originally by Fran,cois Pinard , 1996. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. if test $# -eq 0; then echo 1>&2 "Try \`$0 --help' for more information" exit 1 fi run=: sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p' sed_minuso='s/.* -o \([^ ]*\).*/\1/p' # In the cases where this matters, `missing' is being run in the # srcdir already. if test -f configure.ac; then configure_ac=configure.ac else configure_ac=configure.in fi msg="missing on your system" case $1 in --run) # Try to run requested program, and just exit if it succeeds. run= shift "$@" && exit 0 # Exit code 63 means version mismatch. This often happens # when the user try to use an ancient version of a tool on # a file that requires a minimum version. In this case we # we should proceed has if the program had been absent, or # if --run hadn't been passed. if test $? = 63; then run=: msg="probably too old" fi ;; -h|--h|--he|--hel|--help) echo "\ $0 [OPTION]... PROGRAM [ARGUMENT]... Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an error status if there is no known handling for PROGRAM. Options: -h, --help display this help and exit -v, --version output version information and exit --run try to run the given command, and emulate it if it fails Supported PROGRAM values: aclocal touch file \`aclocal.m4' autoconf touch file \`configure' autoheader touch file \`config.h.in' autom4te touch the output file, or create a stub one automake touch all \`Makefile.in' files bison create \`y.tab.[ch]', if possible, from existing .[ch] flex create \`lex.yy.c', if possible, from existing .c help2man touch the output file lex create \`lex.yy.c', if possible, from existing .c makeinfo touch the output file yacc create \`y.tab.[ch]', if possible, from existing .[ch] Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and \`g' are ignored when checking the name. Send bug reports to ." exit $? ;; -v|--v|--ve|--ver|--vers|--versi|--versio|--version) echo "missing $scriptversion (GNU Automake)" exit $? ;; -*) echo 1>&2 "$0: Unknown \`$1' option" echo 1>&2 "Try \`$0 --help' for more information" exit 1 ;; esac # normalize program name to check for. program=`echo "$1" | sed ' s/^gnu-//; t s/^gnu//; t s/^g//; t'` # Now exit if we have it, but it failed. Also exit now if we # don't have it and --version was passed (most likely to detect # the program). This is about non-GNU programs, so use $1 not # $program. case $1 in lex*|yacc*) # Not GNU programs, they don't have --version. ;; *) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then # Could not run --version or --help. This is probably someone # running `$TOOL --version' or `$TOOL --help' to check whether # $TOOL exists and not knowing $TOOL uses missing. exit 1 fi ;; esac # If it does not exist, or fails to run (possibly an outdated version), # try to emulate it. case $program in aclocal*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." touch aclocal.m4 ;; autoconf*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." touch configure ;; autoheader*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acconfig.h' or \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` test -z "$files" && files="config.h" touch_files= for f in $files; do case $f in *:*) touch_files="$touch_files "`echo "$f" | sed -e 's/^[^:]*://' -e 's/:.*//'`;; *) touch_files="$touch_files $f.in";; esac done touch $touch_files ;; automake*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." find . -type f -name Makefile.am -print | sed 's/\.am$/.in/' | while read f; do touch "$f"; done ;; autom4te*) echo 1>&2 "\ WARNING: \`$1' is needed, but is $msg. You might have modified some files without having the proper tools for further handling them. You can get \`$1' as part of \`Autoconf' from any GNU archive site." file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -f "$file"; then touch $file else test -z "$file" || exec >$file echo "#! /bin/sh" echo "# Created by GNU Automake missing as a replacement of" echo "# $ $@" echo "exit 0" chmod +x $file exit 1 fi ;; bison*|yacc*) echo 1>&2 "\ WARNING: \`$1' $msg. You should only need it if you modified a \`.y' file. You may need the \`Bison' package in order for those modifications to take effect. You can get \`Bison' from any GNU archive site." rm -f y.tab.c y.tab.h if test $# -ne 1; then eval LASTARG=\${$#} case $LASTARG in *.y) SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` if test -f "$SRCFILE"; then cp "$SRCFILE" y.tab.c fi SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` if test -f "$SRCFILE"; then cp "$SRCFILE" y.tab.h fi ;; esac fi if test ! -f y.tab.h; then echo >y.tab.h fi if test ! -f y.tab.c; then echo 'main() { return 0; }' >y.tab.c fi ;; lex*|flex*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.l' file. You may need the \`Flex' package in order for those modifications to take effect. You can get \`Flex' from any GNU archive site." rm -f lex.yy.c if test $# -ne 1; then eval LASTARG=\${$#} case $LASTARG in *.l) SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` if test -f "$SRCFILE"; then cp "$SRCFILE" lex.yy.c fi ;; esac fi if test ! -f lex.yy.c; then echo 'main() { return 0; }' >lex.yy.c fi ;; help2man*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a dependency of a manual page. You may need the \`Help2man' package in order for those modifications to take effect. You can get \`Help2man' from any GNU archive site." file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -f "$file"; then touch $file else test -z "$file" || exec >$file echo ".ab help2man is required to generate this page" exit $? fi ;; makeinfo*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.texi' or \`.texinfo' file, or any other file indirectly affecting the aspect of the manual. The spurious call might also be the consequence of using a buggy \`make' (AIX, DU, IRIX). You might want to install the \`Texinfo' package or the \`GNU make' package. Grab either from any GNU archive site." # The file to touch is that specified with -o ... file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -z "$file"; then # ... or it is the one specified with @setfilename ... infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` file=`sed -n ' /^@setfilename/{ s/.* \([^ ]*\) *$/\1/ p q }' $infile` # ... or it is derived from the source name (dir/f.texi becomes f.info) test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info fi # If the file does not exist, the user really needs makeinfo; # let's fail without touching anything. test -f $file || exit 1 touch $file ;; *) echo 1>&2 "\ WARNING: \`$1' is needed, and is $msg. You might have modified some files without having the proper tools for further handling them. Check the \`README' file, it often tells you about the needed prerequisites for installing this package. You may also peek at any GNU archive site, in case some other package would contain this missing \`$1' program." exit 1 ;; esac exit 0 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: glogic-2.6/bin/0000775000175000017500000000000012044454515010404 500000000000000glogic-2.6/bin/glogic0000664000175000017500000000164512044454503011516 00000000000000#!/usr/bin/python3 # -*- coding: utf-8; indent-tabs-mode: t; tab-width: 4 -*- # # Copyright (C) Koichi Akabe 2012 # # gLogic is free software: you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by the # Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # gLogic is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # See the GNU General Public License for more details. # # You should have received a copy of the GNU General Public License along # with this program. If not, see . # from glogic.MainFrame import MainFrame from gi.repository import Gtk if __name__ == "__main__": mainframe = MainFrame() mainframe.show_all() Gtk.main() glogic-2.6/bin/glogic.in0000755000175000017500000000163512031005333012110 00000000000000#!@PYTHON@ # -*- coding: utf-8; indent-tabs-mode: t; tab-width: 4 -*- # # Copyright (C) Koichi Akabe 2012 # # gLogic is free software: you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by the # Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # gLogic is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # See the GNU General Public License for more details. # # You should have received a copy of the GNU General Public License along # with this program. If not, see . # from glogic.MainFrame import MainFrame from gi.repository import Gtk if __name__ == "__main__": mainframe = MainFrame() mainframe.show_all() Gtk.main() glogic-2.6/bin/Makefile.am0000644000175000017500000000006112031005333012335 00000000000000bin_SCRIPTS = glogic EXTRA_DIST = $(bin_SCRIPTS) glogic-2.6/bin/Makefile.in0000644000175000017500000003272712044406014012371 00000000000000# Makefile.in generated by automake 1.11.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : subdir = bin DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(srcdir)/glogic.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/as-ac-expand.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = glogic CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(bindir)" SCRIPTS = $(bin_SCRIPTS) SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BZRREV = @BZRREV@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIR = @DATADIR@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ HELP_DIR = @HELP_DIR@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ ITSTOOL = @ITSTOOL@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_VERSION = @PYTHON_VERSION@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XMLLINT = @XMLLINT@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ intltool__v_merge_options_ = @intltool__v_merge_options_@ intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ bin_SCRIPTS = glogic EXTRA_DIST = $(bin_SCRIPTS) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu bin/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu bin/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): glogic: $(top_builddir)/config.status $(srcdir)/glogic.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ install-binSCRIPTS: $(bin_SCRIPTS) @$(NORMAL_INSTALL) @list='$(bin_SCRIPTS)'; test -n "$(bindir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \ $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n' \ -e 'h;s|.*|.|' \ -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) { files[d] = files[d] " " $$1; \ if (++n[d] == $(am__install_max)) { \ print "f", d, files[d]; n[d] = 0; files[d] = "" } } \ else { print "f", d "/" $$4, $$1 } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(bindir)$$dir'"; \ $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ } \ ; done uninstall-binSCRIPTS: @$(NORMAL_UNINSTALL) @list='$(bin_SCRIPTS)'; test -n "$(bindir)" || exit 0; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 's,.*/,,;$(transform)'`; \ dir='$(DESTDIR)$(bindir)'; $(am__uninstall_files_from_dir) tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(SCRIPTS) installdirs: for dir in "$(DESTDIR)$(bindir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-binSCRIPTS install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-binSCRIPTS .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic distclean \ distclean-generic distdir dvi dvi-am html html-am info info-am \ install install-am install-binSCRIPTS install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am uninstall uninstall-am uninstall-binSCRIPTS # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: glogic-2.6/py-compile0000755000175000017500000001040012034477762011561 00000000000000#!/bin/sh # py-compile - Compile a Python program scriptversion=2011-06-08.12; # UTC # Copyright (C) 2000, 2001, 2003, 2004, 2005, 2008, 2009, 2011 Free # Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # This file is maintained in Automake, please report # bugs to or send patches to # . if [ -z "$PYTHON" ]; then PYTHON=python fi me=py-compile usage_error () { echo "$me: $*" >&2 echo "Try \`$me --help' for more information." >&2 exit 1 } basedir= destdir= while test $# -ne 0; do case "$1" in --basedir) if test $# -lt 2; then usage_error "option '--basedir' requires an argument" else basedir=$2 fi shift ;; --destdir) if test $# -lt 2; then usage_error "option '--destdir' requires an argument" else destdir=$2 fi shift ;; -h|--help) cat <<\EOF Usage: py-compile [--help] [--version] [--basedir DIR] [--destdir DIR] FILES..." Byte compile some python scripts FILES. Use --destdir to specify any leading directory path to the FILES that you don't want to include in the byte compiled file. Specify --basedir for any additional path information you do want to be shown in the byte compiled file. Example: py-compile --destdir /tmp/pkg-root --basedir /usr/share/test test.py test2.py Report bugs to . EOF exit $? ;; -v|--version) echo "$me $scriptversion" exit $? ;; --) shift break ;; -*) usage_error "unrecognized option '$1'" ;; *) break ;; esac shift done files=$* if test -z "$files"; then usage_error "no files given" fi # if basedir was given, then it should be prepended to filenames before # byte compilation. if [ -z "$basedir" ]; then pathtrans="path = file" else pathtrans="path = os.path.join('$basedir', file)" fi # if destdir was given, then it needs to be prepended to the filename to # byte compile but not go into the compiled file. if [ -z "$destdir" ]; then filetrans="filepath = path" else filetrans="filepath = os.path.normpath('$destdir' + os.sep + path)" fi $PYTHON -c " import sys, os, py_compile files = '''$files''' sys.stdout.write('Byte-compiling python modules...\n') for file in files.split(): $pathtrans $filetrans if not os.path.exists(filepath) or not (len(filepath) >= 3 and filepath[-3:] == '.py'): continue sys.stdout.write(file) sys.stdout.flush() py_compile.compile(filepath, filepath + 'c', path) sys.stdout.write('\n')" || exit $? # this will fail for python < 1.5, but that doesn't matter ... $PYTHON -O -c " import sys, os, py_compile files = '''$files''' sys.stdout.write('Byte-compiling python modules (optimized versions) ...\n') for file in files.split(): $pathtrans $filetrans if not os.path.exists(filepath) or not (len(filepath) >= 3 and filepath[-3:] == '.py'): continue sys.stdout.write(file) sys.stdout.flush() py_compile.compile(filepath, filepath + 'o', path) sys.stdout.write('\n')" 2>/dev/null || : # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: glogic-2.6/AUTHORS0000664000175000017500000000006612044454516010627 00000000000000# Generated by Makefile. Do not edit. Koichi Akabe glogic-2.6/NEWS0000644000175000017500000000261012044445740010250 000000000000002012-11-01: version 2.6 * add shift registers and half/full adder * Hex counter is renamed to Counter and support up to 8 bits * basic components support triple input * add a pause button to keep the state of the circuit when components (switches) are clicked * add a documentation * support copy and paste * support middle button drag to move the circuit window * support rotate and flip components 2012-10-02: version 2.5 * add a cursor to timing chart to fall back to a specified time * prohibit moving components to out of range * fix many bugs 2012-08-13: version 2.4 * add max calc iters and max calc duration preferences * force directions of nets started at a pin of a component * fix bugs 2012-06-18: version 2.3 * add duration property for oscillator * change default font to Liberation Mono * code cleanup * fix many bugs 2012-05-24: version 2.2 * add Preferences window to change appearance * support IEC symbols * fix bugs 2012-05-08: version 2.1 * add tooltips for component window * add components' names on property window * fix behavior on schematics area 2012-05-03: version 2.0 * Migrate from wxWidget to GTK+ * Add oscillator, probe and text components * Add property window * Add timing chart window * Add "Save as image" menu and "Save chart" button * Fix many bugs 2012-02-16: version 1.0 released * initial release glogic-2.6/m4/0000775000175000017500000000000012044454515010154 500000000000000glogic-2.6/m4/as-ac-expand.m40000644000175000017500000000210512031005333012555 00000000000000dnl as-ac-expand.m4 0.2.0 dnl autostars m4 macro for expanding directories using configure's prefix dnl thomas@apestaart.org dnl AS_AC_EXPAND(VAR, CONFIGURE_VAR) dnl example dnl AS_AC_EXPAND(SYSCONFDIR, $sysconfdir) dnl will set SYSCONFDIR to /usr/local/etc if prefix=/usr/local AC_DEFUN([AS_AC_EXPAND], [ EXP_VAR=[$1] FROM_VAR=[$2] dnl first expand prefix and exec_prefix if necessary prefix_save=$prefix exec_prefix_save=$exec_prefix dnl if no prefix given, then use /usr/local, the default prefix if test "x$prefix" = "xNONE"; then prefix="$ac_default_prefix" fi dnl if no exec_prefix given, then use prefix if test "x$exec_prefix" = "xNONE"; then exec_prefix=$prefix fi full_var="$FROM_VAR" dnl loop until it doesn't change anymore while true; do new_full_var="`eval echo $full_var`" if test "x$new_full_var" = "x$full_var"; then break; fi full_var=$new_full_var done dnl clean up full_var=$new_full_var AC_SUBST([$1], "$full_var") dnl restore prefix and exec_prefix prefix=$prefix_save exec_prefix=$exec_prefix_save ]) glogic-2.6/Makefile.am0000644000175000017500000000262412035721222011602 00000000000000## Process this file with automake to produce Makefile.in ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS} SUBDIRS = bin glogic po data examples help EXTRA_DIST = \ README\ COPYING\ ChangeLog\ AUTHORS\ INSTALL\ NEWS \ $(INTLTOOL_FILES) DISTCLEANFILES = intltool-extract \ intltool-merge \ intltool-update \ po/.intltool-merge-cache dist-hook: @if test -d "$(top_srcdir)/.bzr"; \ then \ echo Creating ChangeLog && \ ( cd "$(top_srcdir)" && \ echo '# Generated by Makefile. Do not edit.'; echo; \ $(top_srcdir)/missing --run bzr log --gnu-changelog ) > ChangeLog.tmp \ && mv -f ChangeLog.tmp $(top_distdir)/ChangeLog \ || (rm -f ChangeLog.tmp; \ echo Failed to generate ChangeLog >&2 ); \ else \ echo Failed to generate ChangeLog: not a branch >&2; \ fi @if test -d "$(top_srcdir)/.bzr"; \ then \ echo Creating AUTHORS && \ ( cd "$(top_srcdir)" && \ echo '# Generated by Makefile. Do not edit.'; echo; \ $(top_srcdir)/missing --run bzr log --long --levels=0 | grep -e "^\s*author:" -e "^\s*committer:" | cut -d ":" -f 2 | cut -d "<" -f 1 | sort -u) > AUTHORS.tmp \ && mv -f AUTHORS.tmp $(top_distdir)/AUTHORS \ || (rm -f AUTHORS.tmp; \ echo Failed to generate AUTHORS >&2 ); \ else \ echo Failed to generate AUTHORS: not a branch >&2; \ fi glogic-2.6/po/0000775000175000017500000000000012044454516010253 500000000000000glogic-2.6/po/Makefile.in.in0000644000175000017500000001537712044454516012660 00000000000000# Makefile for program source directory in GNU NLS utilities package. # Copyright (C) 1995, 1996, 1997 by Ulrich Drepper # Copyright (C) 2004-2008 Rodney Dawes # # This file may be copied and used freely without restrictions. It may # be used in projects which are not available under a GNU Public License, # but which still want to provide support for the GNU gettext functionality. # # - Modified by Owen Taylor to use GETTEXT_PACKAGE # instead of PACKAGE and to look for po2tbl in ./ not in intl/ # # - Modified by jacob berkman to install # Makefile.in.in and po2tbl.sed.in for use with glib-gettextize # # - Modified by Rodney Dawes for use with intltool # # We have the following line for use by intltoolize: # INTLTOOL_MAKEFILE GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ PACKAGE = @PACKAGE@ VERSION = @VERSION@ SHELL = @SHELL@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ top_builddir = @top_builddir@ VPATH = @srcdir@ prefix = @prefix@ exec_prefix = @exec_prefix@ datadir = @datadir@ datarootdir = @datarootdir@ libdir = @libdir@ DATADIRNAME = @DATADIRNAME@ itlocaledir = $(prefix)/$(DATADIRNAME)/locale subdir = po install_sh = @install_sh@ # Automake >= 1.8 provides @mkdir_p@. # Until it can be supposed, use the safe fallback: mkdir_p = $(install_sh) -d INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ GMSGFMT = @GMSGFMT@ MSGFMT = @MSGFMT@ XGETTEXT = @XGETTEXT@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ MSGMERGE = INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --dist GENPOT = INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --pot ALL_LINGUAS = @ALL_LINGUAS@ PO_LINGUAS=$(shell if test -r $(srcdir)/LINGUAS; then grep -v "^\#" $(srcdir)/LINGUAS; else echo "$(ALL_LINGUAS)"; fi) USER_LINGUAS=$(shell if test -n "$(LINGUAS)"; then LLINGUAS="$(LINGUAS)"; ALINGUAS="$(ALL_LINGUAS)"; for lang in $$LLINGUAS; do if test -n "`grep \^$$lang$$ $(srcdir)/LINGUAS 2>/dev/null`" -o -n "`echo $$ALINGUAS|tr ' ' '\n'|grep \^$$lang$$`"; then printf "$$lang "; fi; done; fi) USE_LINGUAS=$(shell if test -n "$(USER_LINGUAS)" -o -n "$(LINGUAS)"; then LLINGUAS="$(USER_LINGUAS)"; else if test -n "$(PO_LINGUAS)"; then LLINGUAS="$(PO_LINGUAS)"; else LLINGUAS="$(ALL_LINGUAS)"; fi; fi; for lang in $$LLINGUAS; do printf "$$lang "; done) POFILES=$(shell LINGUAS="$(PO_LINGUAS)"; for lang in $$LINGUAS; do printf "$$lang.po "; done) DISTFILES = Makefile.in.in POTFILES.in $(POFILES) $(GETTEXT_PACKAGE).pot EXTRA_DISTFILES = ChangeLog POTFILES.skip Makevars LINGUAS POTFILES = \ # This comment gets stripped out CATALOGS=$(shell LINGUAS="$(USE_LINGUAS)"; for lang in $$LINGUAS; do printf "$$lang.gmo "; done) .SUFFIXES: .SUFFIXES: .po .pox .gmo .mo .msg .cat .po.pox: $(MAKE) $(GETTEXT_PACKAGE).pot $(MSGMERGE) $< $(GETTEXT_PACKAGE).pot -o $*.pox .po.mo: $(MSGFMT) -o $@ $< .po.gmo: file=`echo $* | sed 's,.*/,,'`.gmo \ && rm -f $$file && $(GMSGFMT) -o $$file $< .po.cat: sed -f ../intl/po2msg.sed < $< > $*.msg \ && rm -f $@ && gencat $@ $*.msg all: all-@USE_NLS@ all-yes: $(CATALOGS) all-no: $(GETTEXT_PACKAGE).pot: $(POTFILES) $(GENPOT) install: install-data install-data: install-data-@USE_NLS@ install-data-no: all install-data-yes: all linguas="$(USE_LINGUAS)"; \ for lang in $$linguas; do \ dir=$(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES; \ $(mkdir_p) $$dir; \ if test -r $$lang.gmo; then \ $(INSTALL_DATA) $$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \ echo "installing $$lang.gmo as $$dir/$(GETTEXT_PACKAGE).mo"; \ else \ $(INSTALL_DATA) $(srcdir)/$$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \ echo "installing $(srcdir)/$$lang.gmo as" \ "$$dir/$(GETTEXT_PACKAGE).mo"; \ fi; \ if test -r $$lang.gmo.m; then \ $(INSTALL_DATA) $$lang.gmo.m $$dir/$(GETTEXT_PACKAGE).mo.m; \ echo "installing $$lang.gmo.m as $$dir/$(GETTEXT_PACKAGE).mo.m"; \ else \ if test -r $(srcdir)/$$lang.gmo.m ; then \ $(INSTALL_DATA) $(srcdir)/$$lang.gmo.m \ $$dir/$(GETTEXT_PACKAGE).mo.m; \ echo "installing $(srcdir)/$$lang.gmo.m as" \ "$$dir/$(GETTEXT_PACKAGE).mo.m"; \ else \ true; \ fi; \ fi; \ done # Empty stubs to satisfy archaic automake needs dvi info ctags tags CTAGS TAGS ID: # Define this as empty until I found a useful application. install-exec installcheck: uninstall: linguas="$(USE_LINGUAS)"; \ for lang in $$linguas; do \ rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo; \ rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo.m; \ done check: all $(GETTEXT_PACKAGE).pot rm -f missing notexist srcdir=$(srcdir) $(INTLTOOL_UPDATE) -m if [ -r missing -o -r notexist ]; then \ exit 1; \ fi mostlyclean: rm -f *.pox *.old.po cat-id-tbl.tmp rm -f .intltool-merge-cache clean: mostlyclean distclean: clean rm -f Makefile Makefile.in POTFILES stamp-it rm -f *.mo *.msg *.cat *.cat.m *.gmo maintainer-clean: distclean @echo "This command is intended for maintainers to use;" @echo "it deletes files that may require special tools to rebuild." rm -f Makefile.in.in distdir = ../$(PACKAGE)-$(VERSION)/$(subdir) dist distdir: $(DISTFILES) dists="$(DISTFILES)"; \ extra_dists="$(EXTRA_DISTFILES)"; \ for file in $$extra_dists; do \ test -f $(srcdir)/$$file && dists="$$dists $(srcdir)/$$file"; \ done; \ for file in $$dists; do \ test -f $$file || file="$(srcdir)/$$file"; \ ln $$file $(distdir) 2> /dev/null \ || cp -p $$file $(distdir); \ done update-po: Makefile $(MAKE) $(GETTEXT_PACKAGE).pot tmpdir=`pwd`; \ linguas="$(USE_LINGUAS)"; \ for lang in $$linguas; do \ echo "$$lang:"; \ result="`$(MSGMERGE) -o $$tmpdir/$$lang.new.po $$lang`"; \ if $$result; then \ if cmp $(srcdir)/$$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ rm -f $$tmpdir/$$lang.new.po; \ else \ if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ :; \ else \ echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ rm -f $$tmpdir/$$lang.new.po; \ exit 1; \ fi; \ fi; \ else \ echo "msgmerge for $$lang.gmo failed!"; \ rm -f $$tmpdir/$$lang.new.po; \ fi; \ done Makefile POTFILES: stamp-it @if test ! -f $@; then \ rm -f stamp-it; \ $(MAKE) stamp-it; \ fi stamp-it: Makefile.in.in $(top_builddir)/config.status POTFILES.in cd $(top_builddir) \ && CONFIG_FILES=$(subdir)/Makefile.in CONFIG_HEADERS= CONFIG_LINKS= \ $(SHELL) ./config.status # Tell versions [3.59,3.63) of GNU make not to export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: glogic-2.6/po/POTFILES.in0000644000175000017500000000114612044454516011750 00000000000000# List of source files containing translatable strings. # Please keep this file sorted alphabetically. data/glogic.desktop.in glogic/MainFrame.py glogic/DiagramArea.py glogic/CircuitManager.py glogic/ComponentConverter.py glogic/ComponentWindow.py glogic/Exporter.py glogic/PreferencesWindow.py glogic/PropertyWindow.py glogic/TimingDiagramWindow.py glogic/const.py glogic/Components/Calculator.py glogic/Components/Counter.py glogic/Components/FlipFlop.py glogic/Components/Makefile.am glogic/Components/Misc.py glogic/Components/Standard.py glogic/Components/StateViewer.py glogic/Components/SystemComponents.py glogic-2.6/po/glogic.pot0000664000175000017500000003717412044454515012176 00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-11-01 20:13+0900\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../data/glogic.desktop.in.h:1 ../glogic/const.py:67 msgid "gLogic" msgstr "" #: ../data/glogic.desktop.in.h:2 msgid "Logic circuit simulator" msgstr "" #: ../glogic/MainFrame.py:67 msgid "translator-credits" msgstr "" #: ../glogic/MainFrame.py:151 msgid "_New" msgstr "" #: ../glogic/MainFrame.py:151 msgid "Close this circuit and create a new one." msgstr "" #: ../glogic/MainFrame.py:152 msgid "_Open..." msgstr "" #: ../glogic/MainFrame.py:152 msgid "Close this circuit and open the other one." msgstr "" #: ../glogic/MainFrame.py:153 msgid "_Save" msgstr "" #: ../glogic/MainFrame.py:153 msgid "Save this circuit." msgstr "" #: ../glogic/MainFrame.py:154 msgid "Save _As..." msgstr "" #: ../glogic/MainFrame.py:154 msgid "Save this circuit with a new name." msgstr "" #: ../glogic/MainFrame.py:155 msgid "Save as _image..." msgstr "" #: ../glogic/MainFrame.py:155 msgid "Save schematics as image file." msgstr "" #: ../glogic/MainFrame.py:156 msgid "_Quit" msgstr "" #: ../glogic/MainFrame.py:156 msgid "Close this application." msgstr "" #: ../glogic/MainFrame.py:157 msgid "_Undo" msgstr "" #: ../glogic/MainFrame.py:157 msgid "Undo the previous action." msgstr "" #: ../glogic/MainFrame.py:158 msgid "_Redo" msgstr "" #: ../glogic/MainFrame.py:158 msgid "Redo the action that you have canceled." msgstr "" #: ../glogic/MainFrame.py:159 msgid "Cu_t" msgstr "" #: ../glogic/MainFrame.py:159 msgid "Cut selected components." msgstr "" #: ../glogic/MainFrame.py:160 msgid "_Copy" msgstr "" #: ../glogic/MainFrame.py:160 msgid "Copy selected components." msgstr "" #: ../glogic/MainFrame.py:161 msgid "_Paste" msgstr "" #: ../glogic/MainFrame.py:161 msgid "Paste copied components." msgstr "" #: ../glogic/MainFrame.py:162 msgid "_Delete" msgstr "" #: ../glogic/MainFrame.py:162 msgid "Delete selected components." msgstr "" #: ../glogic/MainFrame.py:163 msgid "Rotate _left 90" msgstr "" #: ../glogic/MainFrame.py:163 msgid "Rotate selected components 90 degrees." msgstr "" #: ../glogic/MainFrame.py:164 msgid "Rotate _right 90" msgstr "" #: ../glogic/MainFrame.py:164 msgid "Rotate selected components -90 degrees." msgstr "" #: ../glogic/MainFrame.py:165 msgid "Flip _horizontally" msgstr "" #: ../glogic/MainFrame.py:165 msgid "Flip components horizontally." msgstr "" #: ../glogic/MainFrame.py:166 msgid "Flip _vertically" msgstr "" #: ../glogic/MainFrame.py:166 msgid "Flip components vertically." msgstr "" #: ../glogic/MainFrame.py:167 msgid "Pr_eferences" msgstr "" #: ../glogic/MainFrame.py:167 msgid "Set preferences of this application." msgstr "" #: ../glogic/MainFrame.py:168 msgid "_Contents" msgstr "" #: ../glogic/MainFrame.py:168 msgid "Show the help browser." msgstr "" #: ../glogic/MainFrame.py:169 msgid "Translate This Application..." msgstr "" #: ../glogic/MainFrame.py:169 msgid "Connect to the Launchpad website to help translate this application." msgstr "" #: ../glogic/MainFrame.py:170 msgid "Report a Problem..." msgstr "" #: ../glogic/MainFrame.py:170 msgid "" "Connect to the Launchpad website to report a problem of this application." msgstr "" #: ../glogic/MainFrame.py:171 msgid "_About" msgstr "" #: ../glogic/MainFrame.py:171 msgid "Show about dialog." msgstr "" #: ../glogic/MainFrame.py:172 msgid "_File" msgstr "" #: ../glogic/MainFrame.py:173 msgid "_Edit" msgstr "" #: ../glogic/MainFrame.py:174 msgid "_Add" msgstr "" #: ../glogic/MainFrame.py:175 msgid "_Simulate" msgstr "" #: ../glogic/MainFrame.py:176 msgid "_Help" msgstr "" #: ../glogic/MainFrame.py:179 msgid "_Properties" msgstr "" #: ../glogic/MainFrame.py:179 msgid "Show property dialog." msgstr "" #: ../glogic/MainFrame.py:180 msgid "_Components..." msgstr "" #: ../glogic/MainFrame.py:180 msgid "Show components window." msgstr "" #: ../glogic/MainFrame.py:181 msgid "_Net" msgstr "" #: ../glogic/MainFrame.py:181 msgid "Add nets to this circuit." msgstr "" #: ../glogic/MainFrame.py:182 msgid "_Run" msgstr "" #: ../glogic/MainFrame.py:182 msgid "Run and simulate this circuit." msgstr "" #: ../glogic/MainFrame.py:183 msgid "_Pause" msgstr "" #: ../glogic/MainFrame.py:183 msgid "Pause simulation to keep the state when components are clicked." msgstr "" #: ../glogic/MainFrame.py:184 msgid "_Timing Diagram" msgstr "" #: ../glogic/MainFrame.py:184 msgid "Show timing diagram window." msgstr "" #: ../glogic/MainFrame.py:294 msgid "Open file" msgstr "" #: ../glogic/MainFrame.py:321 msgid "Save file" msgstr "" #: ../glogic/MainFrame.py:334 ../glogic/Exporter.py:55 msgid "Overwrite to the existing file?" msgstr "" #: ../glogic/MainFrame.py:335 ../glogic/Exporter.py:56 msgid "The file already exist. Overwrite it?" msgstr "" #: ../glogic/MainFrame.py:361 msgid "Save the modified schematics?" msgstr "" #: ../glogic/MainFrame.py:362 msgid "The schematics was modifed. Save the changes before closing?" msgstr "" #: ../glogic/MainFrame.py:467 ../glogic/MainFrame.py:629 msgid "Error" msgstr "" #: ../glogic/DiagramArea.py:216 ../glogic/DiagramArea.py:218 #: ../glogic/DiagramArea.py:220 msgid "Time" msgstr "" #: ../glogic/CircuitManager.py:256 msgid "Output port is short circuit!" msgstr "" #: ../glogic/CircuitManager.py:317 msgid "Input port is open circuit!" msgstr "" #: ../glogic/CircuitManager.py:336 msgid "This circuit oscillates on infinite frequency!" msgstr "" #: ../glogic/CircuitManager.py:342 #, python-format msgid "This logic is complexity! (iters > %d)" msgstr "" #: ../glogic/ComponentConverter.py:56 #, python-format msgid "Compatibility error: This circuit requires glogic %s or later." msgstr "" #: ../glogic/ComponentConverter.py:65 #, python-format msgid "" "Compatibility error: This circuit was created by %(creator)s. glogic " "%(this)s doesn't support older than %(minimum)s." msgstr "" #: ../glogic/ComponentWindow.py:18 msgid "Components" msgstr "" #: ../glogic/Exporter.py:30 ../glogic/Exporter.py:216 #: ../glogic/Exporter.py:252 msgid "Save as image" msgstr "" #: ../glogic/Exporter.py:221 ../glogic/Exporter.py:257 #: ../glogic/TimingDiagramWindow.py:35 msgid "Scale:" msgstr "" #: ../glogic/Exporter.py:231 msgid "Mergin:" msgstr "" #: ../glogic/Exporter.py:241 msgid "Draw voltage states:" msgstr "" #: ../glogic/PreferencesWindow.py:10 msgid "Preferences" msgstr "" #: ../glogic/PreferencesWindow.py:20 msgid "Font:" msgstr "" #: ../glogic/PreferencesWindow.py:28 msgid "Net:" msgstr "" #: ../glogic/PreferencesWindow.py:28 msgid "Net (highlighted):" msgstr "" #: ../glogic/PreferencesWindow.py:28 msgid "Net (running):" msgstr "" #: ../glogic/PreferencesWindow.py:29 msgid "Net (high level):" msgstr "" #: ../glogic/PreferencesWindow.py:29 msgid "Net (low level):" msgstr "" #: ../glogic/PreferencesWindow.py:30 msgid "Component:" msgstr "" #: ../glogic/PreferencesWindow.py:30 msgid "Component (highlighted):" msgstr "" #: ../glogic/PreferencesWindow.py:30 msgid "Component (running):" msgstr "" #: ../glogic/PreferencesWindow.py:31 msgid "Component (picked):" msgstr "" #: ../glogic/PreferencesWindow.py:31 msgid "Component (pre added):" msgstr "" #: ../glogic/PreferencesWindow.py:31 msgid "Component (selected):" msgstr "" #: ../glogic/PreferencesWindow.py:32 msgid "Terminal:" msgstr "" #: ../glogic/PreferencesWindow.py:32 msgid "Terminal (running):" msgstr "" #: ../glogic/PreferencesWindow.py:32 msgid "Cursor:" msgstr "" #: ../glogic/PreferencesWindow.py:33 msgid "Background:" msgstr "" #: ../glogic/PreferencesWindow.py:33 msgid "Background (running):" msgstr "" #: ../glogic/PreferencesWindow.py:33 msgid "Grid:" msgstr "" #: ../glogic/PreferencesWindow.py:51 msgid "Symbol type:" msgstr "" #: ../glogic/PreferencesWindow.py:54 msgid "MIL/ANSI" msgstr "" #: ../glogic/PreferencesWindow.py:55 msgid "IEC" msgstr "" #: ../glogic/PreferencesWindow.py:61 msgid "Max calc iters:" msgstr "" #: ../glogic/PreferencesWindow.py:66 msgid "Max calc duration [µs]:" msgstr "" #: ../glogic/PropertyWindow.py:16 msgid "Properties" msgstr "" #: ../glogic/PropertyWindow.py:66 msgid "Set values are invalid." msgstr "" #: ../glogic/PropertyWindow.py:105 msgid "Please select a component to edit properties." msgstr "" #: ../glogic/PropertyWindow.py:172 msgid "This component has no property." msgstr "" #: ../glogic/TimingDiagramWindow.py:12 msgid "Timimg diagram" msgstr "" #: ../glogic/TimingDiagramWindow.py:60 msgid "Range:" msgstr "" #: ../glogic/TimingDiagramWindow.py:98 msgid "_Redraw" msgstr "" #: ../glogic/TimingDiagramWindow.py:103 msgid "Save _diagram..." msgstr "" #: ../glogic/TimingDiagramWindow.py:114 msgid "Cursor position:" msgstr "" #: ../glogic/TimingDiagramWindow.py:229 msgid "Can't create timing diagram!" msgstr "" #: ../glogic/TimingDiagramWindow.py:230 msgid "The width of the timing diagram will be too wide. (> 5000)" msgstr "" #: ../glogic/const.py:55 msgid "No title" msgstr "" #: ../glogic/const.py:56 msgid "Modified" msgstr "" #: ../glogic/const.py:58 msgid "gLogic files (*.glc)" msgstr "" #: ../glogic/const.py:59 msgid "Portable Network Graphics (*.png)" msgstr "" #: ../glogic/const.py:60 msgid "Scalable Vector Graphics (*.svg)" msgstr "" #: ../glogic/const.py:61 msgid "Portable Document Format (*.pdf)" msgstr "" #: ../glogic/const.py:62 msgid "Post Script (*.ps)" msgstr "" #: ../glogic/const.py:63 msgid "All files" msgstr "" #: ../glogic/const.py:68 msgid "gLogic is a logic circuit simulator developed with GTK+ and Python." msgstr "" #: ../glogic/Components/Calculator.py:13 msgid "Adder" msgstr "" #: ../glogic/Components/Calculator.py:25 msgid "Half/Full:" msgstr "" #: ../glogic/Components/Calculator.py:25 msgid "Half adder" msgstr "" #: ../glogic/Components/Calculator.py:25 msgid "Full adder" msgstr "" #: ../glogic/Components/Calculator.py:27 ../glogic/Components/Counter.py:32 #: ../glogic/Components/Counter.py:138 ../glogic/Components/Counter.py:239 #: ../glogic/Components/Counter.py:352 ../glogic/Components/Counter.py:469 #: ../glogic/Components/FlipFlop.py:24 ../glogic/Components/FlipFlop.py:114 #: ../glogic/Components/FlipFlop.py:220 ../glogic/Components/FlipFlop.py:311 #: ../glogic/Components/Standard.py:24 ../glogic/Components/Standard.py:98 #: ../glogic/Components/Standard.py:193 ../glogic/Components/Standard.py:304 #: ../glogic/Components/Standard.py:416 ../glogic/Components/Standard.py:515 msgid "Propagation delay:" msgstr "" #: ../glogic/Components/Calculator.py:28 ../glogic/Components/Counter.py:33 #: ../glogic/Components/Counter.py:139 ../glogic/Components/Counter.py:240 #: ../glogic/Components/Counter.py:353 ../glogic/Components/Counter.py:470 #: ../glogic/Components/FlipFlop.py:25 ../glogic/Components/FlipFlop.py:115 #: ../glogic/Components/FlipFlop.py:221 ../glogic/Components/FlipFlop.py:312 #: ../glogic/Components/Standard.py:25 ../glogic/Components/Standard.py:99 #: ../glogic/Components/Standard.py:194 ../glogic/Components/Standard.py:305 #: ../glogic/Components/Standard.py:417 ../glogic/Components/Standard.py:516 msgid "tPHL:" msgstr "" #: ../glogic/Components/Calculator.py:30 ../glogic/Components/Counter.py:35 #: ../glogic/Components/Counter.py:141 ../glogic/Components/Counter.py:242 #: ../glogic/Components/Counter.py:355 ../glogic/Components/Counter.py:472 #: ../glogic/Components/FlipFlop.py:27 ../glogic/Components/FlipFlop.py:117 #: ../glogic/Components/FlipFlop.py:223 ../glogic/Components/FlipFlop.py:314 #: ../glogic/Components/Standard.py:27 ../glogic/Components/Standard.py:101 #: ../glogic/Components/Standard.py:196 ../glogic/Components/Standard.py:307 #: ../glogic/Components/Standard.py:419 ../glogic/Components/Standard.py:518 msgid "tPLH:" msgstr "" #: ../glogic/Components/Counter.py:13 msgid "Mod-N counter" msgstr "" #: ../glogic/Components/Counter.py:26 msgid "N:" msgstr "" #: ../glogic/Components/Counter.py:28 ../glogic/Components/Counter.py:134 #: ../glogic/Components/Counter.py:235 ../glogic/Components/Counter.py:348 #: ../glogic/Components/Counter.py:465 msgid "Number of bits:" msgstr "" #: ../glogic/Components/Counter.py:30 ../glogic/Components/Counter.py:136 #: ../glogic/Components/Counter.py:237 ../glogic/Components/Counter.py:350 #: ../glogic/Components/Counter.py:467 ../glogic/Components/FlipFlop.py:112 #: ../glogic/Components/FlipFlop.py:218 ../glogic/Components/FlipFlop.py:309 msgid "Trigger type:" msgstr "" #: ../glogic/Components/Counter.py:30 ../glogic/Components/Counter.py:136 #: ../glogic/Components/Counter.py:237 ../glogic/Components/Counter.py:350 #: ../glogic/Components/Counter.py:467 ../glogic/Components/FlipFlop.py:112 #: ../glogic/Components/FlipFlop.py:218 ../glogic/Components/FlipFlop.py:309 msgid "Positive edge" msgstr "" #: ../glogic/Components/Counter.py:30 ../glogic/Components/Counter.py:136 #: ../glogic/Components/Counter.py:237 ../glogic/Components/Counter.py:350 #: ../glogic/Components/Counter.py:467 ../glogic/Components/FlipFlop.py:112 #: ../glogic/Components/FlipFlop.py:218 ../glogic/Components/FlipFlop.py:309 msgid "Negative edge" msgstr "" #: ../glogic/Components/Counter.py:123 msgid "SISO shift register" msgstr "" #: ../glogic/Components/Counter.py:222 msgid "SIPO shift register" msgstr "" #: ../glogic/Components/Counter.py:335 msgid "PISO shift register" msgstr "" #: ../glogic/Components/Counter.py:452 msgid "PIPO shift register" msgstr "" #: ../glogic/Components/FlipFlop.py:13 msgid "RS flip-flop" msgstr "" #: ../glogic/Components/FlipFlop.py:101 msgid "JK flip-flop" msgstr "" #: ../glogic/Components/FlipFlop.py:207 msgid "D flip-flop" msgstr "" #: ../glogic/Components/FlipFlop.py:298 msgid "T flip-flop" msgstr "" #: ../glogic/Components/Misc.py:13 msgid "Text" msgstr "" #: ../glogic/Components/Misc.py:16 msgid "Text:" msgstr "" #: ../glogic/Components/Standard.py:13 msgid "NOT" msgstr "" #: ../glogic/Components/Standard.py:85 msgid "AND" msgstr "" #: ../glogic/Components/Standard.py:96 ../glogic/Components/Standard.py:191 #: ../glogic/Components/Standard.py:302 ../glogic/Components/Standard.py:414 #: ../glogic/Components/Standard.py:513 msgid "Input pins:" msgstr "" #: ../glogic/Components/Standard.py:180 msgid "OR" msgstr "" #: ../glogic/Components/Standard.py:291 msgid "XOR" msgstr "" #: ../glogic/Components/Standard.py:403 msgid "NAND" msgstr "" #: ../glogic/Components/Standard.py:502 msgid "NOR" msgstr "" #: ../glogic/Components/Standard.py:617 msgid "Switch" msgstr "" #: ../glogic/Components/Standard.py:628 ../glogic/Components/Standard.py:763 msgid "Initial state:" msgstr "" #: ../glogic/Components/Standard.py:628 ../glogic/Components/Standard.py:763 msgid "Low level" msgstr "" #: ../glogic/Components/Standard.py:628 ../glogic/Components/Standard.py:763 msgid "High level" msgstr "" #: ../glogic/Components/Standard.py:678 msgid "Vdd rail" msgstr "" #: ../glogic/Components/Standard.py:712 msgid "GND rail" msgstr "" #: ../glogic/Components/Standard.py:748 msgid "Oscillator" msgstr "" #: ../glogic/Components/Standard.py:757 msgid "Period:" msgstr "" #: ../glogic/Components/Standard.py:759 msgid "Shift:" msgstr "" #: ../glogic/Components/Standard.py:761 msgid "Duration:" msgstr "" #: ../glogic/Components/StateViewer.py:13 msgid "Seven-segment display" msgstr "" #: ../glogic/Components/StateViewer.py:164 msgid "LED" msgstr "" #: ../glogic/Components/SystemComponents.py:92 msgid "Probe" msgstr "" #: ../glogic/Components/SystemComponents.py:101 msgid "Name:" msgstr "" glogic-2.6/po/ja.po0000644000175000017500000005035212044454516011130 00000000000000# Japanese translation for glogic. # Copyright (C) 2012 Rosetta Contributors and Canonical Ltd 2012 # This file is distributed under the same license as the glogic package. # Koichi Akabe , 2012. # msgid "" msgstr "" "Project-Id-Version: glogic trunk\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-11-01 00:31+0000\n" "PO-Revision-Date: 2012-10-31 11:56+0000\n" "Last-Translator: Koichi Akabe \n" "Language-Team: Japanese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2012-11-01 05:16+0000\n" "X-Generator: Launchpad (build 16218)\n" "Language: ja\n" #: ../data/glogic.desktop.in.h:1 ../glogic/const.py:67 msgid "gLogic" msgstr "gLogic" #: ../data/glogic.desktop.in.h:2 msgid "Logic circuit simulator" msgstr "論理回路シミュレーター" #: ../glogic/MainFrame.py:67 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Koichi Akabe https://launchpad.net/~vbkaisetsu\n" " OKANO Takayoshi https://launchpad.net/~kano" #: ../glogic/MainFrame.py:151 msgid "_New" msgstr "新規(_N)" #: ../glogic/MainFrame.py:151 msgid "Close this circuit and create a new one." msgstr "この回路を閉じて新しい回路を作成します。" #: ../glogic/MainFrame.py:152 msgid "_Open..." msgstr "開く(_O)..." #: ../glogic/MainFrame.py:152 msgid "Close this circuit and open the other one." msgstr "この回路を閉じて別の回路を開きます。" #: ../glogic/MainFrame.py:153 msgid "_Save" msgstr "保存(_S)" #: ../glogic/MainFrame.py:153 msgid "Save this circuit." msgstr "この回路を保存します。" #: ../glogic/MainFrame.py:154 msgid "Save _As..." msgstr "別名で保存(_A)..." #: ../glogic/MainFrame.py:154 msgid "Save this circuit with a new name." msgstr "この回路を新しい名前で保存します。" #: ../glogic/MainFrame.py:155 msgid "Save as _image..." msgstr "画像として保存(_I)..." #: ../glogic/MainFrame.py:155 msgid "Save schematics as image file." msgstr "回路図を画像ファイルに保存します。" #: ../glogic/MainFrame.py:156 msgid "_Quit" msgstr "終了(_Q)" #: ../glogic/MainFrame.py:156 msgid "Close this application." msgstr "このアプリケーションを終了します。" #: ../glogic/MainFrame.py:157 msgid "_Undo" msgstr "元に戻す(_U)" #: ../glogic/MainFrame.py:157 msgid "Undo the previous action." msgstr "前回の操作を元に戻します。" #: ../glogic/MainFrame.py:158 msgid "_Redo" msgstr "やり直し(_R)" #: ../glogic/MainFrame.py:158 msgid "Redo the action that you have canceled." msgstr "キャンセルした操作をやり直します。" #: ../glogic/MainFrame.py:159 msgid "Cu_t" msgstr "切り取り(_T)" #: ../glogic/MainFrame.py:159 msgid "Cut selected components." msgstr "選択された部品を切り取ります。" #: ../glogic/MainFrame.py:160 msgid "_Copy" msgstr "コピー(_C)" #: ../glogic/MainFrame.py:160 msgid "Copy selected components." msgstr "選択された部品をコピーします。" #: ../glogic/MainFrame.py:161 msgid "_Paste" msgstr "貼り付け(_P)" #: ../glogic/MainFrame.py:161 msgid "Paste copied components." msgstr "コピーされた部品を貼り付けます。" #: ../glogic/MainFrame.py:162 msgid "_Delete" msgstr "削除(_D)" #: ../glogic/MainFrame.py:162 msgid "Delete selected components." msgstr "選択されたコンポーネントを削除します。" #: ../glogic/MainFrame.py:163 msgid "Rotate _left 90" msgstr "90度左回転(_L)" #: ../glogic/MainFrame.py:163 msgid "Rotate selected components 90 degrees." msgstr "選択された部品を90度回転します。" #: ../glogic/MainFrame.py:164 msgid "Rotate _right 90" msgstr "90度右回転(_R)" #: ../glogic/MainFrame.py:164 msgid "Rotate selected components -90 degrees." msgstr "選択された部品を-90度回転します。" #: ../glogic/MainFrame.py:165 msgid "Flip _horizontally" msgstr "水平方向に反転(_H)" #: ../glogic/MainFrame.py:165 msgid "Flip components horizontally." msgstr "部品を水平方向に反転します。" #: ../glogic/MainFrame.py:166 msgid "Flip _vertically" msgstr "垂直方向に反転(_V)" #: ../glogic/MainFrame.py:166 msgid "Flip components vertically." msgstr "部品を垂直方向に反転します。" #: ../glogic/MainFrame.py:167 msgid "Pr_eferences" msgstr "設定(_E)" #: ../glogic/MainFrame.py:167 msgid "Set preferences of this application." msgstr "アプリケーションの設定をします。" #: ../glogic/MainFrame.py:168 msgid "_Contents" msgstr "目次(_C)" #: ../glogic/MainFrame.py:168 msgid "Show the help browser." msgstr "ヘルプブラウザーを表示します。" #: ../glogic/MainFrame.py:169 msgid "Translate This Application..." msgstr "このアプリケーションを翻訳する..." #: ../glogic/MainFrame.py:169 msgid "Connect to the Launchpad website to help translate this application." msgstr "Launchpad のウェブサイトに接続し、このアプリケーションを翻訳します。" #: ../glogic/MainFrame.py:170 msgid "Report a Problem..." msgstr "問題点を報告する..." #: ../glogic/MainFrame.py:170 msgid "" "Connect to the Launchpad website to report a problem of this application." msgstr "Launchpad のウェブサイトに接続し、このアプリケーションの問題点を報告します。" #: ../glogic/MainFrame.py:171 msgid "_About" msgstr "情報(_A)" #: ../glogic/MainFrame.py:171 msgid "Show about dialog." msgstr "情報ダイアログを表示します。" #: ../glogic/MainFrame.py:172 msgid "_File" msgstr "ファイル(_F)" #: ../glogic/MainFrame.py:173 msgid "_Edit" msgstr "編集(_E)" #: ../glogic/MainFrame.py:174 msgid "_Add" msgstr "追加(_A)" #: ../glogic/MainFrame.py:175 msgid "_Simulate" msgstr "シミュレート(_S)" #: ../glogic/MainFrame.py:176 msgid "_Help" msgstr "ヘルプ(_H)" #: ../glogic/MainFrame.py:179 msgid "_Properties" msgstr "プロパティー(_P)" #: ../glogic/MainFrame.py:179 msgid "Show property dialog." msgstr "プロパティーダイアログを表示します。" #: ../glogic/MainFrame.py:180 msgid "_Components..." msgstr "部品(_C)..." #: ../glogic/MainFrame.py:180 msgid "Show components window." msgstr "部品ウィンドウを表示します。" #: ../glogic/MainFrame.py:181 msgid "_Net" msgstr "配線(_N)" #: ../glogic/MainFrame.py:181 msgid "Add nets to this circuit." msgstr "回路に配線を追加します。" #: ../glogic/MainFrame.py:182 msgid "_Run" msgstr "実行(_R)" #: ../glogic/MainFrame.py:182 msgid "Run and simulate this circuit." msgstr "回路を実行・シミュレートします。" #: ../glogic/MainFrame.py:183 msgid "_Pause" msgstr "一時停止(_P)" #: ../glogic/MainFrame.py:183 msgid "Pause simulation to keep the state when components are clicked." msgstr "シミュレーションを一時停止し、部品がクリックされた時に状態を維持します。" #: ../glogic/MainFrame.py:184 msgid "_Timing Diagram" msgstr "タイミングチャート(_T)" #: ../glogic/MainFrame.py:184 msgid "Show timing diagram window." msgstr "タイミングチャートウィンドウを表示します。" #: ../glogic/MainFrame.py:294 msgid "Open file" msgstr "ファイルを開く" #: ../glogic/MainFrame.py:321 msgid "Save file" msgstr "ファイルを保存" #: ../glogic/MainFrame.py:334 ../glogic/Exporter.py:55 msgid "Overwrite to the existing file?" msgstr "既存のファイルに上書きしますか?" #: ../glogic/MainFrame.py:335 ../glogic/Exporter.py:56 msgid "The file already exist. Overwrite it?" msgstr "ファイルは既に存在します。上書きしますか?" #: ../glogic/MainFrame.py:361 msgid "Save the modified schematics?" msgstr "編集した回路図を保存しますか?" #: ../glogic/MainFrame.py:362 msgid "The schematics was modifed. Save the changes before closing?" msgstr "回路図が変更されました。閉じる前に変更を保存しますか?" #: ../glogic/MainFrame.py:467 ../glogic/MainFrame.py:629 msgid "Error" msgstr "エラー" #: ../glogic/DiagramArea.py:216 ../glogic/DiagramArea.py:218 #: ../glogic/DiagramArea.py:220 msgid "Time" msgstr "時刻" #: ../glogic/CircuitManager.py:256 msgid "Output port is short circuit!" msgstr "出力端子が短絡しています!" #: ../glogic/CircuitManager.py:317 msgid "Input port is open circuit!" msgstr "入力端子が開放しています!" #: ../glogic/CircuitManager.py:336 msgid "This circuit oscillates on infinite frequency!" msgstr "この回路は周波数無限大で振動します!" #: ../glogic/CircuitManager.py:342 #, python-format msgid "This logic is complexity! (iters > %d)" msgstr "この論理は複雑です! (反復回数 > %d)" #: ../glogic/ComponentConverter.py:56 #, python-format msgid "Compatibility error: This circuit requires glogic %s or later." msgstr "互換性エラー: この回路には glogic %s 以上が必要です。" #: ../glogic/ComponentConverter.py:65 #, python-format msgid "" "Compatibility error: This circuit was created by %(creator)s. glogic " "%(this)s doesn't support older than %(minimum)s." msgstr "" "互換性エラー: この回路は %(creator)s で作成されました。glogic %(this)s は %(minimum)s " "以前をサポートしていません。" #: ../glogic/ComponentWindow.py:18 msgid "Components" msgstr "部品" #: ../glogic/Exporter.py:30 ../glogic/Exporter.py:216 #: ../glogic/Exporter.py:252 msgid "Save as image" msgstr "画像として保存" #: ../glogic/Exporter.py:221 ../glogic/Exporter.py:257 #: ../glogic/TimingDiagramWindow.py:35 msgid "Scale:" msgstr "倍率:" #: ../glogic/Exporter.py:231 msgid "Mergin:" msgstr "余白:" #: ../glogic/Exporter.py:241 msgid "Draw voltage states:" msgstr "電圧状態を描画:" #: ../glogic/PreferencesWindow.py:10 msgid "Preferences" msgstr "設定" #: ../glogic/PreferencesWindow.py:20 msgid "Font:" msgstr "フォント:" #: ../glogic/PreferencesWindow.py:28 msgid "Net:" msgstr "配線:" #: ../glogic/PreferencesWindow.py:28 msgid "Net (highlighted):" msgstr "配線(ハイライト):" #: ../glogic/PreferencesWindow.py:28 msgid "Net (running):" msgstr "配線(実行時):" #: ../glogic/PreferencesWindow.py:29 msgid "Net (high level):" msgstr "配線(高レベル):" #: ../glogic/PreferencesWindow.py:29 msgid "Net (low level):" msgstr "配線(低レベル):" #: ../glogic/PreferencesWindow.py:30 msgid "Component:" msgstr "部品:" #: ../glogic/PreferencesWindow.py:30 msgid "Component (highlighted):" msgstr "部品(ハイライト):" #: ../glogic/PreferencesWindow.py:30 msgid "Component (running):" msgstr "部品(実行時):" #: ../glogic/PreferencesWindow.py:31 msgid "Component (picked):" msgstr "部品(追加時):" #: ../glogic/PreferencesWindow.py:31 msgid "Component (pre added):" msgstr "部品(押下時):" #: ../glogic/PreferencesWindow.py:31 msgid "Component (selected):" msgstr "部品(選択時):" #: ../glogic/PreferencesWindow.py:32 msgid "Terminal:" msgstr "端子:" #: ../glogic/PreferencesWindow.py:32 msgid "Terminal (running):" msgstr "端子(実行時):" #: ../glogic/PreferencesWindow.py:32 msgid "Cursor:" msgstr "カーソル:" #: ../glogic/PreferencesWindow.py:33 msgid "Background:" msgstr "背景:" #: ../glogic/PreferencesWindow.py:33 msgid "Background (running):" msgstr "背景(実行時):" #: ../glogic/PreferencesWindow.py:33 msgid "Grid:" msgstr "グリッド:" #: ../glogic/PreferencesWindow.py:51 msgid "Symbol type:" msgstr "記号の種類:" #: ../glogic/PreferencesWindow.py:54 msgid "MIL/ANSI" msgstr "MIL/ANSI" #: ../glogic/PreferencesWindow.py:55 msgid "IEC" msgstr "IEC" #: ../glogic/PreferencesWindow.py:61 msgid "Max calc iters:" msgstr "最大計算反復回数:" #: ../glogic/PreferencesWindow.py:66 msgid "Max calc duration [µs]:" msgstr "最大計算時間[µs]:" #: ../glogic/PropertyWindow.py:16 msgid "Properties" msgstr "プロパティー" #: ../glogic/PropertyWindow.py:66 msgid "Set values are invalid." msgstr "無効な値が設定されました。" #: ../glogic/PropertyWindow.py:105 msgid "Please select a component to edit properties." msgstr "プロパティーを編集する部品を選択してください。" #: ../glogic/PropertyWindow.py:172 msgid "This component has no property." msgstr "この部品にはプロパティーがありません。" #: ../glogic/TimingDiagramWindow.py:12 msgid "Timimg diagram" msgstr "タイミングチャート" #: ../glogic/TimingDiagramWindow.py:60 msgid "Range:" msgstr "範囲:" #: ../glogic/TimingDiagramWindow.py:98 msgid "_Redraw" msgstr "再描画(_R)" #: ../glogic/TimingDiagramWindow.py:103 msgid "Save _diagram..." msgstr "図を保存(_D)..." #: ../glogic/TimingDiagramWindow.py:114 msgid "Cursor position:" msgstr "カーソル位置:" #: ../glogic/TimingDiagramWindow.py:229 msgid "Can't create timing diagram!" msgstr "タイミングチャートを作成できません!" #: ../glogic/TimingDiagramWindow.py:230 msgid "The width of the timing diagram will be too wide. (> 5000)" msgstr "タイミングチャートの幅が広くなり過ぎます。(> 5000)" #: ../glogic/const.py:55 msgid "No title" msgstr "タイトルなし" #: ../glogic/const.py:56 msgid "Modified" msgstr "変更済み" #: ../glogic/const.py:58 msgid "gLogic files (*.glc)" msgstr "gLogic ファイル (*.glc)" #: ../glogic/const.py:59 msgid "Portable Network Graphics (*.png)" msgstr "Portable Network Graphics (*.png)" #: ../glogic/const.py:60 msgid "Scalable Vector Graphics (*.svg)" msgstr "Scalable Vector Graphics (*.svg)" #: ../glogic/const.py:61 msgid "Portable Document Format (*.pdf)" msgstr "Portable Document Format (*.pdf)" #: ../glogic/const.py:62 msgid "Post Script (*.ps)" msgstr "Post Script (*.ps)" #: ../glogic/const.py:63 msgid "All files" msgstr "すべてのファイル" #: ../glogic/const.py:68 msgid "gLogic is a logic circuit simulator developed with GTK+ and Python." msgstr "gLogic は GTK+ と Python で開発された論理回路シミュレーターです。" #: ../glogic/Components/Calculator.py:13 msgid "Adder" msgstr "加算器" #: ../glogic/Components/Calculator.py:25 msgid "Half/Full:" msgstr "半/全:" #: ../glogic/Components/Calculator.py:25 msgid "Half adder" msgstr "半加算器" #: ../glogic/Components/Calculator.py:25 msgid "Full adder" msgstr "全加算器" #: ../glogic/Components/Calculator.py:27 ../glogic/Components/Counter.py:32 #: ../glogic/Components/Counter.py:138 ../glogic/Components/Counter.py:239 #: ../glogic/Components/Counter.py:352 ../glogic/Components/Counter.py:469 #: ../glogic/Components/FlipFlop.py:24 ../glogic/Components/FlipFlop.py:114 #: ../glogic/Components/FlipFlop.py:220 ../glogic/Components/FlipFlop.py:311 #: ../glogic/Components/Standard.py:24 ../glogic/Components/Standard.py:98 #: ../glogic/Components/Standard.py:193 ../glogic/Components/Standard.py:304 #: ../glogic/Components/Standard.py:416 ../glogic/Components/Standard.py:515 msgid "Propagation delay:" msgstr "伝播遅延時間:" #: ../glogic/Components/Calculator.py:28 ../glogic/Components/Counter.py:33 #: ../glogic/Components/Counter.py:139 ../glogic/Components/Counter.py:240 #: ../glogic/Components/Counter.py:353 ../glogic/Components/Counter.py:470 #: ../glogic/Components/FlipFlop.py:25 ../glogic/Components/FlipFlop.py:115 #: ../glogic/Components/FlipFlop.py:221 ../glogic/Components/FlipFlop.py:312 #: ../glogic/Components/Standard.py:25 ../glogic/Components/Standard.py:99 #: ../glogic/Components/Standard.py:194 ../glogic/Components/Standard.py:305 #: ../glogic/Components/Standard.py:417 ../glogic/Components/Standard.py:516 msgid "tPHL:" msgstr "tPHL:" #: ../glogic/Components/Calculator.py:30 ../glogic/Components/Counter.py:35 #: ../glogic/Components/Counter.py:141 ../glogic/Components/Counter.py:242 #: ../glogic/Components/Counter.py:355 ../glogic/Components/Counter.py:472 #: ../glogic/Components/FlipFlop.py:27 ../glogic/Components/FlipFlop.py:117 #: ../glogic/Components/FlipFlop.py:223 ../glogic/Components/FlipFlop.py:314 #: ../glogic/Components/Standard.py:27 ../glogic/Components/Standard.py:101 #: ../glogic/Components/Standard.py:196 ../glogic/Components/Standard.py:307 #: ../glogic/Components/Standard.py:419 ../glogic/Components/Standard.py:518 msgid "tPLH:" msgstr "tPLH:" #: ../glogic/Components/Counter.py:13 msgid "Mod-N counter" msgstr "N進カウンター" #: ../glogic/Components/Counter.py:26 msgid "N:" msgstr "N:" #: ../glogic/Components/Counter.py:28 ../glogic/Components/Counter.py:134 #: ../glogic/Components/Counter.py:235 ../glogic/Components/Counter.py:348 #: ../glogic/Components/Counter.py:465 msgid "Number of bits:" msgstr "ビット数:" #: ../glogic/Components/Counter.py:30 ../glogic/Components/Counter.py:136 #: ../glogic/Components/Counter.py:237 ../glogic/Components/Counter.py:350 #: ../glogic/Components/Counter.py:467 ../glogic/Components/FlipFlop.py:112 #: ../glogic/Components/FlipFlop.py:218 ../glogic/Components/FlipFlop.py:309 msgid "Trigger type:" msgstr "トリガータイプ:" #: ../glogic/Components/Counter.py:30 ../glogic/Components/Counter.py:136 #: ../glogic/Components/Counter.py:237 ../glogic/Components/Counter.py:350 #: ../glogic/Components/Counter.py:467 ../glogic/Components/FlipFlop.py:112 #: ../glogic/Components/FlipFlop.py:218 ../glogic/Components/FlipFlop.py:309 msgid "Positive edge" msgstr "立ち上がりエッジ" #: ../glogic/Components/Counter.py:30 ../glogic/Components/Counter.py:136 #: ../glogic/Components/Counter.py:237 ../glogic/Components/Counter.py:350 #: ../glogic/Components/Counter.py:467 ../glogic/Components/FlipFlop.py:112 #: ../glogic/Components/FlipFlop.py:218 ../glogic/Components/FlipFlop.py:309 msgid "Negative edge" msgstr "立ち下がりエッジ" #: ../glogic/Components/Counter.py:123 msgid "SISO shift register" msgstr "SISOシフトレジスター" #: ../glogic/Components/Counter.py:222 msgid "SIPO shift register" msgstr "SIPOシフトレジスター" #: ../glogic/Components/Counter.py:335 msgid "PISO shift register" msgstr "PISOシフトレジスター" #: ../glogic/Components/Counter.py:452 msgid "PIPO shift register" msgstr "PIPOシフトレジスター" #: ../glogic/Components/FlipFlop.py:13 msgid "RS flip-flop" msgstr "RSフリップフロップ" #: ../glogic/Components/FlipFlop.py:101 msgid "JK flip-flop" msgstr "JKフリップフロップ" #: ../glogic/Components/FlipFlop.py:207 msgid "D flip-flop" msgstr "Dフリップフロップ" #: ../glogic/Components/FlipFlop.py:298 msgid "T flip-flop" msgstr "Tフリップフロップ" #: ../glogic/Components/Misc.py:13 msgid "Text" msgstr "テキスト" #: ../glogic/Components/Misc.py:16 msgid "Text:" msgstr "テキスト:" #: ../glogic/Components/Standard.py:13 msgid "NOT" msgstr "NOT" #: ../glogic/Components/Standard.py:85 msgid "AND" msgstr "AND" #: ../glogic/Components/Standard.py:96 ../glogic/Components/Standard.py:191 #: ../glogic/Components/Standard.py:302 ../glogic/Components/Standard.py:414 #: ../glogic/Components/Standard.py:513 msgid "Input pins:" msgstr "入力端子:" #: ../glogic/Components/Standard.py:180 msgid "OR" msgstr "OR" #: ../glogic/Components/Standard.py:291 msgid "XOR" msgstr "XOR" #: ../glogic/Components/Standard.py:403 msgid "NAND" msgstr "NAND" #: ../glogic/Components/Standard.py:502 msgid "NOR" msgstr "NOR" #: ../glogic/Components/Standard.py:617 msgid "Switch" msgstr "スイッチ" #: ../glogic/Components/Standard.py:628 ../glogic/Components/Standard.py:763 msgid "Initial state:" msgstr "初期状態:" #: ../glogic/Components/Standard.py:628 ../glogic/Components/Standard.py:763 msgid "Low level" msgstr "低レベル" #: ../glogic/Components/Standard.py:628 ../glogic/Components/Standard.py:763 msgid "High level" msgstr "高レベル" #: ../glogic/Components/Standard.py:678 msgid "Vdd rail" msgstr "Vdd線" #: ../glogic/Components/Standard.py:712 msgid "GND rail" msgstr "GND線" #: ../glogic/Components/Standard.py:748 msgid "Oscillator" msgstr "発振器" #: ../glogic/Components/Standard.py:757 msgid "Period:" msgstr "周期:" #: ../glogic/Components/Standard.py:759 msgid "Shift:" msgstr "シフト:" #: ../glogic/Components/Standard.py:761 msgid "Duration:" msgstr "発振時間:" #: ../glogic/Components/StateViewer.py:13 msgid "Seven-segment display" msgstr "7セグメントディスプレイ" #: ../glogic/Components/StateViewer.py:164 msgid "LED" msgstr "LED" #: ../glogic/Components/SystemComponents.py:92 msgid "Probe" msgstr "プローブ" #: ../glogic/Components/SystemComponents.py:101 msgid "Name:" msgstr "名前:" glogic-2.6/po/LINGUAS0000644000175000017500000000006312044454516011215 00000000000000# please keep this list sorted alphabetically # ja glogic-2.6/Makefile.in0000644000175000017500000006113512044406014011614 00000000000000# Makefile.in generated by automake 1.11.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : subdir = . DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in $(top_srcdir)/configure AUTHORS COPYING \ ChangeLog INSTALL NEWS TODO install-sh missing py-compile ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/as-ac-expand.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno config.status.lineno mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir dist dist-all distcheck ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) am__remove_distdir = \ if test -d "$(distdir)"; then \ find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ && rm -rf "$(distdir)" \ || { sleep 5 && rm -rf "$(distdir)"; }; \ else :; fi am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" DIST_ARCHIVES = $(distdir).tar.gz GZIP_ENV = --best distuninstallcheck_listfiles = find . -type f -print am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \ | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$' distcleancheck_listfiles = find . -type f -print ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BZRREV = @BZRREV@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIR = @DATADIR@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ HELP_DIR = @HELP_DIR@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ ITSTOOL = @ITSTOOL@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_VERSION = @PYTHON_VERSION@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XMLLINT = @XMLLINT@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ intltool__v_merge_options_ = @intltool__v_merge_options_@ intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS} SUBDIRS = bin glogic po data examples help EXTRA_DIST = \ README\ COPYING\ ChangeLog\ AUTHORS\ INSTALL\ NEWS \ $(INTLTOOL_FILES) DISTCLEANFILES = intltool-extract \ intltool-merge \ intltool-update \ po/.intltool-merge-cache all: all-recursive .SUFFIXES: am--refresh: Makefile @: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ echo ' cd $(srcdir) && $(AUTOMAKE) --gnu'; \ $(am__cd) $(srcdir) && $(AUTOMAKE) --gnu \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ echo ' $(SHELL) ./config.status'; \ $(SHELL) ./config.status;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) $(SHELL) ./config.status --recheck $(top_srcdir)/configure: $(am__configure_deps) $(am__cd) $(srcdir) && $(AUTOCONF) $(ACLOCAL_M4): $(am__aclocal_m4_deps) $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) $(am__aclocal_m4_deps): # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) $(am__remove_distdir) test -d "$(distdir)" || mkdir "$(distdir)" @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$(top_distdir)" distdir="$(distdir)" \ dist-hook -test -n "$(am__skip_mode_fix)" \ || find "$(distdir)" -type d ! -perm -755 \ -exec chmod u+rwx,go+rx {} \; -o \ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ || chmod -R a+r "$(distdir)" dist-gzip: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) dist-bzip2: distdir tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2 $(am__remove_distdir) dist-lzip: distdir tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz $(am__remove_distdir) dist-lzma: distdir tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma $(am__remove_distdir) dist-xz: distdir tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz $(am__remove_distdir) dist-tarZ: distdir tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z $(am__remove_distdir) dist-shar: distdir shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz $(am__remove_distdir) dist-zip: distdir -rm -f $(distdir).zip zip -rq $(distdir).zip $(distdir) $(am__remove_distdir) dist dist-all: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) # This target untars the dist file and tries a VPATH configuration. Then # it guarantees that the distribution is self-contained by making another # tarfile. distcheck: dist case '$(DIST_ARCHIVES)' in \ *.tar.gz*) \ GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\ *.tar.bz2*) \ bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ *.tar.lzma*) \ lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\ *.tar.lz*) \ lzip -dc $(distdir).tar.lz | $(am__untar) ;;\ *.tar.xz*) \ xz -dc $(distdir).tar.xz | $(am__untar) ;;\ *.tar.Z*) \ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ *.shar.gz*) \ GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\ *.zip*) \ unzip $(distdir).zip ;;\ esac chmod -R a-w $(distdir); chmod u+w $(distdir) mkdir $(distdir)/_build mkdir $(distdir)/_inst chmod a-w $(distdir) test -d $(distdir)/_build || exit 0; \ dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ && am__cwd=`pwd` \ && $(am__cd) $(distdir)/_build \ && ../configure --srcdir=.. --prefix="$$dc_install_base" \ $(AM_DISTCHECK_CONFIGURE_FLAGS) \ $(DISTCHECK_CONFIGURE_FLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) dvi \ && $(MAKE) $(AM_MAKEFLAGS) check \ && $(MAKE) $(AM_MAKEFLAGS) install \ && $(MAKE) $(AM_MAKEFLAGS) installcheck \ && $(MAKE) $(AM_MAKEFLAGS) uninstall \ && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ distuninstallcheck \ && chmod -R a-w "$$dc_install_base" \ && ({ \ (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ } || { rm -rf "$$dc_destdir"; exit 1; }) \ && rm -rf "$$dc_destdir" \ && $(MAKE) $(AM_MAKEFLAGS) dist \ && rm -rf $(DIST_ARCHIVES) \ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ && cd "$$am__cwd" \ || exit 1 $(am__remove_distdir) @(echo "$(distdir) archives ready for distribution: "; \ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' distuninstallcheck: @test -n '$(distuninstallcheck_dir)' || { \ echo 'ERROR: trying to run $@ with an empty' \ '$$(distuninstallcheck_dir)' >&2; \ exit 1; \ }; \ $(am__cd) '$(distuninstallcheck_dir)' || { \ echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \ exit 1; \ }; \ test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left after uninstall:" ; \ if test -n "$(DESTDIR)"; then \ echo " (check DESTDIR support)"; \ fi ; \ $(distuninstallcheck_listfiles) ; \ exit 1; } >&2 distcleancheck: distclean @if test '$(srcdir)' = . ; then \ echo "ERROR: distcleancheck can only run from a VPATH build" ; \ exit 1 ; \ fi @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left in build directory after distclean:" ; \ $(distcleancheck_listfiles) ; \ exit 1; } >&2 check-am: all-am check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic mostlyclean-am distclean: distclean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf $(top_srcdir)/autom4te.cache -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ install-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am am--refresh check check-am clean clean-generic \ ctags ctags-recursive dist dist-all dist-bzip2 dist-gzip \ dist-hook dist-lzip dist-lzma dist-shar dist-tarZ dist-xz \ dist-zip distcheck distclean distclean-generic distclean-tags \ distcleancheck distdir distuninstallcheck dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am tags tags-recursive uninstall uninstall-am dist-hook: @if test -d "$(top_srcdir)/.bzr"; \ then \ echo Creating ChangeLog && \ ( cd "$(top_srcdir)" && \ echo '# Generated by Makefile. Do not edit.'; echo; \ $(top_srcdir)/missing --run bzr log --gnu-changelog ) > ChangeLog.tmp \ && mv -f ChangeLog.tmp $(top_distdir)/ChangeLog \ || (rm -f ChangeLog.tmp; \ echo Failed to generate ChangeLog >&2 ); \ else \ echo Failed to generate ChangeLog: not a branch >&2; \ fi @if test -d "$(top_srcdir)/.bzr"; \ then \ echo Creating AUTHORS && \ ( cd "$(top_srcdir)" && \ echo '# Generated by Makefile. Do not edit.'; echo; \ $(top_srcdir)/missing --run bzr log --long --levels=0 | grep -e "^\s*author:" -e "^\s*committer:" | cut -d ":" -f 2 | cut -d "<" -f 1 | sort -u) > AUTHORS.tmp \ && mv -f AUTHORS.tmp $(top_distdir)/AUTHORS \ || (rm -f AUTHORS.tmp; \ echo Failed to generate AUTHORS >&2 ); \ else \ echo Failed to generate AUTHORS: not a branch >&2; \ fi # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: glogic-2.6/README0000644000175000017500000000000012031005333010402 00000000000000glogic-2.6/TODO0000644000175000017500000000016612044144737010247 00000000000000* Animate logic circuit * Use signals instead of "parent" variables * State diagram creation * Add three state buffer