Menu

Tree [75178d] master /
 History

HTTPS access


File Date Author Commit
 media_player 2025-06-06 Lilit Khechoyan Lilit Khechoyan [75178d] - Updated makefiles:
 nls_arm 2024-06-28 nune nune [36e193] Added Instigate Application Framework v2.356 ba...
 nls_en 2025-05-26 Lilit Khechoyan Lilit Khechoyan [b1d250] - Updated Framework prerequisites installation ...
 src 2025-06-06 Lilit Khechoyan Lilit Khechoyan [75178d] - Updated makefiles:
 tst 2025-05-26 Lilit Khechoyan Lilit Khechoyan [b1d250] - Updated Framework prerequisites installation ...
 utl 2025-05-26 Lilit Khechoyan Lilit Khechoyan [b1d250] - Updated Framework prerequisites installation ...
 xsd 2024-06-28 nune nune [36e193] Added Instigate Application Framework v2.356 ba...
 Changelog 2025-05-02 Nune Badalyan Nune Badalyan [7f7919] Instigate Application Framework version 2.360
 Copyright 2024-11-15 Nune Badalyan Nune Badalyan [021e64] - Added Copyright, LICENSE and WARRANTY files t...
 Doxyfile 2024-12-13 Lilit Khechoyan Lilit Khechoyan [62abbd] - Updated Doxyfile
 LICENSE 2024-11-15 Nune Badalyan Nune Badalyan [021e64] - Added Copyright, LICENSE and WARRANTY files t...
 README 2024-09-26 Nune Badalyan Nune Badalyan [bb2891] Changing project version to 2.357 due to the la...
 Release_notes.txt 2025-05-02 Nune Badalyan Nune Badalyan [7f7919] Instigate Application Framework version 2.360
 WARRANTY 2024-11-15 Nune Badalyan Nune Badalyan [021e64] - Added Copyright, LICENSE and WARRANTY files t...
 instructions.txt 2025-05-02 Nune Badalyan Nune Badalyan [7f7919] Instigate Application Framework version 2.360
 makefile 2025-06-06 Lilit Khechoyan Lilit Khechoyan [75178d] - Updated makefiles:
 user_guide.odt 2024-08-02 Nune Badalyan Nune Badalyan [fcb32d] - Added install scripts in utl directory
 nls 2024-06-28 nune nune [36e193] Added Instigate Application Framework v2.356 ba...

Read Me

Introduction

This is the README file of Instigate Application Framework Version 2.357 developed by Instigate Design CJSC.

CONTENTS
    1. Getting Started

    2. Prerequisites

    3. Compilation

    4. Installation

    5. Usage

    6. Troubleshooting

    7. Maintainers

    8. Future Scope


1. Getting Started

The main goal of Application Framework is to provide set of libraries
and tools to improve performance of R&D, QA, Applications, Tech Writers
and Managers teams working on a SW product. This was specifically created
to increase performance and competitiveness of Instigate Design CJSC in its
main business - Software and Hardware Design services and consulting.

Special tools and libraries are available for EDA tools in particular,
however the framework is far more general than a typical EDA-specific
application cockpits and databases. Examples of non-EDA SW that would
benefit from Framework equally well are:

    - Integrated Development Environments for programming languages, 
      which include source level debuggers, profilers, etc.

    - Embedded applications for mobile devices, such as
      video/audio/photo players/viewers, e-mail/IM clients, etc.

    - General purpose applications such as file managers, 
      Web Browsers, Word Processors, etc.

The main distinguishing factors of Instigate Application Framework from
other similar projects and systems are:

    - The Framework was designed based on real need at Instigate Design to
      develop very different types of applications for very different
      customers. Therefore it is based on real use-cases and
      user-stories, and not hypothetical problem statements and
      contemplation "in the vacuum" about what such Framework should do.

    - The Framework is fundamentally based on the embedded scripting
      language, which provides huge benefits such as: automatic 
      support of basic database operations in both GUI and Command
      Line interface; automatic serialization (persistency) of 
      in-memory data structures onto disk database; automatic 
      generation of high-quality reference-manual for users of the
      application; automatic support of modern GUI features such as
      copy/cut/paste, undo/redo, drag'n'drop, and many others.

    - The level of abstraction from GUI Look & Feel details 
      is unprecedented and allows to write same code and use it 
      with GTK+ and in future other underlying toolkits.
      Similarly the level of abstraction from underlying scripting
      language allows to write same code and obtain application with
      TCL support and in the future also with Python as embedded languages. 
      Finally, level of abstraction from underlying persistence
      mechanisms allows to save/load the data in XML and TCL formats.

    - Cut/Copy/Paste, Undo/Redo, Drag'n'Drop are fully implemented.

    - Export documentation is available both for the application and
      the document being edited by the application (if applicable).
    
    - Weak notion of "error" and support of "permissive" operation
      is available

    - GUI dialogs are auto-generated, and support complex dynamic
      scenarios 

    - Automatic Replay of actions is supported to create demo scenarios
      of the Application using scripts

    - Build system support with various types of packaging

Two versions of the package are available in SourceForge:
    - pre-built version (TODO the path will be added as soon as the pre-built
      package is submitted into SourceForge) 
      You can skip further steps and go directly to '4. Installation' section
      for the details.
    - sources (this package)
	
2. Prerequisites

To install prerequisites please follow these steps:
    a) Run ./utl/install_prerequisites.sh script to install all required
	native libraries on your environment.
    b) Download SDK lite package from SourceForge and extract.
       SDK Lite packages are available in SourceForge only for 3 OS-es:
	- Ubuntu 22.04 - https://sourceforge.net/projects/instigate-fwk/files/instigate-fwk-gtk-sdk/UbuntuOS/ubuntu_22.04_sdk_lite_24.06.tar.bz2
	- CentOS 7 - https://sourceforge.net/projects/instigate-fwk/files/instigate-fwk-gtk-sdk/CentOS/centos_07_sdk_lite_24.06.tar.bz2
	- Bagrevand - https://sourceforge.net/projects/instigate-fwk/files/instigate-fwk-gtk-sdk/BagrevandOS/bagrevand_12.0_sdk_lite_24.08.tar.bz2

	  By default the build system looks for SDK with the following path:
		 /tmp/instigate-software/gnu_system/
          To use the default path just create a soft link to the package in /tmp, e.g:
		ln -sf <your_path>/ubuntu_22.04_sdk_lite_24.06/ /tmp/instigate-software
	  Otherwise update the default SDK path via the following assignment in
          the top level makefile:
		export sdk_path := <your_path>/ubuntu_22.04_sdk_lite_24.06/gnu_system/3.2/x86_64

    c) Download and install Instigate software from SourceForge:
        - Instigate Build system - >= 2.0.4
        - Instigate ACL - >= 2.0.0
        - Instigate GPCL - >= 2.0.0
        - Instigate STL - >= 2.0.4
        - Instigate XML PARSER - >= 1.5.4
      Note: For the installation follow the steps in README files
	        available under each project.
      By default, Instigate software is installed in $HOME directory. In case of
      changing the default path, please specify the same install path for all
      components of Instigate software.
      Update INSTIGATE_OS3_PATH environment variable in the top level makefile
	  to point to the Instigate software installation path, if default
	  is changed.

3. Compilation

ATTENTION!!!
If it is required to build the project only for 64 bit machine due to missing
gcc multi-lib support (32 and 64) update the following makefiles:
	- src/sockets/makefile
	- src/threads/makefile
	- src/vcd_core/makefile
by replacing
	'#include $(mkf_path)/lib_lib32_64.mk'
line with
	'#include $(mkf_path)/lib_lib64.mk' in the makefile

Otherwise the project will be built for both 32 and 64 bit machines.

Compile the package as follows:
	a) Configure build parameters by issuing 'make setup' command specifying:
		- release or debug build (default is debug):
			make setup build_type=<release|debug>
  		- static or dynamic linking (default is dynamic):
	  		make setup link_type=<static|dynamic>
    		- enable using sdk:
	  		make setup use_sdk=yes

	  Note 1: all options should be specified during a single 'make setup'
	          command.
	  Note 2: Based on link_type either static libraries (.a) or shared
              libraries (.so) will be built.

	b) Build the library using 'make' command.
	   Multi-threaded build is supported, e.g. "make -j4" will run 4 parallel
	   threads if you are running it on a quad-cpu computer.

Additional features:
	a) Run basic tests via 'make test' command.
       Test results will be available in 'test_results.txt' file and
	   'tst_results' directory.

	b) Generate documentation via the following commands:
       		- make user_docs
       		- make developer_docs
	   The generated documentation will be available in the 'doc' directory.

	c) Cleanup results of previous build via 'make clean' command.

4. Installation

	a) Install pre-built version
	   To use already pre-built version of Instigate Application
	   Framework please download the corresponding OS version package
	   from SourceForge:
       https://sourceforge.net/projects/instigate-fwk/files/instigate-fwk-gtk-prebuilt-pkg/
	   Currently 3 OS-es are supported:
		- Ubuntu 22.04
		- CentOS7
		- Bagrevand 12.0
	   The downloaded pre-built package contains corresponding script to
	   install pre-built Framework and the corresponding SDK at the path
	   specified as an argument to the script.

	   See details in the README of the pre-built package.

	b) Install current version

	   Use 'make install' command which will install the package under the
	   directory specified by the variable 'install_path'. The variable is
	   defined in the top level makefile and defaults to
	   $INSTIGATE_OS3_PATH/framework/<version>/<arch>_<build_type>

	   The value of 'install_path' variable should be used in the applications
	   which are using Instigate Application Framework (see '5. Usage' section for details).

5. Usage

In order to build application against the Framework you will need to point
to it from the makefile of your application using the variable
INSTIGATE_ENV_FRAMEWORK_ROOT.

Sample Application (media_payer) is provided as an example of framework usage whithin this
package. You can move it outside the package and use it as a standalone
application. Please follow user-guide.odt file for the details.

6. Troubleshooting

The framework has been developed to base on 80% principle, to cover
80% of the most common use-cases in GUI/UI design.

The next version is going to consider all the currently covered use-cases
as basis, and will provide more coherent and elegant solution to all.

The underlying GTK+ framework version is quite stable, but in addition
we are using the C++ wrapper (GtkMM) libraries, which are relatively less
stable.

7. Maintainer

Instigate Design CJSC
   e-mail: info@instigatedesign.com
   Phone: +374-60 510-710

8. Future Scope

a) Remove src/xml_parser subproject from the package, instead use Instigate XML
   Parser - 1.5.3 library.
b) Support level of abstraction from underlying scripting language with Python.
c) Support level of abstraction from underlying persistence mechanism with SQL.
Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.