Skip to content

Fermilab-Microelectronics/fnal-asic-compute

 
 

Repository files navigation

FNAL ASIC Compute

Makefile CI

FNAL ASIC Compute provides user configuration files for FNAL ASIC computing devices. The current supported configurations include the following:

  • MacOS client running VNC
  • Linux servers supporting VNC

Installation

The user configuration files can installed using the code snippet below.

curl -sL https://github.com/ic-designer/fnal-asic-compute/archive/refs/tags/0.7.4.tar.gz | tar xz
make -C fnal-asic-compute-0.7.4 install

The Makefile will use information about the operating system to determine which configuration to install. As shown below, the Makefile first determines the operating system, then passes the target to the configuration specific target.

UNAME_OS:=$(shell sh -c 'uname -s 2>/dev/null')
ifeq ($(UNAME_OS),Darwin)
    TARGET_CONFIG := fnal-asic-config-macos-client
else ifeq ($(UNAME_OS),Linux)
    TARGET_CONFIG := fnal-asic-config-linux-server
else
    $(error Unsupported operating system, $(UNAME_OS))
endif
SRCDIR_ROOT = $(TARGET_CONFIG)

Configurations

MacOS Client

The macOS client configuration provides the following user configuation files:

  • ~/.kerberos/krb5.conf - FNAL Kerberos Configuration for MacOS
  • ~/.kerberos/krbtools-keytab - Helper script to generate keytab file needed for passwordless authentication.
  • ~/.ssh/config - FNAL SSH client configurations.
  • ~/.zshrc - Base zsh run command file.

The envirnment variables provided below are also supported. These variables can be uniquely set for each user by adding to the override file ~/.zshrc_local.

  • KRB5_PRINCIPAL - Overrides the default kerebros principal if defined.

The MacOS client configuration also installs vnctools to help manage VNC connections.

VNC Tools Command Reference

Linux Server

The Linux server configuration provides the following user configuation files:

  • ~/.local/bin/filename-search-and-replace - Bash script for renaming files using search and replace.
  • ~/.local/bin/isntall-pyenv - Bash scrip to help install pyenv.
  • ~/.ssh/config - FNAL SSH server configurations.
  • ~/.bashrc - Base bash run command file.
  • ~/.bash_profile - Base profile file.

Make Targets

The supported make targets are shown below.

  • check - Performs a staged install and uninstall in a test directory.
  • clean - Deletes all internal build files.
  • install - Installs copies of the configuration files.
  • test - Same as check.
  • uninstall - Uninstalls the configuration files.
.PHONY: check
check: private_test

.PHONY: clean
clean: private_clean

.PHONY: install
install: private_install

.PHONY: test
test: private_test

.PHONY: uninstall
uninstall: private_uninstall

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Shell 96.3%
  • Makefile 3.7%