diff --git a/gtk3-nocsd.c b/gtk3-nocsd.c index f9c0d70..78d0b77 100644 --- a/gtk3-nocsd.c +++ b/gtk3-nocsd.c @@ -39,6 +39,11 @@ #include +#ifdef __FreeBSD__ +#include +#define ElfW(t) Elf##_##t +#endif + typedef void (*gtk_window_buildable_add_child_t) (GtkBuildable *buildable, GtkBuilder *builder, GObject *child, const gchar *type); typedef GObject* (*gtk_dialog_constructor_t) (GType type, guint n_construct_properties, GObjectConstructParam *construct_params); typedef char *(*gtk_check_version_t) (guint required_major, guint required_minor, guint required_micro); diff --git a/gtk3-nocsd.in b/gtk3-nocsd.in index bf3ca73..5655e31 100644 --- a/gtk3-nocsd.in +++ b/gtk3-nocsd.in @@ -16,10 +16,13 @@ # program to call as its arguments. # +OS=$(uname | tr "[:upper:]" "[:lower:]") +RLINK_ARGS=$([ "$OS" = "freebsd" ] && echo "-f" || echo "-fe") + GTK3_NOCSD_NAME=libgtk3-nocsd.so.0 # Determine if this script are installed in the system path -GTK3_NOCSD_BINARY="$(readlink -fe "$(which "$0")")" +GTK3_NOCSD_BINARY="$(readlink ${RLINK_ARGS} "$(which "$0")")" case "${GTK3_NOCSD_BINARY%/*}" in /sbin|/bin|/usr/bin|/usr/sbin|/usr/local/bin|/usr/local/sbin) IN_SYSTEM_PATH=1 ;; *) IN_SYSTEM_PATH=0 ;; @@ -73,7 +76,7 @@ fi # Find the real program (the first one that's not symlinked to get3-nocsd) APPNAME="$(basename "$0")" for APPPATH in $(which -a "$APPNAME") /bin/false; do - APPPATH_LINK="$(readlink -fe "$APPPATH")" + APPPATH_LINK="$(readlink ${RLINK_ARGS} "$APPPATH")" [ x"${APPPATH_LINK##*/}"x = x"gtk3-nocsd"x ] || break done